UNPKG

3.47 MBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./components-pro sync ^\\.\\/[^_][\\w-]+\\/style\\/index\\.tsx","webpack://[name]/./components-pro/_util/AsyncComponent.tsx","webpack://[name]/./components-pro/_util/Cache.tsx","webpack://[name]/./components-pro/_util/EventManager.tsx","webpack://[name]/./components-pro/_util/MobxUtils.tsx","webpack://[name]/./components-pro/_util/ObjectChainValue.tsx","webpack://[name]/./components-pro/_util/PromiseQueue.tsx","webpack://[name]/./components-pro/_util/TaskRunner.tsx","webpack://[name]/./components-pro/_util/Yallist.tsx","webpack://[name]/./components-pro/_util/autobind.tsx","webpack://[name]/./components-pro/_util/createDefaultSetter.tsx","webpack://[name]/./components-pro/_util/exception.tsx","webpack://[name]/./components-pro/_util/getReactNodeText.tsx","webpack://[name]/./components-pro/_util/isEmpty.tsx","webpack://[name]/./components-pro/_util/isSame.tsx","webpack://[name]/./components-pro/_util/isSameLike.tsx","webpack://[name]/./components-pro/_util/keepRunning.tsx","webpack://[name]/./components-pro/_util/measureTextWidth.tsx","webpack://[name]/./components-pro/_util/normalizeLanguage.tsx","webpack://[name]/./components-pro/animate/index.tsx","webpack://[name]/./components-pro/animate/style/index.tsx","webpack://[name]/./components-pro/axios/cacheAdapterEnhancer.tsx","webpack://[name]/./components-pro/axios/index.tsx","webpack://[name]/./components-pro/axios/style/index.tsx","webpack://[name]/./components-pro/axios/throttleAdapterEnhancer.tsx","webpack://[name]/./components-pro/axios/utils.tsx","webpack://[name]/./components-pro/button/Button.tsx","webpack://[name]/./components-pro/button/enum.tsx","webpack://[name]/./components-pro/button/index.tsx","webpack://[name]/./components-pro/button/style/index.less?d089","webpack://[name]/./components-pro/button/style/index.tsx","webpack://[name]/./components-pro/check-box/CheckBox.tsx","webpack://[name]/./components-pro/check-box/index.tsx","webpack://[name]/./components-pro/check-box/style/index.less?1814","webpack://[name]/./components-pro/check-box/style/index.tsx","webpack://[name]/./components-pro/code-area/CodeArea.tsx","webpack://[name]/./components-pro/code-area/index.tsx","webpack://[name]/./components-pro/code-area/style/index.less?46c5","webpack://[name]/./components-pro/code-area/style/index.tsx","webpack://[name]/./components-pro/col/index.tsx","webpack://[name]/./components-pro/col/style/index.tsx","webpack://[name]/./components-pro/color-picker/ColorPicker.tsx","webpack://[name]/./components-pro/color-picker/index.tsx","webpack://[name]/./components-pro/color-picker/style/index.less?e956","webpack://[name]/./components-pro/color-picker/style/index.tsx","webpack://[name]/./components-pro/core/ViewComponent.tsx","webpack://[name]/./components-pro/core/enum.tsx","webpack://[name]/./components-pro/core/style/index.tsx","webpack://[name]/./components-pro/currency/Currency.tsx","webpack://[name]/./components-pro/currency/index.tsx","webpack://[name]/./components-pro/currency/style/index.tsx","webpack://[name]/./components-pro/data-set/DataSet.tsx","webpack://[name]/./components-pro/data-set/DataSetComponent.tsx","webpack://[name]/./components-pro/data-set/DataSetRequestError.tsx","webpack://[name]/./components-pro/data-set/DataSetSnapshot.tsx","webpack://[name]/./components-pro/data-set/FeedBack.tsx","webpack://[name]/./components-pro/data-set/Field.tsx","webpack://[name]/./components-pro/data-set/Record.tsx","webpack://[name]/./components-pro/data-set/Transport.tsx","webpack://[name]/./components-pro/data-set/enum.tsx","webpack://[name]/./components-pro/data-set/index.tsx","webpack://[name]/./components-pro/data-set/style/index.tsx","webpack://[name]/./components-pro/data-set/utils.tsx","webpack://[name]/./components-pro/date-picker/DatePicker.tsx","webpack://[name]/./components-pro/date-picker/DateTimesView.tsx","webpack://[name]/./components-pro/date-picker/DaysView.tsx","webpack://[name]/./components-pro/date-picker/DecadeYearsView.tsx","webpack://[name]/./components-pro/date-picker/MonthsView.tsx","webpack://[name]/./components-pro/date-picker/TimesView.tsx","webpack://[name]/./components-pro/date-picker/WeeksView.tsx","webpack://[name]/./components-pro/date-picker/YearsView.tsx","webpack://[name]/./components-pro/date-picker/enum.tsx","webpack://[name]/./components-pro/date-picker/index.tsx","webpack://[name]/./components-pro/date-picker/style/index.less?abd6","webpack://[name]/./components-pro/date-picker/style/index.tsx","webpack://[name]/./components-pro/date-time-picker/DateTimePicker.tsx","webpack://[name]/./components-pro/date-time-picker/index.tsx","webpack://[name]/./components-pro/date-time-picker/style/index.tsx","webpack://[name]/./components-pro/dropdown/Dropdown.tsx","webpack://[name]/./components-pro/dropdown/enum.tsx","webpack://[name]/./components-pro/dropdown/index.tsx","webpack://[name]/./components-pro/dropdown/placements.tsx","webpack://[name]/./components-pro/dropdown/style/index.less?b558","webpack://[name]/./components-pro/dropdown/style/index.tsx","webpack://[name]/./components-pro/email-field/EmailField.tsx","webpack://[name]/./components-pro/email-field/index.tsx","webpack://[name]/./components-pro/email-field/style/index.tsx","webpack://[name]/./components-pro/field/CloseButton.tsx","webpack://[name]/./components-pro/field/FormField.tsx","webpack://[name]/./components-pro/field/enum.tsx","webpack://[name]/./components-pro/field/index.tsx","webpack://[name]/./components-pro/field/style/index.less?3a5e","webpack://[name]/./components-pro/field/style/index.tsx","webpack://[name]/./components-pro/field/utils.tsx","webpack://[name]/./components-pro/form/Form.tsx","webpack://[name]/./components-pro/form/FormContext.tsx","webpack://[name]/./components-pro/form/enum.tsx","webpack://[name]/./components-pro/form/index.tsx","webpack://[name]/./components-pro/form/style/index.less?ca64","webpack://[name]/./components-pro/form/style/index.tsx","webpack://[name]/./components-pro/form/utils.tsx","webpack://[name]/./components-pro/formatter/formatCurrency.tsx","webpack://[name]/./components-pro/formatter/formatNumber.tsx","webpack://[name]/./components-pro/formatter/formatReactTemplate.tsx","webpack://[name]/./components-pro/formatter/formatString.tsx","webpack://[name]/./components-pro/formatter/style/index.tsx","webpack://[name]/./components-pro/formatter/utils.tsx","webpack://[name]/./components-pro/grid/index.tsx","webpack://[name]/./components-pro/grid/style/index.tsx","webpack://[name]/./components-pro/icon-picker/IconCategory.tsx","webpack://[name]/./components-pro/icon-picker/IconItem.tsx","webpack://[name]/./components-pro/icon-picker/IconPicker.tsx","webpack://[name]/./components-pro/icon-picker/index.tsx","webpack://[name]/./components-pro/icon-picker/style/index.less?2ed6","webpack://[name]/./components-pro/icon-picker/style/index.tsx","webpack://[name]/./components-pro/icon/index.tsx","webpack://[name]/./components-pro/icon/style/index.tsx","webpack://[name]/./components-pro/index.tsx","webpack://[name]/./components-pro/intl-field/IntlField.tsx","webpack://[name]/./components-pro/intl-field/IntlList.tsx","webpack://[name]/./components-pro/intl-field/index.tsx","webpack://[name]/./components-pro/intl-field/style/index.tsx","webpack://[name]/./components-pro/locale-context/LocaleContext.tsx","webpack://[name]/./components-pro/locale-context/enum.tsx","webpack://[name]/./components-pro/locale-context/index.tsx","webpack://[name]/./components-pro/locale-context/locale.tsx","webpack://[name]/./components-pro/locale-context/style/index.less","webpack://[name]/./components-pro/locale-context/style/index.tsx","webpack://[name]/./components-pro/locale-context/supports.tsx","webpack://[name]/./components-pro/locale-context/zh_CN.tsx","webpack://[name]/./components-pro/lov/Lov.tsx","webpack://[name]/./components-pro/lov/LovView.tsx","webpack://[name]/./components-pro/lov/enum.tsx","webpack://[name]/./components-pro/lov/index.tsx","webpack://[name]/./components-pro/lov/style/index.tsx","webpack://[name]/./components-pro/menu/index.tsx","webpack://[name]/./components-pro/menu/style/index.tsx","webpack://[name]/./components-pro/message/index.tsx","webpack://[name]/./components-pro/message/style/index.tsx","webpack://[name]/./components-pro/modal-container/Mask.tsx","webpack://[name]/./components-pro/modal-container/ModalContainer.tsx","webpack://[name]/./components-pro/modal-container/index.tsx","webpack://[name]/./components-pro/modal-container/style/index.tsx","webpack://[name]/./components-pro/modal/Modal.tsx","webpack://[name]/./components-pro/modal/confirm.tsx","webpack://[name]/./components-pro/modal/index.tsx","webpack://[name]/./components-pro/modal/style/index.less?491e","webpack://[name]/./components-pro/modal/style/index.tsx","webpack://[name]/./components-pro/modal/utils.tsx","webpack://[name]/./components-pro/month-picker/MonthPicker.tsx","webpack://[name]/./components-pro/month-picker/index.tsx","webpack://[name]/./components-pro/month-picker/style/index.tsx","webpack://[name]/./components-pro/notification/index.tsx","webpack://[name]/./components-pro/notification/style/index.tsx","webpack://[name]/./components-pro/number-field/NumberField.tsx","webpack://[name]/./components-pro/number-field/index.tsx","webpack://[name]/./components-pro/number-field/style/index.less?4575","webpack://[name]/./components-pro/number-field/style/index.tsx","webpack://[name]/./components-pro/number-field/utils.tsx","webpack://[name]/./components-pro/option/OptGroup.tsx","webpack://[name]/./components-pro/option/Option.tsx","webpack://[name]/./components-pro/option/normalizeOptions.tsx","webpack://[name]/./components-pro/option/style/index.tsx","webpack://[name]/./components-pro/output/Output.tsx","webpack://[name]/./components-pro/output/index.tsx","webpack://[name]/./components-pro/output/style/index.less?3313","webpack://[name]/./components-pro/output/style/index.tsx","webpack://[name]/./components-pro/pagination/Pager.tsx","webpack://[name]/./components-pro/pagination/Pagination.tsx","webpack://[name]/./components-pro/pagination/enum.tsx","webpack://[name]/./components-pro/pagination/index.tsx","webpack://[name]/./components-pro/pagination/style/index.less?6c1c","webpack://[name]/./components-pro/pagination/style/index.tsx","webpack://[name]/./components-pro/password/Password.tsx","webpack://[name]/./components-pro/password/index.tsx","webpack://[name]/./components-pro/password/style/index.less?823c","webpack://[name]/./components-pro/password/style/index.tsx","webpack://[name]/./components-pro/progress/Progress.tsx","webpack://[name]/./components-pro/progress/index.tsx","webpack://[name]/./components-pro/progress/style/index.tsx","webpack://[name]/./components-pro/radio/Radio.tsx","webpack://[name]/./components-pro/radio/enum.tsx","webpack://[name]/./components-pro/radio/index.tsx","webpack://[name]/./components-pro/radio/style/index.less?b3cc","webpack://[name]/./components-pro/radio/style/index.tsx","webpack://[name]/./components-pro/range/Range.tsx","webpack://[name]/./components-pro/range/index.tsx","webpack://[name]/./components-pro/range/style/index.less?9dd0","webpack://[name]/./components-pro/range/style/index.tsx","webpack://[name]/./components-pro/ripple/index.tsx","webpack://[name]/./components-pro/ripple/style/index.tsx","webpack://[name]/./components-pro/row/index.tsx","webpack://[name]/./components-pro/row/style/index.tsx","webpack://[name]/./components-pro/select-box/SelectBox.tsx","webpack://[name]/./components-pro/select-box/index.tsx","webpack://[name]/./components-pro/select-box/style/index.less?d7e3","webpack://[name]/./components-pro/select-box/style/index.tsx","webpack://[name]/./components-pro/select/Select.tsx","webpack://[name]/./components-pro/select/index.tsx","webpack://[name]/./components-pro/select/style/index.less?c0aa","webpack://[name]/./components-pro/select/style/index.tsx","webpack://[name]/./components-pro/spin/index.tsx","webpack://[name]/./components-pro/spin/style/index.tsx","webpack://[name]/./components-pro/stores/LookupCodeStore.tsx","webpack://[name]/./components-pro/stores/LovCodeStore.tsx","webpack://[name]/./components-pro/stores/index.tsx","webpack://[name]/./components-pro/stores/style/index.tsx","webpack://[name]/./components-pro/stores/utils.tsx","webpack://[name]/./components-pro/switch/Switch.tsx","webpack://[name]/./components-pro/switch/index.tsx","webpack://[name]/./components-pro/switch/style/index.less?d71e","webpack://[name]/./components-pro/switch/style/index.tsx","webpack://[name]/./components-pro/table/Column.tsx","webpack://[name]/./components-pro/table/ColumnGroup.tsx","webpack://[name]/./components-pro/table/ColumnGroups.tsx","webpack://[name]/./components-pro/table/ExpandIcon.tsx","webpack://[name]/./components-pro/table/ExpandedRow.tsx","webpack://[name]/./components-pro/table/Table.tsx","webpack://[name]/./components-pro/table/TableBody.tsx","webpack://[name]/./components-pro/table/TableCell.tsx","webpack://[name]/./components-pro/table/TableCol.tsx","webpack://[name]/./components-pro/table/TableContext.tsx","webpack://[name]/./components-pro/table/TableEditor.tsx","webpack://[name]/./components-pro/table/TableFooter.tsx","webpack://[name]/./components-pro/table/TableFooterCell.tsx","webpack://[name]/./components-pro/table/TableHeader.tsx","webpack://[name]/./components-pro/table/TableHeaderCell.tsx","webpack://[name]/./components-pro/table/TableRow.tsx","webpack://[name]/./components-pro/table/TableStore.tsx","webpack://[name]/./components-pro/table/TableTBody.tsx","webpack://[name]/./components-pro/table/TableWrapper.tsx","webpack://[name]/./components-pro/table/enum.tsx","webpack://[name]/./components-pro/table/index.tsx","webpack://[name]/./components-pro/table/query-bar/ColumnFilter.tsx","webpack://[name]/./components-pro/table/query-bar/FilterSelect.tsx","webpack://[name]/./components-pro/table/query-bar/TableAdvancedQueryBar.tsx","webpack://[name]/./components-pro/table/query-bar/TableButtons.tsx","webpack://[name]/./components-pro/table/query-bar/TableFilterBar.tsx","webpack://[name]/./components-pro/table/query-bar/TableToolBar.tsx","webpack://[name]/./components-pro/table/query-bar/index.tsx","webpack://[name]/./components-pro/table/style/filter-select.less?2923","webpack://[name]/./components-pro/table/style/index.less?9c34","webpack://[name]/./components-pro/table/style/index.tsx","webpack://[name]/./components-pro/table/utils.tsx","webpack://[name]/./components-pro/tabs/index.tsx","webpack://[name]/./components-pro/tabs/style/index.tsx","webpack://[name]/./components-pro/text-area/TextArea.tsx","webpack://[name]/./components-pro/text-area/enum.tsx","webpack://[name]/./components-pro/text-area/index.tsx","webpack://[name]/./components-pro/text-area/style/index.less?7b15","webpack://[name]/./components-pro/text-area/style/index.tsx","webpack://[name]/./components-pro/text-field/TextField.tsx","webpack://[name]/./components-pro/text-field/enum.tsx","webpack://[name]/./components-pro/text-field/index.tsx","webpack://[name]/./components-pro/text-field/style/index.less","webpack://[name]/./components-pro/text-field/style/index.tsx","webpack://[name]/./components-pro/time-picker/TimePicker.tsx","webpack://[name]/./components-pro/time-picker/index.tsx","webpack://[name]/./components-pro/time-picker/style/index.tsx","webpack://[name]/./components-pro/tooltip/Tooltip.tsx","webpack://[name]/./components-pro/tooltip/index.tsx","webpack://[name]/./components-pro/tooltip/placements.tsx","webpack://[name]/./components-pro/tooltip/style/index.less?335a","webpack://[name]/./components-pro/tooltip/style/index.tsx","webpack://[name]/./components-pro/transfer/Transfer.tsx","webpack://[name]/./components-pro/transfer/TransferList.tsx","webpack://[name]/./components-pro/transfer/TransferOperation.tsx","webpack://[name]/./components-pro/transfer/index.tsx","webpack://[name]/./components-pro/transfer/style/index.less?eae2","webpack://[name]/./components-pro/transfer/style/index.tsx","webpack://[name]/./components-pro/tree/index.tsx","webpack://[name]/./components-pro/tree/style/index.tsx","webpack://[name]/./components-pro/tree/util.tsx","webpack://[name]/./components-pro/trigger-field/TriggerField.tsx","webpack://[name]/./components-pro/trigger-field/style/index.less","webpack://[name]/./components-pro/trigger-field/style/index.tsx","webpack://[name]/./components-pro/trigger/Popup.tsx","webpack://[name]/./components-pro/trigger/PopupInner.tsx","webpack://[name]/./components-pro/trigger/Trigger.tsx","webpack://[name]/./components-pro/trigger/TriggerChild.tsx","webpack://[name]/./components-pro/trigger/enum.tsx","webpack://[name]/./components-pro/trigger/style/index.less?4458","webpack://[name]/./components-pro/trigger/style/index.tsx","webpack://[name]/./components-pro/upload/Upload.tsx","webpack://[name]/./components-pro/upload/UploadList.tsx","webpack://[name]/./components-pro/upload/index.tsx","webpack://[name]/./components-pro/upload/style/index.less?e43b","webpack://[name]/./components-pro/upload/style/index.tsx","webpack://[name]/./components-pro/url-field/UrlField.tsx","webpack://[name]/./components-pro/url-field/index.tsx","webpack://[name]/./components-pro/url-field/style/index.tsx","webpack://[name]/./components-pro/validator/ValidationResult.tsx","webpack://[name]/./components-pro/validator/Validator.tsx","webpack://[name]/./components-pro/validator/Validity.tsx","webpack://[name]/./components-pro/validator/rules/badInput.tsx","webpack://[name]/./components-pro/validator/rules/customError.tsx","webpack://[name]/./components-pro/validator/rules/index.tsx","webpack://[name]/./components-pro/validator/rules/patternMismatch.tsx","webpack://[name]/./components-pro/validator/rules/rangeOverflow.tsx","webpack://[name]/./components-pro/validator/rules/rangeUnderflow.tsx","webpack://[name]/./components-pro/validator/rules/stepMismatch.tsx","webpack://[name]/./components-pro/validator/rules/tooLong.tsx","webpack://[name]/./components-pro/validator/rules/tooShort.tsx","webpack://[name]/./components-pro/validator/rules/typeMismatch.tsx","webpack://[name]/./components-pro/validator/rules/uniqueError.tsx","webpack://[name]/./components-pro/validator/rules/valueMissing.tsx","webpack://[name]/./components-pro/validator/style/index.less?4243","webpack://[name]/./components-pro/validator/style/index.tsx","webpack://[name]/./components-pro/week-picker/WeekPicker.tsx","webpack://[name]/./components-pro/week-picker/index.tsx","webpack://[name]/./components-pro/week-picker/style/index.tsx","webpack://[name]/./components-pro/year-picker/YearPicker.tsx","webpack://[name]/./components-pro/year-picker/index.tsx","webpack://[name]/./components-pro/year-picker/style/index.tsx","webpack://[name]/./components/_util/EventManager.tsx","webpack://[name]/./components/_util/KeyCode.tsx","webpack://[name]/./components/_util/TaskRunner.tsx","webpack://[name]/./components/_util/UnitConvertor.tsx","webpack://[name]/./components/_util/addEventListener.tsx","webpack://[name]/./components/_util/enum.tsx","webpack://[name]/./components/_util/isCssAnimationSupported.tsx","webpack://[name]/./components/_util/isFlexSupported.tsx","webpack://[name]/./components/_util/measureScrollbar.tsx","webpack://[name]/./components/_util/mediaQueryListPolyfill.tsx","webpack://[name]/./components/_util/openAnimation.tsx","webpack://[name]/./components/_util/resizeObserver.tsx","webpack://[name]/./components/_util/warning.tsx","webpack://[name]/./components/align/Align.tsx","webpack://[name]/./components/align/index.tsx","webpack://[name]/./components/animate/Animate.tsx","webpack://[name]/./components/animate/AnimateChild.tsx","webpack://[name]/./components/animate/ChildrenUtils.tsx","webpack://[name]/./components/animate/index.tsx","webpack://[name]/./components/animate/style/index.tsx","webpack://[name]/./components/animate/util.tsx","webpack://[name]/./components/button/style/index.less?fab8","webpack://[name]/./components/button/style/index.tsx","webpack://[name]/./components/checkbox/Checkbox.tsx","webpack://[name]/./components/checkbox/style/index.less","webpack://[name]/./components/checkbox/style/index.tsx","webpack://[name]/./components/configure/index.tsx","webpack://[name]/./components/grid/col.tsx","webpack://[name]/./components/grid/row.tsx","webpack://[name]/./components/grid/style/index.less?d29c","webpack://[name]/./components/grid/style/index.tsx","webpack://[name]/./components/icon/index.tsx","webpack://[name]/./components/input/style/index.less?3315","webpack://[name]/./components/input/style/index.tsx","webpack://[name]/./components/menu/MenuItem.tsx","webpack://[name]/./components/menu/SubMenu.tsx","webpack://[name]/./components/menu/index.tsx","webpack://[name]/./components/menu/style/index.less?9a85","webpack://[name]/./components/menu/style/index.tsx","webpack://[name]/./components/message/index.tsx","webpack://[name]/./components/message/style/index.less?68fe","webpack://[name]/./components/message/style/index.tsx","webpack://[name]/./components/message/util.tsx","webpack://[name]/./components/notification/index.tsx","webpack://[name]/./components/notification/style/index.less?2956","webpack://[name]/./components/notification/style/index.tsx","webpack://[name]/./components/pagination/style/index.less?c83e","webpack://[name]/./components/pagination/style/index.tsx","webpack://[name]/./components/progress/Loading.tsx","webpack://[name]/./components/progress/enum.tsx","webpack://[name]/./components/progress/index.tsx","webpack://[name]/./components/progress/progress.tsx","webpack://[name]/./components/progress/style/index.less?e74e","webpack://[name]/./components/progress/style/index.tsx","webpack://[name]/./components/rc-components/checkbox/Checkbox.jsx","webpack://[name]/./components/rc-components/checkbox/index.jsx","webpack://[name]/./components/rc-components/menu/DOMWrap.jsx","webpack://[name]/./components/rc-components/menu/Divider.jsx","webpack://[name]/./components/rc-components/menu/Menu.jsx","webpack://[name]/./components/rc-components/menu/MenuItem.jsx","webpack://[name]/./components/rc-components/menu/MenuItemGroup.jsx","webpack://[name]/./components/rc-components/menu/SubMenu.jsx","webpack://[name]/./components/rc-components/menu/SubPopupMenu.jsx","webpack://[name]/./components/rc-components/menu/index.jsx","webpack://[name]/./components/rc-components/menu/placements.jsx","webpack://[name]/./components/rc-components/menu/util.jsx","webpack://[name]/./components/rc-components/notification/Notice.jsx","webpack://[name]/./components/rc-components/notification/Notification.jsx","webpack://[name]/./components/rc-components/notification/index.jsx","webpack://[name]/./components/rc-components/progress/Circle.jsx","webpack://[name]/./components/rc-components/progress/Line.jsx","webpack://[name]/./components/rc-components/progress/enhancer.jsx","webpack://[name]/./components/rc-components/progress/index.jsx","webpack://[name]/./components/rc-components/progress/types.jsx","webpack://[name]/./components/rc-components/tabs/InkTabBarMixin.jsx","webpack://[name]/./components/rc-components/tabs/KeyCode.jsx","webpack://[name]/./components/rc-components/tabs/RefMixin.jsx","webpack://[name]/./components/rc-components/tabs/ScrollableInkTabBar.jsx","webpack://[name]/./components/rc-components/tabs/ScrollableTabBarMixin.jsx","webpack://[name]/./components/rc-components/tabs/TabBarMixin.jsx","webpack://[name]/./components/rc-components/tabs/TabContent.jsx","webpack://[name]/./components/rc-components/tabs/TabPane.jsx","webpack://[name]/./components/rc-components/tabs/Tabs.jsx","webpack://[name]/./components/rc-components/tabs/index.jsx","webpack://[name]/./components/rc-components/tabs/utils.jsx","webpack://[name]/./components/rc-components/tooltip/Tooltip.jsx","webpack://[name]/./components/rc-components/tooltip/index.jsx","webpack://[name]/./components/rc-components/tooltip/placements.jsx","webpack://[name]/./components/rc-components/tree/Tree.jsx","webpack://[name]/./components/rc-components/tree/TreeNode.jsx","webpack://[name]/./components/rc-components/tree/index.jsx","webpack://[name]/./components/rc-components/tree/util.jsx","webpack://[name]/./components/rc-components/trigger/LazyRenderBox.jsx","webpack://[name]/./components/rc-components/trigger/Popup.jsx","webpack://[name]/./components/rc-components/trigger/PopupInner.jsx","webpack://[name]/./components/rc-components/trigger/index.jsx","webpack://[name]/./components/rc-components/trigger/utils.jsx","webpack://[name]/./components/rc-components/util/Children/toArray.jsx","webpack://[name]/./components/rc-components/util/ContainerRender.jsx","webpack://[name]/./components/rc-components/util/Dom/contains.jsx","webpack://[name]/./components/rc-components/util/Portal.jsx","webpack://[name]/./components/rc-components/util/PureRenderMixin.jsx","webpack://[name]/./components/rc-components/util/createChainedFunction.jsx","webpack://[name]/./components/responsive/Responsive.tsx","webpack://[name]/./components/responsive/enum.tsx","webpack://[name]/./components/ripple/MouseDown.tsx","webpack://[name]/./components/ripple/RippleChild.tsx","webpack://[name]/./components/ripple/index.tsx","webpack://[name]/./components/ripple/style/index.less?29e1","webpack://[name]/./components/ripple/style/index.tsx","webpack://[name]/./components/select/style/index.less?2fc0","webpack://[name]/./components/select/style/index.tsx","webpack://[name]/./components/spin/index.tsx","webpack://[name]/./components/spin/style/index.less?d147","webpack://[name]/./components/spin/style/index.tsx","webpack://[name]/./components/style/index.less","webpack://[name]/./components/style/index.tsx","webpack://[name]/./components/tabs/enum.tsx","webpack://[name]/./components/tabs/index.tsx","webpack://[name]/./components/tabs/style/index.less?512b","webpack://[name]/./components/tabs/style/index.tsx","webpack://[name]/./components/tooltip/index.tsx","webpack://[name]/./components/tooltip/placements.tsx","webpack://[name]/./components/tooltip/style/index.less?4549","webpack://[name]/./components/tooltip/style/index.tsx","webpack://[name]/./components/tree/index.tsx","webpack://[name]/./components/tree/style/index.less?f14e","webpack://[name]/./components/tree/style/index.tsx","webpack://[name]/./index-pro.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://[name]/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://[name]/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://[name]/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://[name]/./node_modules/@babel/runtime/helpers/construct.js","webpack://[name]/./node_modules/@babel/runtime/helpers/createClass.js","webpack://[name]/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://[name]/./node_modules/@babel/runtime/helpers/extends.js","webpack://[name]/./node_modules/@babel/runtime/helpers/get.js","webpack://[name]/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://[name]/./node_modules/@babel/runtime/helpers/inherits.js","webpack://[name]/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://[name]/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://[name]/./node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js","webpack://[name]/./node_modules/@babel/runtime/helpers/objectSpread2.js","webpack://[name]/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://[name]/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://[name]/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://[name]/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://[name]/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/typeof.js","webpack://[name]/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://[name]/./node_modules/@babel/runtime/regenerator/index.js","webpack://[name]/./node_modules/add-dom-event-listener/lib/EventBaseObject.js","webpack://[name]/./node_modules/add-dom-event-listener/lib/EventObject.js","webpack://[name]/./node_modules/add-dom-event-listener/lib/index.js","webpack://[name]/./node_modules/axios/index.js","webpack://[name]/./node_modules/axios/lib/adapters/xhr.js","webpack://[name]/./node_modules/axios/lib/axios.js","webpack://[name]/./node_modules/axios/lib/cancel/Cancel.js","webpack://[name]/./node_modules/axios/lib/cancel/CancelToken.js","webpack://[name]/./node_modules/axios/lib/cancel/isCancel.js","webpack://[name]/./node_modules/axios/lib/core/Axios.js","webpack://[name]/./node_modules/axios/lib/core/InterceptorManager.js","webpack://[name]/./node_modules/axios/lib/core/createError.js","webpack://[name]/./node_modules/axios/lib/core/dispatchRequest.js","webpack://[name]/./node_modules/axios/lib/core/enhanceError.js","webpack://[name]/./node_modules/axios/lib/core/mergeConfig.js","webpack://[name]/./node_modules/axios/lib/core/settle.js","webpack://[name]/./node_modules/axios/lib/core/transformData.js","webpack://[name]/./node_modules/axios/lib/defaults.js","webpack://[name]/./node_modules/axios/lib/helpers/bind.js","webpack://[name]/./node_modules/axios/lib/helpers/buildURL.js","webpack://[name]/./node_modules/axios/lib/helpers/combineURLs.js","webpack://[name]/./node_modules/axios/lib/helpers/cookies.js","webpack://[name]/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://[name]/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://[name]/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://[name]/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://[name]/./node_modules/axios/lib/helpers/spread.js","webpack://[name]/./node_modules/axios/lib/utils.js","webpack://[name]/./node_modules/babel-runtime/core-js/symbol.js","webpack://[name]/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://[name]/./node_modules/babel-runtime/helpers/typeof.js","webpack://[name]/./node_modules/choerodon-ui-font/index.js","webpack://[name]/./node_modules/classnames/index.js","webpack://[name]/./node_modules/codemirror/lib/codemirror.js","webpack://[name]/./node_modules/component-classes/index.js","webpack://[name]/./node_modules/component-indexof/index.js","webpack://[name]/./node_modules/core-js/library/fn/map.js","webpack://[name]/./node_modules/core-js/library/fn/set.js","webpack://[name]/./node_modules/core-js/library/fn/symbol/index.js","webpack://[name]/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://[name]/./node_modules/core-js/library/fn/weak-map.js","webpack://[name]/./node_modules/core-js/library/modules/_a-function.js","webpack://[name]/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://[name]/./node_modules/core-js/library/modules/_an-instance.js","webpack://[name]/./node_modules/core-js/library/modules/_an-object.js","webpack://[name]/./node_modules/core-js/library/modules/_array-from-iterable.js","webpack://[name]/./node_modules/core-js/library/modules/_array-includes.js","webpack://[name]/./node_modules/core-js/library/modules/_array-methods.js","webpack://[name]/./node_modules/core-js/library/modules/_array-species-constructor.js","webpack://[name]/./node_modules/core-js/library/modules/_array-species-create.js","webpack://[name]/./node_modules/core-js/library/modules/_classof.js","webpack://[name]/./node_modules/core-js/library/modules/_cof.js","webpack://[name]/./node_modules/core-js/library/modules/_collection-strong.js","webpack://[name]/./node_modules/core-js/library/modules/_collection-to-json.js","webpack://[name]/./node_modules/core-js/library/modules/_collection-weak.js","webpack://[name]/./node_modules/core-js/library/modules/_collection.js","webpack://[name]/./node_modules/core-js/library/modules/_core.js","webpack://[name]/./node_modules/core-js/library/modules/_ctx.js","webpack://[name]/./node_modules/core-js/library/modules/_defined.js","webpack://[name]/./node_modules/core-js/library/modules/_descriptors.js","webpack://[name]/./node_modules/core-js/library/modules/_dom-create.js","webpack://[name]/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://[name]/./node_modules/core-js/library/modules/_enum-keys.js","webpack://[name]/./node_modules/core-js/library/modules/_export.js","webpack://[name]/./node_modules/core-js/library/modules/_fails.js","webpack://[name]/./node_modules/core-js/library/modules/_for-of.js","webpack://[name]/./node_modules/core-js/library/modules/_global.js","webpack://[name]/./node_modules/core-js/library/modules/_has.js","webpack://[name]/./node_modules/core-js/library/modules/_hide.js","webpack://[name]/./node_modules/core-js/library/modules/_html.js","webpack://[name]/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://[name]/./node_modules/core-js/library/modules/_iobject.js","webpack://[name]/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://[name]/./node_modules/core-js/library/modules/_is-array.js","webpack://[name]/./node_modules/core-js/library/modules/_is-object.js","webpack://[name]/./node_modules/core-js/library/modules/_iter-call.js","webpack://[name]/./node_modules/core-js/library/modules/_iter-create.js","webpack://[name]/./node_modules/core-js/library/modules/_iter-define.js","webpack://[name]/./node_modules/core-js/library/modules/_iter-step.js","webpack://[name]/./node_modules/core-js/library/modules/_iterators.js","webpack://[name]/./node_modules/core-js/library/modules/_library.js","webpack://[name]/./node_modules/core-js/library/modules/_meta.js","webpack://[name]/./node_modules/core-js/library/modules/_object-assign.js","webpack://[name]/./node_modules/core-js/library/modules/_object-create.js","webpack://[name]/./node_modules/core-js/library/modules/_object-dp.js","webpack://[name]/./node_modules/core-js/library/modules/_object-dps.js","webpack://[name]/./node_modules/core-js/library/modules/_object-gopd.js","webpack://[name]/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://[name]/./node_modules/core-js/library/modules/_object-gopn.js","webpack://[name]/./node_modules/core-js/library/modules/_object-gops.js","webpack://[name]/./node_modules/core-js/library/modules/_object-gpo.js","webpack://[name]/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://[name]/./node_modules/core-js/library/modules/_object-keys.js","webpack://[name]/./node_modules/core-js/library/modules/_object-pie.js","webpack://[name]/./node_modules/core-js/library/modules/_property-desc.js","webpack://[name]/./node_modules/core-js/library/modules/_redefine-all.js","webpack://[name]/./node_modules/core-js/library/modules/_redefine.js","webpack://[name]/./node_modules/core-js/library/modules/_set-collection-from.js","webpack://[name]/./node_modules/core-js/library/modules/_set-collection-of.js","webpack://[name]/./node_modules/core-js/library/modules/_set-species.js","webpack://[name]/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://[name]/./node_modules/core-js/library/modules/_shared-key.js","webpack://[name]/./node_modules/core-js/library/modules/_shared.js","webpack://[name]/./node_modules/core-js/library/modules/_string-at.js","webpack://[name]/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://[name]/./node_modules/core-js/library/modules/_to-integer.js","webpack://[name]/./node_modules/core-js/library/modules/_to-iobject.js","webpack://[name]/./node_modules/core-js/library/modules/_to-length.js","webpack://[name]/./node_modules/core-js/library/modules/_to-object.js","webpack://[name]/./node_modules/core-js/library/modules/_to-primitive.js","webpack://[name]/./node_modules/core-js/library/modules/_uid.js","webpack://[name]/./node_modules/core-js/library/modules/_validate-collection.js","webpack://[name]/./node_modules/core-js/library/modules/_wks-define.js","webpack://[name]/./node_modules/core-js/library/modules/_wks-ext.js","webpack://[name]/./node_modules/core-js/library/modules/_wks.js","webpack://[name]/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://[name]/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://[name]/./node_modules/core-js/library/modules/es6.map.js","webpack://[name]/./node_modules/core-js/library/modules/es6.set.js","webpack://[name]/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://[name]/./node_modules/core-js/library/modules/es6.symbol.js","webpack://[name]/./node_modules/core-js/library/modules/es6.weak-map.js","webpack://[name]/./node_modules/core-js/library/modules/es7.map.from.js","webpack://[name]/./node_modules/core-js/library/modules/es7.map.of.js","webpack://[name]/./node_modules/core-js/library/modules/es7.map.to-json.js","webpack://[name]/./node_modules/core-js/library/modules/es7.set.from.js","webpack://[name]/./node_modules/core-js/library/modules/es7.set.of.js","webpack://[name]/./node_modules/core-js/library/modules/es7.set.to-json.js","webpack://[name]/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://[name]/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://[name]/./node_modules/core-js/library/modules/es7.weak-map.from.js","webpack://[name]/./node_modules/core-js/library/modules/es7.weak-map.of.js","webpack://[name]/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://[name]/./node_modules/create-react-class/factory.js","webpack://[name]/./node_modules/create-react-class/index.js","webpack://[name]/./node_modules/css-animation/es/Event.js","webpack://[name]/./node_modules/css-animation/es/index.js","webpack://[name]/./node_modules/dom-align/dist-web/index.js","webpack://[name]/./node_modules/enquire.js/src/MediaQuery.js","webpack://[name]/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://[name]/./node_modules/enquire.js/src/QueryHandler.js","webpack://[name]/./node_modules/enquire.js/src/Util.js","webpack://[name]/./node_modules/enquire.js/src/index.js","webpack://[name]/./node_modules/fbjs/lib/emptyFunction.js","webpack://[name]/./node_modules/fbjs/lib/emptyObject.js","webpack://[name]/./node_modules/fbjs/lib/invariant.js","webpack://[name]/./node_modules/fbjs/lib/warning.js","webpack://[name]/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://[name]/./node_modules/is-buffer/index.js","webpack://[name]/./node_modules/lodash/_DataView.js","webpack://[name]/./node_modules/lodash/_Hash.js","webpack://[name]/./node_modules/lodash/_ListCache.js","webpack://[name]/./node_modules/lodash/_Map.js","webpack://[name]/./node_modules/lodash/_MapCache.js","webpack://[name]/./node_modules/lodash/_Promise.js","webpack://[name]/./node_modules/lodash/_Set.js","webpack://[name]/./node_modules/lodash/_SetCache.js","webpack://[name]/./node_modules/lodash/_Stack.js","webpack://[name]/./node_modules/lodash/_Symbol.js","webpack://[name]/./node_modules/lodash/_Uint8Array.js","webpack://[name]/./node_modules/lodash/_WeakMap.js","webpack://[name]/./node_modules/lodash/_apply.js","webpack://[name]/./node_modules/lodash/_arrayEach.js","webpack://[name]/./node_modules/lodash/_arrayFilter.js","webpack://[name]/./node_modules/lodash/_arrayLikeKeys.js","webpack://[name]/./node_modules/lodash/_arrayMap.js","webpack://[name]/./node_modules/lodash/_arrayPush.js","webpack://[name]/./node_modules/lodash/_arraySome.js","webpack://[name]/./node_modules/lodash/_asciiToArray.js","webpack://[name]/./node_modules/lodash/_assignMergeValue.js","webpack://[name]/./node_modules/lodash/_assignValue.js","webpack://[name]/./node_modules/lodash/_assocIndexOf.js","webpack://[name]/./node_modules/lodash/_baseAssign.js","webpack://[name]/./node_modules/lodash/_baseAssignIn.js","webpack://[name]/./node_modules/lodash/_baseAssignValue.js","webpack://[name]/./node_modules/lodash/_baseClone.js","webpack://[name]/./node_modules/lodash/_baseCreate.js","webpack://[name]/./node_modules/lodash/_baseDelay.js","webpack://[name]/./node_modules/lodash/_baseEach.js","webpack://[name]/./node_modules/lodash/_baseFindIndex.js","webpack://[name]/./node_modules/lodash/_baseFlatten.js","webpack://[name]/./node_modules/lodash/_baseFor.js","webpack://[name]/./node_modules/lodash/_baseForOwn.js","webpack://[name]/./node_modules/lodash/_baseGet.js","webpack://[name]/./node_modules/lodash/_baseGetAllKeys.js","webpack://[name]/./node_modules/lodash/_baseGetTag.js","webpack://[name]/./node_modules/lodash/_baseHasIn.js","webpack://[name]/./node_modules/lodash/_baseIsArguments.js","webpack://[name]/./node_modules/lodash/_baseIsEqual.js","webpack://[name]/./node_modules/lodash/_baseIsEqualDeep.js","webpack://[name]/./node_modules/lodash/_baseIsMap.js","webpack://[name]/./node_modules/lodash/_baseIsMatch.js","webpack://[name]/./node_modules/lodash/_baseIsNative.js","webpack://[name]/./node_modules/lodash/_baseIsSet.js","webpack://[name]/./node_modules/lodash/_baseIsTypedArray.js","webpack://[name]/./node_modules/lodash/_baseIteratee.js","webpack://[name]/./node_modules/lodash/_baseKeys.js","webpack://[name]/./node_modules/lodash/_baseKeysIn.js","webpack://[name]/./node_modules/lodash/_baseMap.js","webpack://[name]/./node_modules/lodash/_baseMatches.js","webpack://[name]/./node_modules/lodash/_baseMatchesProperty.js","webpack://[name]/./node_modules/lodash/_baseMerge.js","webpack://[name]/./node_modules/lodash/_baseMergeDeep.js","webpack://[name]/./node_modules/lodash/_basePickBy.js","webpack://[name]/./node_modules/lodash/_baseProperty.js","webpack://[name]/./node_modules/lodash/_basePropertyDeep.js","webpack://[name]/./node_modules/lodash/_baseRest.js","webpack://[name]/./node_modules/lodash/_baseSet.js","webpack://[name]/./node_modules/lodash/_baseSetToString.js","webpack://[name]/./node_modules/lodash/_baseSlice.js","webpack://[name]/./node_modules/lodash/_baseTimes.js","webpack://[name]/./node_modules/lodash/_baseToString.js","webpack://[name]/./node_modules/lodash/_baseUnary.js","webpack://[name]/./node_modules/lodash/_baseUnset.js","webpack://[name]/./node_modules/lodash/_cacheHas.js","webpack://[name]/./node_modules/lodash/_castPath.js","webpack://[name]/./node_modules/lodash/_castSlice.js","webpack://[name]/./node_modules/lodash/_cloneArrayBuffer.js","webpack://[name]/./node_modules/lodash/_cloneBuffer.js","webpack://[name]/./node_modules/lodash/_cloneDataView.js","webpack://[name]/./node_modules/lodash/_cloneRegExp.js","webpack://[name]/./node_modules/lodash/_cloneSymbol.js","webpack://[name]/./node_modules/lodash/_cloneTypedArray.js","webpack://[name]/./node_modules/lodash/_copyArray.js","webpack://[name]/./node_modules/lodash/_copyObject.js","webpack://[name]/./node_modules/lodash/_copySymbols.js","webpack://[name]/./node_modules/lodash/_copySymbolsIn.js","webpack://[name]/./node_modules/lodash/_coreJsData.js","webpack://[name]/./node_modules/lodash/_createAssigner.js","webpack://[name]/./node_modules/lodash/_createBaseEach.js","webpack://[name]/./node_modules/lodash/_createBaseFor.js","webpack://[name]/./node_modules/lodash/_createCaseFirst.js","webpack://[name]/./node_modules/lodash/_createFind.js","webpack://[name]/./node_modules/lodash/_customOmitClone.js","webpack://[name]/./node_modules/lodash/_defineProperty.js","webpack://[name]/./node_modules/lodash/_equalArrays.js","webpack://[name]/./node_modules/lodash/_equalByTag.js","webpack://[name]/./node_modules/lodash/_equalObjects.js","webpack://[name]/./node_modules/lodash/_flatRest.js","webpack://[name]/./node_modules/lodash/_freeGlobal.js","webpack://[name]/./node_modules/lodash/_getAllKeys.js","webpack://[name]/./node_modules/lodash/_getAllKeysIn.js","webpack://[name]/./node_modules/lodash/_getMapData.js","webpack://[name]/./node_modules/lodash/_getMatchData.js","webpack://[name]/./node_modules/lodash/_getNative.js","webpack://[name]/./node_modules/lodash/_getPrototype.js","webpack://[name]/./node_modules/lodash/_getRawTag.js","webpack://[name]/./node_modules/lodash/_getSymbols.js","webpack://[name]/./node_modules/lodash/_getSymbolsIn.js","webpack://[name]/./node_modules/lodash/_getTag.js","webpack://[name]/./node_modules/lodash/_getValue.js","webpack://[name]/./node_modules/lodash/_hasPath.js","webpack://[name]/./node_modules/lodash/_hasUnicode.js","webpack://[name]/./node_modules/lodash/_hashClear.js","webpack://[name]/./node_modules/lodash/_hashDelete.js","webpack://[name]/./node_modules/lodash/_hashGet.js","webpack://[name]/./node_modules/lodash/_hashHas.js","webpack://[name]/./node_modules/lodash/_hashSet.js","webpack://[name]/./node_modules/lodash/_initCloneArray.js","webpack://[name]/./node_modules/lodash/_initCloneByTag.js","webpack://[name]/./node_modules/lodash/_initCloneObject.js","webpack://[name]/./node_modules/lodash/_isFlattenable.js","webpack://[name]/./node_modules/lodash/_isIndex.js","webpack://[name]/./node_modules/lodash/_isIterateeCall.js","webpack://[name]/./node_modules/lodash/_isKey.js","webpack://[name]/./node_modules/lodash/_isKeyable.js","webpack://[name]/./node_modules/lodash/_isMasked.js","webpack://[name]/./node_modules/lodash/_isPrototype.js","webpack://[name]/./node_modules/lodash/_isStrictComparable.js","webpack://[name]/./node_modules/lodash/_listCacheClear.js","webpack://[name]/./node_modules/lodash/_listCacheDelete.js","webpack://[name]/./node_modules/lodash/_listCacheGet.js","webpack://[name]/./node_modules/lodash/_listCacheHas.js","webpack://[name]/./node_modules/lodash/_listCacheSet.js","webpack://[name]/./node_modules/lodash/_mapCacheClear.js","webpack://[name]/./node_modules/lodash/_mapCacheDelete.js","webpack://[name]/./node_modules/lodash/_mapCacheGet.js","webpack://[name]/./node_modules/lodash/_mapCacheHas.js","webpack://[name]/./node_modules/lodash/_mapCacheSet.js","webpack://[name]/./node_modules/lodash/_mapToArray.js","webpack://[name]/./node_modules/lodash/_matchesStrictComparable.js","webpack://[name]/./node_modules/lodash/_memoizeCapped.js","webpack://[name]/./node_modules/lodash/_nativeCreate.js","webpack://[name]/./node_modules/lodash/_nativeKeys.js","webpack://[name]/./node_modules/lodash/_nativeKeysIn.js","webpack://[name]/./node_modules/lodash/_nodeUtil.js","webpack://[name]/./node_modules/lodash/_objectToString.js","webpack://[name]/./node_modules/lodash/_overArg.js","webpack://[name]/./node_modules/lodash/_overRest.js","webpack://[name]/./node_modules/lodash/_parent.js","webpack://[name]/./node_modules/lodash/_root.js","webpack://[name]/./node_modules/lodash/_safeGet.js","webpack://[name]/./node_modules/lodash/_setCacheAdd.js","webpack://[name]/./node_modules/lodash/_setCacheHas.js","webpack://[name]/./node_modules/lodash/_setToArray.js","webpack://[name]/./node_modules/lodash/_setToString.js","webpack://[name]/./node_modules/lodash/_shortOut.js","webpack://[name]/./node_modules/lodash/_stackClear.js","webpack://[name]/./node_modules/lodash/_stackDelete.js","webpack://[name]/./node_modules/lodash/_stackGet.js","webpack://[name]/./node_modules/lodash/_stackHas.js","webpack://[name]/./node_modules/lodash/_stackSet.js","webpack://[name]/./node_modules/lodash/_stringToArray.js","webpack://[name]/./node_modules/lodash/_stringToPath.js","webpack://[name]/./node_modules/lodash/_toKey.js","webpack://[name]/./node_modules/lodash/_toSource.js","webpack://[name]/./node_modules/lodash/_unicodeToArray.js","webpack://[name]/./node_modules/lodash/capitalize.js","webpack://[name]/./node_modules/lodash/constant.js","webpack://[name]/./node_modules/lodash/debounce.js","webpack://[name]/./node_modules/lodash/defaultTo.js","webpack://[name]/./node_modules/lodash/defer.js","webpack://[name]/./node_modules/lodash/eq.js","webpack://[name]/./node_modules/lodash/findLast.js","webpack://[name]/./node_modules/lodash/findLastIndex.js","webpack://[name]/./node_modules/lodash/flatMap.js","webpack://[name]/./node_modules/lodash/flatten.js","webpack://[name]/./node_modules/lodash/get.js","webpack://[name]/./node_modules/lodash/hasIn.js","webpack://[name]/./node_modules/lodash/identity.js","webpack://[name]/./node_modules/lodash/isArguments.js","webpack://[name]/./node_modules/lodash/isArray.js","webpack://[name]/./node_modules/lodash/isArrayLike.js","webpack://[name]/./node_modules/lodash/isArrayLikeObject.js","webpack://[name]/./node_modules/lodash/isBoolean.js","webpack://[name]/./node_modules/lodash/isBuffer.js","webpack://[name]/./node_modules/lodash/isEqual.js","webpack://[name]/./node_modules/lodash/isFunction.js","webpack://[name]/./node_modules/lodash/isLength.js","webpack://[name]/./node_modules/lodash/isMap.js","webpack://[name]/./node_modules/lodash/isNil.js","webpack://[name]/./node_modules/lodash/isNumber.js","webpack://[name]/./node_modules/lodash/isObject.js","webpack://[name]/./node_modules/lodash/isObjectLike.js","webpack://[name]/./node_modules/lodash/isPlainObject.js","webpack://[name]/./node_modules/lodash/isSet.js","webpack://[name]/./node_modules/lodash/isString.js","webpack://[name]/./node_modules/lodash/isSymbol.js","webpack://[name]/./node_modules/lodash/isTypedArray.js","webpack://[name]/./node_modules/lodash/isUndefined.js","webpack://[name]/./node_modules/lodash/keys.js","webpack://[name]/./node_modules/lodash/keysIn.js","webpack://[name]/./node_modules/lodash/last.js","webpack://[name]/./node_modules/lodash/map.js","webpack://[name]/./node_modules/lodash/memoize.js","webpack://[name]/./node_modules/lodash/merge.js","webpack://[name]/./node_modules/lodash/negate.js","webpack://[name]/./node_modules/lodash/noop.js","webpack://[name]/./node_modules/lodash/now.js","webpack://[name]/./node_modules/lodash/omit.js","webpack://[name]/./node_modules/lodash/omitBy.js","webpack://[name]/./node_modules/lodash/pickBy.js","webpack://[name]/./node_modules/lodash/property.js","webpack://[name]/./node_modules/lodash/stubArray.js","webpack://[name]/./node_modules/lodash/stubFalse.js","webpack://[name]/./node_modules/lodash/throttle.js","webpack://[name]/./node_modules/lodash/toFinite.js","webpack://[name]/./node_modules/lodash/toInteger.js","webpack://[name]/./node_modules/lodash/toNumber.js","webpack://[name]/./node_modules/lodash/toPlainObject.js","webpack://[name]/./node_modules/lodash/toString.js","webpack://[name]/./node_modules/lodash/upperFirst.js","webpack://[name]/./node_modules/mini-store/lib/PropTypes.js","webpack://[name]/./node_modules/mini-store/lib/Provider.js","webpack://[name]/./node_modules/mini-store/lib/connect.js","webpack://[name]/./node_modules/mini-store/lib/create.js","webpack://[name]/./node_modules/mini-store/lib/index.js","webpack://[name]/./node_modules/mobx-react-lite/dist/index.module.js","webpack://[name]/./node_modules/mobx-react/dist/mobx-react.module.js","webpack://[name]/./node_modules/mutationobserver-shim/dist/mutationobserver.min.js","webpack://[name]/./node_modules/object-assign/index.js","webpack://[name]/./node_modules/performance-now/lib/performance-now.js","webpack://[name]/./node_modules/process/browser.js","webpack://[name]/./node_modules/prop-types/checkPropTypes.js","webpack://[name]/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://[name]/./node_modules/prop-types/index.js","webpack://[name]/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://[name]/./node_modules/querystringify/index.js","webpack://[name]/./node_modules/raf/index.js","webpack://[name]/./node_modules/react-codemirror2/index.js","webpack://[name]/./node_modules/react-is/cjs/react-is.development.js","webpack://[name]/./node_modules/react-is/index.js","webpack://[name]/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://[name]/./node_modules/regenerator-runtime/runtime.js","webpack://[name]/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://[name]/./node_modules/shallowequal/index.js","webpack://[name]/./node_modules/string-template/index.js","webpack://[name]/./node_modules/tslib/tslib.es6.js","webpack://[name]/./node_modules/warning/warning.js","webpack://[name]/(webpack)/buildin/global.js","webpack://[name]/(webpack)/buildin/module.js","webpack://[name]/external {\"root\":\"mobx\",\"commonjs2\":\"mobx\",\"commonjs\":\"mobx\",\"amd\":\"mobx\"}","webpack://[name]/external {\"root\":\"moment\",\"commonjs2\":\"moment\",\"commonjs\":\"moment\",\"amd\":\"moment\"}","webpack://[name]/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://[name]/external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}"],"names":["asyncComponent","importComponent","AsyncComponent","arguments","state","then","component","setState","exception","Cmp","props","Component","MAX","Symbol","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","isStale","self","hit","maxAge","diff","Date","now","del","node","value","key","length","removeNode","get","doUse","undefined","unshiftNode","trim","walker","tail","prev","forEachStep","fn","thisp","call","Entry","Cache","options","max","TypeError","Infinity","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","reset","head","next","toArray","map","k","forEach","Map","Yallist","v","e","filter","h","len","has","item","unshift","set","arr","l","expiresAt","_value","mL","allowStale","mA","lC","EventManager","mobxGet","obj","isObservableObject","mobxSet","runInAction","mobxRemove","remove","prop","index","indexOf","slice","restKey","isArrayLike","isObject","data","fields","observable","field","i","push","PromiseQueue","queueing","queue","promise","splice","clear","error","pop","ready","Promise","resolve","tslib_1","prototype","action","TaskRunner","Node","list","insert","inserted","args","Error","n","res","acc","Array","from","to","ret","start","deleteCount","nodes","create","iterator","er","mapStore","bind","context","__autobind__","apply","getBoundSuper","WeakMap","name","superStore","autobind","target","descriptor","constructor","configurable","enumerable","Object","getPrototypeOf","boundFn","defineProperty","writable","createDefaultSetter","newValue","defaultMessage","isString","message","console","getReactNodeText","isNumber","String","window","isValidElement","textDiv","document","createElement","body","appendChild","render","textContent","unmountComponentAtNode","parentNode","removeChild","toString","isEmpty","allowBlank","isSame","oldValue","isEqual","isSameLike","keep","persist","delayer","keeper","event","delayFn","run","stopFn","cancel","delay","addEventListener","keepRunning","measureTextWidth","text","style","span","cssText","innerHTML","replace","property","width","offsetWidth","normalizeLanguage","language","toLowerCase","Animate","getDefaultCache","cache","getConfig","reaction","lookupCache","lengthCalculator","cacheAdapterEnhancer","adapter","enabledByDefault","cacheFlag","defaultCache","config","useCache","isCacheLike","buildURLWithAxiosConfig","responsePromise","process","env","LOGGER_LEVEL","info","jsonMimeType","instance","axios","timeout","headers","Accept","interceptors","response","use","status","success","throttleAdapterEnhancer","threshold","recordCacheWithRequest","timestamp","cachedRecord","buildSortedURL","builtURL","buildURL","split","urlPath","queryString","paramsPair","sort","join","url","params","paramsSerializer","JSON","stringify","Button","handleClickWait","getHandleClick","dataSet","loading","type","nextProps","nextContext","wait","waitType","leading","trailing","ButtonWaitType","throttle","maxWait","debounce","handleClick","stopPropagation","onClick","afterClick","disabled","otherProps","omit","isDisabled","handleClickIfBubble","prefixCls","color","funcType","FuncType","raised","children","icon","childrenCount","Children","count","Icon","href","buttonIcon","ProgressType","Size","small","hasString","some","child","getMergedProps","observableProps","ButtonType","submit","DataSetStatus","submitting","DataSetComponent","displayName","contextType","FormContext","propTypes","PropTypes","oneOf","flat","ButtonColor","primary","gray","blue","red","green","yellow","purple","dark","button","bool","string","number","defaultProps","suffixCls","computed","observer","CheckBox","defaultChecked","checkedValue","unCheckedValue","unCheckedChildren","isChecked","indeterminate","checked","getValues","values","getDataSetValue","concat","record","multiple","setValue","BooleanValue","falseValue","trueValue","Radio","any","ObserverCheckBox","CodeMirror","require","Controlled","defaultCodeMirrorOptions","theme","lineNumbers","lint","gutters","CodeArea","cmOptions","getCodeMirrorOptions","emptyValue","handleCodeMirrorBlur","codeMirrorInstance","formatter","codeMirrorText","getValue","getRaw","handleCodeMirrorDidMount","editor","formatHotKey","unFormatHotKey","height","Tab","cm","somethingSelected","indentSelection","spaces","getOption","replaceSelection","getFormatted","setSize","setOption","_editor","_data","setText","onKeyDown","noop","onEnterDown","keyCode","KeyCode","ENTER","ESC","getInputField","blur","handleCodeMirrorKeyDown","readOnly","isReadOnly","getTextNode","getWrapperProps","getOtherProps","getText","handleBeforeChange","renderFloatLabel","ObserverFormField","object","Col","getNodeRect","getBoundingClientRect","ColorPicker","eventManager","HSV","s","a","saveGradientRef","gradient","saveSelectPointerRef","selectPointer","saveHuePointerRef","huePointer","saveHueRef","hue","saveOpacityRef","opacity","saveOpacityPointerRef","opacityPointer","popup","setHuePointer","left","top","setGradientPointer","startsWith","FieldType","hueColor","backgroundColor","huePointerProps","onMouseDown","handleHPMouseDown","ref","className","handleHueClick","gradientProps","handleGPClick","gradientPointerProps","handleGPMouseDown","getPopupFooter","hexToRGB","r","g","b","rgbToHSV","setHSV","hsvToRGB","hr","hg","hb","ha","rgbToHEX","setHueColor","hueWidth","hueLeft","hex","num","hexNum","results","hexArray","result","exec","parseInt","Math","min","d","m","h1","floor","f","p","q","t","rgb","x","y","pointer","wrap","isClient","wrapX","wrapY","wrapW","wrapH","pointerH","pointerW","positionToHSV","clientX","clientY","hexColor","prepareSetValue","valueR","valueG","valueB","valueA","valueColor","onGPMouseUp","removeEventListener","onHPMouseUp","setColor","label","getProp","valueMissing","$l","typeMismatch","TriggerField","clearButton","Colorpicker","ViewComponent","setObservableProps","classNames","getClassName","getWrapperClassNames","merge","getMergedClassNames","_props","_context","getObservableProps","omitBy","isUndefined","tabIndex","lang","onFocus","handleFocus","onBlur","handleBlur","elementReference","elementClassName","hidden","wrapperProps","wrapperReference","size","isFocus","isFocused","element","wrapper","findDOMNode","classes","add","isDefaultPrevented","focus","updateObservableProps","autoFocus","defer","getProPrefixCls","localeContext","locale","id","large","title","spellCheck","func","onDoubleClick","onMouseUp","onMouseMove","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","onContextMenu","onKeyUp","onKeyPress","Currency","currency","formatCurrency","NumberField","format","DataSet","pending","originalData","resetInBatch","inBatchSelection","syncChildrenRemote","remoteKeys","current","childName","syncChild","queryFields","queryDataSet","autoQuery","autoCreate","pageSize","selection","events","queryParameter","records","totalCount","currentPage","cachedSelected","processListener","initChildren","initEvents","initFields","initQueryDataSet","loadData","query","DataSetEvents","indexChange","handleCascade","DataSetSnapshot","snapshot","previous","fireEvent","toData","isSelected","noCascade","selected","generateJSONData","isSelect","all","page","doQuery","read","loadDataFromResponse","validate","write","columns","checkReadable","parent","generateQueryParameter","_HAP_EXCEL_EXPORT_COLUMNS","totalKey","_r","generateOrderQueryString","ObjectChainValue","newConfig","axiosConfigAdapter","doExport","getUri","method","warning","paging","locate","created","destroyed","modifiedCheck","currentRecord","findInAllPage","isModified","confirm","currentIndex","totalPage","dataIndex","entries","defaultValue","toJS","Record","confirmMessage","beforeDelete","isCurrent","deleteRecord","removeAll","checkParentByInsert","transferRecords","shift","deleted","RecordStatus","end","fromIndex","find","findIndex","thisArg","every","initialValue","reduce","reduceRight","reverse","fieldName","getField","currents","getOrderFields","order","SortOrder","desc","asc","getFieldSorter","recordOrIndex","selectable","DataSetSelection","single","select","cachedIndex","unSelect","currentSelected","selectAll","unSelectAll","setCachedSelected","treeData","sync","group","addField","fieldProps","processIntlField","langName","langProps","Field","allData","total","autoQueryAfterSubmit","primaryKey","statusKey","restCreatedData","restUpdatedData","dataStatus","__id","findRecordById","commit","update","updated","dataKey","ds","para","isNil","storeSelected","autoLocateFirst","idField","parentField","beforeLoad","processData","releaseCachedSelected","nextRecord","getFromTree","load","selectedIndex","getIndexInCurrentPage","isArray","childDs","keys","resp","generateResponseData","prepareSubmitData","axiosConfigs","submitData","prepareForSubmit","changeSubmitStatus","submitEventResult","axiosStatic","handleSubmitSuccess","handleSubmitFail","DataSetRequestError","changeStatus","generateQueryString","queryEventResult","handleLoadSuccess","handleLoadFail","cacheSelectionKeys","isCached","cached","hasChildren","syncChildren","feedback","loadSuccess","defaultFeedback","loadFailed","submitSuccess","myTotal","commitData","submitFailed","dataSetSnapshot","cascadeRecords","cascadeRecordsMap","restore","onlyClient","childRecords","clearCachedSelected","oldSnapshot","pagesize","orderField","param","sortname","sortorder","bindField","findBindFieldBy","pageQuery","generatePageQueryString","generatePageQuery","sortName","sortOrder","parentParam","toJSONData","__dirty","reslove","first","transport","Transport","isRemoved","dirtyRecords","ceil","sortTree","cacheSelection","uniqueKeys","stack","_result","validator","Validator","lastDynamicProps","isDynamicPropsComputing","pristineProps","fetchLookup","fetchLovConfig","dsField","findDataSetField","lookupUrl","propsName","lovCode","lovCodeStore","dynamicProps","executeDynamicProps","checkDynamicProp","dynamicProp","dsValue","processValue","fieldChange","handlePropChange","valueField","lookup","showValueIfNotFound","textField","found","getOptions","required","customValidator","getDateFormatByField","pattern","step","minLength","maxLength","range","unique","defaultValidationMessages","getLimit","valid","checkValidity","axiosConfig","lookupStore","getAxiosConfig","dsConfig","fetchLookupData","lookupData","fetchConfig","validationMessage","validity","validationResults","newProp","oldProp","intl","dirty","init","includes","tlsKey","supports","intlFields","langField","pristineValue","getPristineValue","findBindFields","auto","FieldTrim","both","IDGen","initData","pristineData","json","normalizeData","normalizeCascadeData","isCascadeSelect","childDataSet","isObservableArray","getRecordValue","checkField","oldName","checkFieldType","oneField","isPlainObject","cloneData","tlsData","commitTls","memo","newData","snapShorts","transformResponse","bindValue","needIgnore","ignore","FieldIgnore","always","clean","transformRequest","processToJSON","isDelete","childrenInfoForDelete","jsonArray","checkedLength","isIndeterminate","expandField","expanded","expand","childParentId","parentId","level","getCascadeRecords","queryUrl","destroy","validateUrl","submitUrl","exports","exportUrl","tls","tlsUrl","FieldFormat","append","suffix","isDate","moment","isMoment","jsonDate","processOne","checkRange","formatString","isNaN","Number","email","date","dateTime","time","week","month","year","MIN_SAFE_INTEGER","record1","record2","localeCompare","getValueType","isBoolean","getBaseType","fieldType","valueType","reactNode","iframe","form","myField","excludeSelf","findBindField","callback","numberSorter","stringSorter","array","storeWith","defaultAxiosConfigAdapter","generateConfig","globalConfig","globalAdapter","configs","cb","tlsBind","languages","newDynamicProps","myName","processFieldValue","formatNumber","limit","viewComponents","ViewMode","decade","DecadeYearsView","YearsView","MonthsView","DaysView","DateTimesView","WeeksView","TimesView","DatePicker","mode","getViewMode","view","getSelectedDate","getDefaultViewMode","renderer","getCellRenderer","onSelect","handleSelect","onSelectedDateChange","handleSelectedDateChange","onViewModeChange","handelViewModeChange","isValidDate","cellRenderer","getDateFormat","rangeTarget","rangeValue","selectedDate","isValid","clone","getValidDate","startOf","minOrMax","getLimitWithType","endOf","isUnderRange","changeSelectedDate","exists","unChoose","choose","el","RIGHT","handleKeyDownRight","LEFT","handleKeyDownLeft","DOWN","handleKeyDownDown","UP","handleKeyDownUp","END","handleKeyDownEnd","HOME","handleKeyDownHome","PAGE_UP","handleKeyDownPageUp","PAGE_DOWN","handleKeyDownPageDown","handleKeyDownEnter","TAB","handleKeyDownTab","handleKeyDownEsc","SPACE","handleKeyDownSpace","editable","stopEvent","subtract","altKey","_e","preventDefault","collapse","beginRange","addValue","checkMoment","getValueKey","removeValue","setRangeTarget","isBefore","isAfter","m1","m2","isBetween","currentDate","changeViewMode","getCloneDate","firstDay","hour","minute","second","daysInMonth","handleTimeSelect","getDateFormatByFieldType","alwaysValidDate","classString","renderHeader","renderBody","renderFooter","handlePrevYearClick","handlePrevMonthClick","handleMonthSelect","localeData","monthsShort","handleYearSelect","handleNextYearClick","handleNextMonthClick","renderPanel","getPanelClass","renderPanelHead","renderPanelBody","getDaysOfWeek","renderCell","prevMonth","getFirstDay","currentYear","currentMonth","lastDay","rows","cells","dayProps","renderInner","handleCellClick","days","weekdaysMin","firstDayOfWeek","dow","day","prevYear","lastYear","decadeProps","lastMonth","monthProps","TimesView_1","TimeUnitQueue","TimeUnit","getCurrentUnit","unit","changeUnit","getPrevUnit","getNextUnit","deltaY","handleDateTimeSelect","handleWheel","getTimeBar","pre","last","items","handleTimeCellClick","currentUnit","weekProps","getWeekCell","yearProps","DateTimePicker","_minOrMax","popupStyle","whiteSpace","Dropdown","handlePopupHiddenChange","onHiddenChange","onVisibleChange","propsHidden","propsVisible","visible","onOverlayClick","overlay","defaultHidden","defaultVisible","cloneElement","placement","triggerAction","builtinPlacements","getMenuElement","trigger","PureComponent","arrayOf","Action","hover","click","contextMenu","Placements","bottomLeft","bottomCenter","bottomRight","topLeft","topCenter","topRight","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","points","overflow","offset","EmailField","TextField","CloseButton","onClose","getFieldsById","FormField","repeat","maxTagTextLength","noValidate","pristine","defaultTo","onChange","handleChange","handleKeyDown","hasFloatLabel","showHelp","help","ShowHelp","newLine","FIELD_SUFFIX","getLabel","addToForm","removeFromForm","formNode","removeField","validationResult","getValidationMessage","labelLayout","LabelLayout","getFieldType","currentValidationResult","validationRenderer","endRange","handleEnterDown","syncValueOnBlur","isControlled","processRenderer","defaultRenderer","processText","toRangeValue","toMultipleValue","oldValues","_value1","_value2","isLowerRange","afterRemoveValue","removeValues","_repeat","fromRangeValue","old","getOldValue","processRangeValue","valueLength","maxTagCount","maxTagPlaceholder","repeats","blockClassName","tags","renderRangeValue","renderValidationMessage","closeBtn","handleMutipleValueRemove","inner","isValidationMessageHidden","content","omittedValues","onClear","onInvalid","invalid","cascadeMap","cascade","propName","renderWrapper","renderHelpMessage","recordField","rowSpan","colSpan","tooltip","none","oneOfType","right","onInput","multipleValue","defaultFormat","NameGen","labelWidthPropTypes","labelAlignPropTypes","LabelAlign","center","labelLayoutPropTypes","horizontal","vertical","placeholder","Form","responsiveItems","labelAlign","labelWidth","onSubmit","handleSubmit","onReset","handleReset","header","normalizeLabelWidth","cols","rowIndex","colIndex","matrix","noLabel","childrenArray","getProperty","completeLine","fieldLabelWidth","newColSpan","currentRow","j","isOutput","labelClassName","wrapperClassName","fieldElementProps","pxToRem","getHeader","rasterizedChildren","handleResponsive","processParams","onSuccess","onError","getFields","responsiveColumns","defaultColumns","responsiveWidth","defaultLabelWidth","defaultLabelAlign","responsiveAlign","defaultLabelLayout","responsiveLabelLayout","shape","ResponsiveKeys","xs","sm","md","lg","xl","xxl","mobxAction","React","createContext","fill","labelWidths","fieldProperty","parseFloat","toLocaleStringSupportsLocales","toLocaleString","getNumberFormatOptions","toLocaleStringPolyfill","formatReactTemplate","template","flatMap","stringText","textArr","Fragment","transformString","trimString","supportsLocales","minimumFractionDigits","maximumFractionDigits","fraction","fieldTrim","trimLeft","trimRight","uppercase","toUpperCase","lowercase","capitalize","IconCategory","setPage","ul","onPageChange","category","syncItemPosition","querySelector","offsetHeight","scrollTop","offsetTop","scrollTo","icons","handlePageChange","measureScrollbar","getIcons","handleItemSelect","renderPagination","saveRef","renderIcons","MobxPropTypes","arrayOrObservableArrayOf","isRequired","IconItem","active","COLUMNS","IconPicker","categoryPages","activeCategory","categoryKeys","changeSelected","categories","setActiveCategory","setCategoryPage","isLeft","activeCategoryIndex","newTabIndex","newKey","newPage","isUP","handleKeyDownLeftOrRight","handleKeyDownUpOrDown","selectedIcon","filteredIcons","renderFilteredIcons","renderIconCategories","wrapperPrefix","TabPane","Tabs","tabs","handleTabsChange","flatten","ENV","warn","IntlField","openModal","modal","modalProps","setLoading","storeLocales","open","handleIntlListClose","onOk","handleIntlListOk","onCancel","handleIntlListCancel","destroyOnClose","intlField","Boolean","locales","wrapperSuffix","close","IntlList","renderOptions","setMomentLocale","defaultLocale","LocaleContext","defaultSupports","cmp","Lang","injectionOptions","zh_CN","en_GB","en_US","Table","show_cached_seletion","hide_cached_seletion","edit_button","create_button","save_button","cancel_button","delete_button","remove_button","reset_button","query_button","expand_button","collapse_button","export_button","advanced_search","dirty_info","empty_data","choose_export_columns","column_name","filter_bar_placeholder","advanced_query","advanced_query_conditions","Pagination","records_per_page","Upload","file_selection","click_to_upload","upload_success","upload_failure","no_file","upload_path_unset","not_acceptable_prompt","file_list_max_length","Modal","ok","unsaved_data_confirm","invalid_query_dataset","delete_selected_row_confirm","delete_all_row_confirm","query_failure","submit_success","submit_failure","cannot_add_record_when_head_no_current","value_missing_no_label","value_missing","type_mismatch","today","this_week","modal_title","SelectBox","Select","no_matching_results","select_all","unselect_all","Lov","Transfer","UrlField","bad_input","pattern_mismatch","range_overflow","range_underflow","step_mismatch","step_mismatch_between","too_long","too_short","unknown","whatsNew","direction","suggestion","edit","other","series","primitive","noCache","handleLovViewSelect","handleLovViewClose","handleLovViewOk","closable","minHeight","innerHeight","resetOptions","processRecordToObject","filterText","searchMatcher","setQueryParameter","lovPara","getLovPara","lovStore","holder","holders","elements","getButtonProps","getPlaceholders","handleClearButtonClick","editableFlag","searchable","statePopup","getLovDataSet","checkValueOnOptionsChange","LovView","handleRow","lovItems","gridField","seq1","gridFieldSequence","seq2","display","gridFieldName","gridFieldWidth","gridFieldAlign","align","treeFlag","queryColumns","tableProps","TableMode","tree","getColumns","queryFieldsLimit","selectionMode","SelectionMode","rowbox","onRow","LovFieldType","Menu","Mask","KeyGen","containerInstanses","removeInstanse","instanse","addInstanse","getKey","root","defaultBodyStyle","getRoot","doc","hasScrollBar","scrollHeight","clientHeight","hideBodyScrollBar","paddingRight","showBodyScrollBar","ModalContainer","modals","handleAnimationEnd","modalKey","isEnter","afterClose","handleMaskClick","findLast","maskClosable","location","currentLocation","pathname","originModals","idx","MARGIN_RIGHT_ARRAY","DEFAULT","drawers","drawer","indexInDrawers","CURRENT_WIDTH","getModalWidth","NEXT_WIDTH","NEXT_MARGIN","thisHidden","newProps","marginRight","getOffset","animationProps","onEnd","mount","createPortal","getComponent","getContainer","loop","container","show","moveEvent","okCancelEvent","saveCancelRef","cancelButton","registerOk","registerCancel","getDefaultFooter","okBtn","cancelBtn","okCancel","okFirst","buttons","keyboardClosable","fullScreen","border","getBody","footer","getFooter","downEvent","offsetLeft","moveX","moveY","ret1","ret2","movable","getTitle","getHeaderButtons","headerProps","handleHeaderMouseDown","closeButton","getCloseButton","handleOk","handleCancel","renderChildren","okProps","cancelProps","okText","cancelText","getWrappedFooter","normalizeProps","iconType","titleNode","contentNode","iconNode","MonthPicker","Notification","getCurrentValidValue","wrapperInnerSpanButton","handlePlus","handleMinus","isPlus","MAX_SAFE_INTEGER","currentValue","nearStep","getNearStepValues","nextValue","plus","nearMaxStep","restrict","allowDecimal","isNegative","allowNegative","test","RegExp","precision","getPrecision","getFormatter","getFormatOptions","ObserverNumberField","valueString","getMaxPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","precisionFix","precisionFactor","round","v1","v2","getBeforeStepValue","minFactor","stepFactor","valueFactor","minFactorBase","maxFactor","beforeStepFactor","afterStepFactor","OptGroup","Option","getOptionsFromChildren","disabledField","groups","normalizeOptions","selectionType","fetch","Output","renderMultipleValues","getRenderedValue","Pager","defaultItemRender","handlePageSizeChange","handlePagerClick","pageSizeOptions","ObserverSelect","option","itemRender","bufferSize","pagerList","getPager","showSizeChangerLabel","showSizeChanger","sizeChangerOptionRenderer","sizeChangerPosition","showTotal","showPager","sizeChanger","renderSizeChange","SizeChangerPosition","renderTotal","renderPagers","Password","reveal","handleToggleReveal","doReveal","resetReveal","selectionEnd","selectionStart","setSelectionRange","Progress","percent","handleMouseDown","getChildrenText","getLabelChildren","setChecked","box","ObserverRadio","Range","dragEvent","renderTrack","getPercent","handleTrackClick","bottom","track","currentTarget","handleDrag","handleDragStart","handleDragEnd","totalLength","clientWidth","oneStepLength","Ripple","Row","GroupIdGen","onOption","optionProps","renderItem","handleItemChange","Element","updateActiveKey","menu","activeKey","store","getStore","menuId","getEventKey","getState","defaultSearchMatcher","defaultOnOption","getItemKey","getSimpleValue","comboOptions","doSearch","searchRemote","checkValueReaction","cascadeOptions","processSelectedData","checkComboReaction","generateComboOption","clearCheckValue","clearCheckCombo","combo","checkValue","checkCombo","clearReaction","removeComboOptions","forcePopupAlign","primitiveValue","toValueString","notFoundContent","menuProps","dropdownMenuStyle","optionRenderer","menuDisabled","getGroups","optGroups","selectedKeys","filteredOptions","previousGroup","optionDisabled","itemContent","getNotFoundContent","saveMenu","menuMultiple","getMenuPrefixCls","handleMenuClick","getMenu","chooseAll","unChooseAll","dropdownMatchSelectWidth","minWidth","handleKeyDownPrevNext","handleKeyDownFirstLast","getFlatInstanceArray","activeItem","eventKey","resetFilter","findByTextWithValue","optionsWithCombo","autoType","simpleValue","currentComboOption","findByText","findByValue","removeComboOption","createComboOption","_key","_exists","setLovPara","processObjectValue","processLookupValue","handleOptionUnSelect","handleOptionSelect","newValues","optionsFilter","filterData","cascades","Spin","spinning","defaults","LookupCodeStore","lookupAxiosConfig","processAxiosConfig","lookupCode","getUrl","getQueryAxiosConfig","conditionFieldType","INT","TEXT","DATE","DATETIME","POPUP","generateConditionField","conditionField","conditionFieldName","conditionFieldLovCode","conditionFieldSelectCode","conditionFieldSelectUrl","conditionFieldSelectTf","conditionFieldSelectVf","conditionFieldRequired","aliasName","generateGridField","LovCodeStore","pendings","lovCodes","lovDS","code","lovDefineAxiosConfig","getConfigUrl","getDefineAxiosConfig","lovPageSize","parentIdField","dataSetProps","conditionFieldSequence","conditionFieldSequence2","configItem","querys","lovDefineUrl","lovQueryAxiosConfig","getQueryUrl","customUrl","lovQueryUrl","codes","stores","Switch","defaultMinWidth","Column","lock","ColumnLock","ColumnAlign","resizable","sortable","hideable","minColumnWidth","col","columnWidth","ColumnGroup","column","ColumnGroups","deep","wide","lastLeaf","sum","ExpandIcon","shallowequal","expandable","iconPrefixCls","ExpandedRow","isExpanded","isFunction","buttonsEnumType","TableButtonType","save","expandAll","collapseAll","tableStore","TableStore","resizeLine","showCachedSeletion","offsetParent","styledHidden","syncSizeInFrame","initDefaultExpandedRows","inlineEdit","currentEditRecord","editing","prePage","nextPage","row","dataset","isTree","focusRow","firstRow","lastRow","previousElementSibling","findIndexedSibling","nextElementSibling","expandedRowRenderer","setRowExpanded","rowHeight","lineHeight","newStyle","leftLeafColumnsWidth","rightLeafColumnsWidth","processDataSetListener","syncSize","setProps","flag","handler","handleDataSetLoad","handleDataSetCreate","overflowX","isAnyColumnsLeftLock","isAnyColumnsRightLock","filterBarFieldName","filterBarPlaceholder","getTable","pagination","getPagination","TablePaginationPosition","handleResize","getLeftFixedTable","getRightFixedTable","saveResizeRef","scrollId","raf","handleBodyScrollTop","handleBodyScrollLeft","tableFootWrap","fixedColumnsBodyLeft","bodyTable","tableBodyWrap","fixedColumnsBodyRight","lastScrollTop","headTable","tableHeadWrap","footTable","scrollLeft","lastScrollLeft","setScrollPositionClassName","isAnyColumnsLock","scrollToLeft","table","scrollToRight","setScrollPosition","ScrollPosition","middle","position","scrollPosition","cls","hasHeader","hasBody","hasFooter","getTableHeader","getTableBody","getTableFooter","paginationPosition","getPaginationPosition","paginationProps","getCacheSelectionSwitch","handleSwitchChange","tableHead","tableBody","tableFooter","lockColumnsBodyRowsHeight","bodyHeight","tableHeadRef","tableBodyRef","tableFootRef","renderTable","handleBodyScroll","indentSize","toPx","getWidth","nextFrameActionId","getStyleHeight","tableTitle","tableHeader","getHeight","defaultRowExpanded","expandedRows","queryBar","TableQueryBarType","advancedBar","normal","bar","expandRowByClick","editMode","TableEditMode","inline","cell","highLightRow","TableBody","getRef","onScroll","fixedLeft","scrollbar","hasFooterAndNotLock","marginBottom","TableContext","inTab","TableCell","disconnect","handleOutputChange","thisRecord","thisName","computeOverFlow","TableColumnTooltip","measureWidth","findCell","getColumnKey","contains","activeElement","findFirstFocusableElement","currentEditorName","isDisabledRow","showEditor","cellEditor","isRadio","TableCommandType","handleCommandEdit","handleCommandDelete","command","getCommand","handleCommandSave","handleCommandCancel","defaultButtonProps","newEditorProps","renderCommand","cellEditorInCell","renderEditor","expandIconAsCell","hasCheckFieldColumn","hasEditor","innerProps","handleEditorKeyDown","saveOutput","indentText","paddingLeft","checkBox","getCheckBox","prefix","output","onCell","cellPrefix","cellExternalProps","cellStyle","textAlign","getAlignByField","td","getInnerNode","leftSide","rightSide","sl","getEditorByColumnAndRecord","instanceOf","TableCol","handleTransitionEnd","fireResizeEnd","prevProps","onResizeEnd","TableEditor","showNextEditor","shiftKey","hideEditor","editorProps","reserve","handleEditorKeyEnterDown","handleEditorBlur","handleEditorFocus","TableFooter","lockColumnsFootRowsHeight","overflowY","tds","leafColumns","rightLeafColumns","leftLeafColumns","TableFooterCell","footerClassName","footerStyle","TableHeader","groupedColumns","columnResizable","getTableHeaderRows","trs","prevColumn","resizeColumn","getHeaderNode","getHeaderRowStyle","getRowHeight","lockColumnsHeadRowsHeight","leftGroupedColumns","rightGroupedColumns","TableHeaderCell","resizeEvent","resizeBoundary","headerDom","getNode","setResizeColumn","resizeStart","resizePosition","setSplitLinePosition","pageX","resize","resizeEnd","newWidth","rectLeft","resizerPrefixCls","handleLeftResize","handleRightResize","sortPrefixCls","headerClassName","headerStyle","classList","headerNode","fieldHelp","helpIcon","renderResizer","TableRow","rowExternalProps","childrenRendered","rowKey","isHover","handleSelection","onClickCapture","hasExpandIcon","renderExpandIcon","querySelectorAll","tr","bottomSide","st","columnIndex","expandIconColumnIndex","expandIcon","handleExpandChange","needIndentSpaced","onExpand","expandRows","expandedRow","rowProps","handleMouseEnter","handleMouseLeave","EXPAND_KEY","rowRenderer","rowPrefixCls","handleClickCapture","handleSelectionByClick","dblclick","handleSelectionByDblClick","mousedown","handleSelectionByMouseDown","getCell","renderExpandRow","isRowExpanded","isRowHover","setRowHover","SELECTION_KEY","renderSelectionBox","mergeDefaultProps","defaultKey","newColumns","newColumn","normalizeColumns","leftFixedColumns","rightFixedColumns","getHeaderTexts","handleSelectAllChange","leafNamedColumns","hoverRow","getLeafColumns","allChecked","hasRowBox","selectionColumn","multipleSelectionRenderer","totalLeafColumnsWidth","addExpandColumn","addSelectionColumn","columnGroups","leftColumns","rightColumns","treeRecords","selectedLength","TableTBody","syncBodyHeight","getRows","getEmptyRow","getRow","emptyText","marginLeft","transform","tdStyle","renderExpandedRows","TableWrapper","syncFixedTableRowHeight","handleResizeEnd","hasEmptyWidth","getCol","leafEditorColumns","tableWrapper","editors","getEditors","tableWidth","getColGroup","headRows","bodyRows","footRows","columnLock","leafColumnsWidth","domEvent","ColumnFilter","setDropDownHidden","rootPrefixCls","handleHiddenChange","handleMenuSelect","handleMenuUnSelect","FilterSelect","setFilterText","optionDataSet","on","off","handleDataSetUpdate","handleDataSetReset","selectField","paramName","fieldValue","getFieldLabel","setQueryValue","getQueryValues","getQueryFieldMultiple","getQueryField","filtered","setSelectField","addQueryParams","BACKSPACE","getQueryRecord","Set","multipleFieldExistsValue","getEditorByField","handleInput","handleFieldEnterDown","isEditorReadOnly","getInputFilterOptions","getFieldSelectOptions","hiddenIfNone","handleFieldChange","getFieldEditor","getFieldSelect","TableAdvancedQueryBar","handleQuery","openMore","handleQueryReset","currentFields","createFields","moreFields","moreFieldsButton","getMoreFieldsButton","getResetButton","isMore","handleFieldEnter","valueFilter","getQueryBar","getFilterSelect","TableButtons","buttonGroup","TableFilterBar","getButtons","renderSuffix","filterBindField","newFields","TableToolBar","more","dirtyInfo","getMoreButton","getDirtyInfo","TableQueryBar","exportModal","getColumnHeaders","columnHeaders","exportDataSet","handleExport","handleButtonCreate","handleButtonSubmit","handleButtonDelete","handleButtonRemove","handleButtonReset","handleButtonExport","handleExpandAll","handleCollapseAll","showQueryBar","getQueryFields","renderToolBar","renderFilterBar","renderAdvancedQueryBar","tableCellPrefixCls","wrapperSelector","selector","sibling","getAttributeNodeNS","defaultView","getComputedStyle","TextArea","ResizeType","transition","renderPlaceHolder","PLACEHOLDER_SUPPORT","isPlaceHolderSupport","tagContainer","getSuffix","getPrefix","renderGroup","input","getWrappedEditor","getInnerSpanButton","otherPrevNode","getOtherPrevNode","otherNextNode","getOtherNextNode","placeholderDiv","renderedValue","renderRenderedValue","floatLabel","multipleHolder","renderMultipleHolder","addonBefore","addonAfter","inputElement","renderInputElement","renderTooltipHelp","wrapGroupItem","GroupItemCategory","before","after","startPlaceholder","endPlaceHolder","startValue","endValue","editorStyle","handleRangeStart","handleRangeEnd","zIndex","getEditor","saveTagContainer","handleTagAnimateEnd","handleTagAnimateEnter","renderRangeEditor","renderMultipleEditor","textIndent","getDefaultSuffix","getPlaceHolderNode","DELETE","removeLastValue","restricted","restrictInput","autoComplete","ObserverTextField","TimePicker","Tooltip","popupContent","restProps","extraProps","popupHidden","arrowCls","contentCls","arrowPointAtCenter","getPlacements","verticalArrowShift","mouseEnterDelay","mouseLeaveDelay","transitionName","rcAutoAdjustOverflow","OFFSET_UNIT","rcPlacements","leftTop","rightTop","rightBottom","leftBottom","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","arrowWidth","horizontalArrowShift","placementMap","sourceSelected","targetSelected","selectRecord","titles","handleSourceSelectAllChange","sourceFilter","handleMoveToLeft","handleMoveToRight","handleTargetSelectAllChange","handleTargetMenuClick","targetFilter","TransferList","onSelectAll","selectedText","handleClear","searchField","getSearchField","focusable","getHeaderSelected","TransferOperation","moveToLeft","moveToRight","leftActive","rightActive","Tree","stateForceRenderKeys","handleExpand","expandedKeys","eventObj","setExpand","stateExpandedKeys","handleCheck","checkedKeys","setCheck","stateCheckedKeys","onCheck","_selectedKeys","titleField","getTreeNodes","forceRenderKeys","showLine","showIcon","checkable","checkStrictly","draggable","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","defaultCheckedKeys","defaultSelectedKeys","onLoad","loadedKeys","onRightClick","onDragStart","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","filterTreeNode","openTransitionName","openAnimation","switcherIcon","TreeNode","getTreeNode","BUILT_IN_PLACEMENTS","popupTask","setPopup","popupCls","triggerShowDelay","triggerHiddenDelay","Function","getPopupProps","getPopupContent","handlePopupAnimateAppear","handlePopupAnimateEnd","getPopupStyleFromAlign","getRootDomNode","getTriggerIconFont","onPopupHiddenChange","popupContainer","PopupKeyGen","Popup","contentRendered","popupKey","onAnimateAppear","onAnimateEnter","onAnimateLeave","onAnimateEnd","onAlign","source","getClassNameFromAlign","getStyleFromAlign","currentAlignClassName","currentAlignStyle","shallowEqual","forceAlign","PopupInner","isPointsEq","a1","a2","getPopupClassNameFromAlign","hasOwnProperty","getAlignFromPlacement","placementStr","baseAlign","Trigger","documentEvent","focusTime","preClickTime","animateFrameId","defaultPopupHidden","getPopup","newChildren","newChildProps","isContextMenuToShow","handleEvent","isClickToHide","isClickToShow","isMouseEnterToShow","isMouseLeaveToHide","isFocusToShow","isBlurToHide","handleDocumentScroll","handleDocumentMouseDown","eventName","handle","childHandle","setPopupHidden","focusDelay","delaySetPopupHidden","blurDelay","abs","onPopupAnimateAppear","onPopupAnimateEnter","onPopupAnimateLeave","onPopupAnimateEnd","onPopupAlign","mouseProps","handlePopupMouseEnter","handlePopupMouseLeave","getPopupAlign","handlePopupMouseDown","popupPlacement","popupAlign","getCls","showAction","ShowAction","hideAction","HideAction","mouseEnter","mouseLeave","TriggerChild","createChains","only","handleContextMenu","getResponse","xhr","responseText","parse","saveNativeInputElement","elem","nativeInputElement","handleWrapperBtnClick","handleUploadBtnClick","startUpload","fileList","uploadFiles","handleRemove","file","removeFileItem","formAction","accept","uploadImmediately","showPreviewImage","previewImageWidth","showUploadBtn","extra","uploadProps","inputWrapperBtn","uploadBtn","files","fileBuffer","uid","getUid","URL","createObjectURL","onFileChange","fileListMaxLength","isAcceptFiles","that","setTimeout","upload","filename","XMLHttpRequest","formData","FormData","onprogress","loaded","handleProgress","errorMsg","onload","isSuccessful","handleSuccess","handleError","setRequestHeader","send","onerror","ontimeout","timeoutMsg","targetItem","getFileItem","onUploadSuccess","forceUpdate","onUploadProgress","onUploadError","acceptTypes","acceptType","matchKey","UploadList","previewImg","progress","removeIcon","progressProps","showInfo","rmProps","classnames","listProps","listWrapperCls","ValidationResult","control","innerValidationResults","clearErrors","uniqueRefFields","uniqueRefField","reportMessage","dsName","report","rules","addError","execute","valueMiss","validationRules","controlProps","getValidatorProps","ruleName","uniqueRefValidationResult","Validity","badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","uniqueError","generatePattern","begin","endsWith","nearStepValues","emailReg","urlReg","colorRgbaReg","colorHexReg","types","validateType","otherValue","isEmptyArray","WeekPicker","YearPicker","useCapture","attachEvent","detachEvent","capture","rest","ctrlKey","metaKey","F1","F12","ALT","CAPS_LOCK","CONTEXT_MENU","CTRL","INSERT","MAC_FF_META","META","NUMLOCK","NUM_CENTER","PAUSE","PRINT_SCREEN","SHIFT","WIN_KEY","WIN_KEY_RIGHT","ZERO","NINE","NUM_ZERO","NUM_MULTIPLY","A","Z","navigator","userAgent","QUESTION_MARK","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","MAC_ENTER","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","WIN_IME","callbacks","interval","once","setInterval","reject","clearInterval","addEventListenerWrap","eventType","unstable_batchedUpdates","addDOMEventListener","animation","isCssAnimationSupported","domPrefixes","elm","animationName","isFlexSupported","documentElement","scrollbarWidth","rootFontSize","getRootFontSize","fontSize","scrollDiv","matchMediaPolifill","mediaQuery","media","matches","addListener","removeListener","animate","done","requestAnimationFrameId","cssAnimation","enter","leave","appear","ReactResizeObserver","resizeObserver","onResize","resizeProp","contentRect","fixedWidth","fixedHeight","onComponentUpdated","destroyObserver","ResizeObserver","observe","warned","isWindow","Align","domAlign","monitorWindowResize","startMonitorWindowResize","preHidden","preAlign","preTarget","reAlign","lastTarget","stopMonitorWindowResize","monitorBufferTime","resizeHandler","bufferMonitor","childrenProps","getChildrenFromProps","currentlyAnimatingKeys","keysToEnter","keysToLeave","toArrayChildren","childrenRefs","performEnter","childRef","componentWillEnter","handleDoneAdding","performAppear","componentWillAppear","exclusive","onAppear","onEnter","isValidChildByKey","performLeave","animUtil","allowAppearCallback","allowEnterCallback","componentWillLeave","handleDoneLeaving","onLeave","hiddenProp","currentChildren","allowLeaveCallback","isSameChildren","nextChildren","stop","nextChild","newChild","currentChild","findChildInChildrenByKey","mergeChildren","hasPrev","showInNext","showInNow","findShownChildInChildrenByKey","hasNext","transitionEnter","transitionAppear","transitionLeave","componentProps","stateChildren","AnimateChild","passedProps","transitionMap","isEnterSupported","isAppearSupported","isLeaveSupported","animationType","finishCallback","nameIsObj","stopper","activeName","cssAnimate","c1","c2","same","child2","nextChildrenPending","pendingChildren","Checkbox","saveCheckbox","rcCheckbox","nextState","checkboxGroup","customizePrefixCls","getPrefixCls","checkboxProps","toggleOption","checkboxClass","contextTypes","defaultRenderEmpty","componentName","mergeProps","configure","stringOrNumber","objectOrNumber","pull","others","sizeClassObj","sizeProps","defaultGutter","renderRow","gutter","justify","rowStyle","iconfontPrefix","MenuItem","menuItem","saveMenuItem","inlineCollapsed","isMenuItem","SubMenu","subMenu","saveSubMenu","menuTheme","inlineOpenKeys","handleOpenChange","openKeys","setOpenKeys","onOpenChange","defaultOpenKeys","getInlineCollapsed","switchModeFromInline","siderCollapsed","menuMode","menuOpenAnimation","getRealMenuMode","getMenuOpenAnimation","menuClassName","collapsedWidth","Divider","Item","ItemGroup","childContextTypes","defaultDuration","defaultTop","defaultBottom","messageInstance","defaultPlacement","getCustomizePrefixCls","getMessageInstance","newInstance","getPlacementStyle","getPlacementTransitionName","notice","duration","removeNotice","defaultTransitionName","notificationInstance","defaultGetContainer","setNotificationConfig","getNotificationInstance","cacheKey","closeIcon","notification","typeToIcon","outerPrefixCls","autoMarginTag","description","btn","api","SIZE","Loading","ProgressStatus","ProgressPosition","trailColor","successPercent","strokeWidth","gapDegree","gapPosition","progressStatus","progressInfo","textFormatter","percentNumber","circleType","circle","dashboard","line","percentStyle","successPercentStyle","successSegment","circleSize","circleStyle","circleWidth","gapPos","gapDeg","nativeEvent","PureRenderMixin","shouldComponentUpdate","globalProps","substr","saveInput","canUseDOM","MENUITEM_OVERFLOWED_CLASSNAME","DOMWrap","lastVisibleIndex","ReactDOM","keyPrefix","overflowedItems","renderPlaceholder","overflowedIndicator","propStyle","copy","throwAway","visibility","popupClassName","menuAllProps","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","setStyle","menuItemNodes","getMenuItemNodes","c","menuItemSizes","overflowedIndicatorWidth","originalTotalWidth","cur","currentSumWidth","liWidth","setChildrenWidthAndResize","menuUl","MutationObserver","mutationObserver","attributes","childList","subTree","childNode","overflowed","getOverflowedSubMenuItem","hiddenClassName","Tag","tag","createReactClass","getDefaultProps","selectInfo","selectedKey","innerMenu","getWrappedInstance","changed","processSingle","oneChanged","onDeselect","getActiveKey","updateMiniStore","lastOpen","subIndex","subMenuKey","triggerSubMenuAction","renderCommonMenuItem","parentMenu","setInnerMenu","getPopupContainer","onDestroy","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","defaultActiveFirst","inlineIndent","onItemHover","componentWillUnmount","componentDidMount","manualRef","componentDidUpdate","keyPath","getActiveClassName","getSelectedClassName","getDisabledClassName","attrs","attribute","role","mouseEvent","notFound","checkbox","connect","MenuItemGroup","renderMenuItem","titleClassName","listClassName","renderInnerMenuItem","isMenuItemGroup","guid","popupPlacementMap","updateDefaultActiveFirst","getMenuIdFromSubMenuEventKey","menuInstance","isOpen","onTitleClick","triggerOpenChange","handled","subMenuInstance","onTitleMouseEnter","onTitleMouseLeave","addKeyPath","openChange","mouseenterTimeout","loopMenuItemRecursively","subMenuTitle","popupMenu","isRootMenu","minWidthTimeout","adjustWidth","clearTimeout","baseProps","onSubMenuClick","_menuId","saveMenuInstance","itemIcon","haveRendered","haveOpened","animProps","isInlineMode","getOpenClassName","isChildrenSelected","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","saveSubMenuTitle","triggerNode","popupOffset","onPopupVisibleChange","connected","isSubMenu","allDisabled","originalActiveKey","loopMenuItem","getKeyFromChildrenIndex","instanceArray","SubPopupMenu","activeIndex","ci","childProps","isActive","createChainedFunction","getOpenTransitionName","domProps","menuEventKey","construct","styleProperty","Notice","clearCloseTimer","closeTimer","startCloseTimer","componentClass","seed","getUuid","notices","previousState","noticeNodes","getTransitionName","newNotificationInstance","properties","div","called","noticeProps","Circle","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","pathString","PI","trailPathStyle","strokeDasharray","strokeDashoffset","strokePathStyle","trailWidth","strokeColor","strokeLinecap","getPathStyles","path","enhancer","Line","pathStyle","viewBoxString","WrappedComponent","transitionDuration","prevTimeStamp","isDev","getScroll","w","ownerDocument","docElem","clientLeft","clientTop","parentWindow","styles","rootNode","wrapNode","nav","containerOffset","inkBarNode","inkBar","activeTab","inkBarNodeStyle","tabBarPosition","tabNode","tabOffset","transformSupported","isTransformSupported","setTransform","inkBarAnimated","getInkBarNode","ScrollableInkTabBar","mixins","RefMixin","TabBarMixin","InkTabBarMixin","ScrollableTabBarMixin","getTabs","scrollbarNode","getScrollBarNode","getRootNode","scrollAnimated","onPrevClick","onNextClick","getInitialState","debouncedResize","setNextPrev","scrollToActiveTab","setOffset","nextPrev","isNextPrevShown","navNode","navNodeWH","getScrollWH","containerWH","getOffsetWH","navWrapNodeWH","navWrap","minOffset","realOffset","setNext","setPrev","getOffsetLT","checkNextPrev","navOffset","navStyle","prevTransitionEnd","propertyName","needToSroll","lastNextPrevShown","activeTabWH","wrapOffset","activeTabOffset","navWrapNode","showNextPrev","prevButton","nextButton","navClassName","navClasses","onTabClick","panels","tabBarGutter","rst","generateKey","tab","contents","extraContent","topOrBottom","tabBarExtraContentStyle","extraContentStyle","getDataAttr","TabContent","animated","animatedWithMargin","getTabPanes","destroyInactiveTabPane","getActiveIndex","animatedStyle","getMarginStyle","getTransformPropValue","getTransformByIndex","forceRender","_isActived","isRender","getDefaultActiveKey","activeKeyIsValid","tabBar","setActiveKey","eventKeyCode","nextKey","getNextActiveKey","previousKey","defaultActiveKey","renderTabContent","renderTabBar","onNavKeyDown","webkitTransform","mozTransform","setTransition","webkitTransition","MozTransition","WebkitTransform","MozTransform","isVertical","translate","marginDirection","getStyle","getPropertyValue","setPxStyle","arrowContent","getPopupDomNode","overlayClassName","overlayStyle","afterVisibleChange","destroyTooltipOnHide","getTooltipContainer","popupVisible","saveTrigger","getPopupElement","rcTree","renderTreeNode","isKeyChecked","onNodeExpand","onNodeSelect","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","onBatchNodeCheck","onCheckConductFinished","dragNode","dragNodesKeys","getDragNodesKeys","arrDel","pos","dropPosition","calcDropPosition","dragOverNodeKey","delayedDragEnterLogic","newExpandedKeys","arrAdd","dropNodeKey","posArr","posToArr","dropResult","dropToGap","treeNode","selectedNodes","traverseTreeNodes","setUncontrolledState","halfChecked","startNode","checkedBatch","halfCheckedKeys","checkedKeySet","halfCheckedKeySet","newCheckedKeys","newHalfCheckedKeys","selectedObj","getStrictlyValue","checkedNodes","checkedNodesPositions","targetExpanded","needSync","newState","myPrevProps","checkSync","calcCheckedKeys","calcExpandedKeys","calcSelectedKeys","getPosition","dragOver","dragOverGapTop","dragOverGapBottom","getFullKeyList","getSyncProps","ICON_OPEN","ICON_CLOSE","LOAD_STATUS_NONE","LOAD_STATUS_LOADING","LOAD_STATUS_LOADED","LOAD_STATUS_FAILED","defaultTitle","onlyTreeNodeWarned","nodeContextTypes","rcTreeNode","onUpCheckConduct","nodeChecked","nodeHalfChecked","nodePos","isCheckDisabled","getNodeChildren","checkedCount","childPos","enabledChildrenCount","nextChecked","nextHalfChecked","isSelectable","disableCheckbox","targetChecked","onDownCheckConduct","dragNodeHighlight","dataTransfer","setData","callbackPromise","loadStatus","selectHandle","isLeaf","treeDisabled","switcherIconFromProps","switcherIconFromCtx","switcherCls","$custom","getNodeState","wrapClass","$icon","renderIcon","$title","setSelectHandle","onSelectorClick","renderFirst","nodeList","$children","treeNodes","syncLoadData","originList","targetList","treeSelectable","renderSwitcher","renderCheckbox","renderSelector","ele","getClientRects","rect","win","pageYOffset","pageXOffset","isTreeNode","subTreeData","processNode","parentPos","subNodes","subNode","subPos","keyList","isParent","directly","parentPath","childPath","getNodesStatistic","statistic","keyNodes","posNodes","pageY","gapHeight","needExpandKeys","needExpandPathList","calcExpandedKeyList","calcCheckStateConduct","tgtCheckedKeys","tgtHalfCheckedKeys","conductUp","allSubChecked","sub","conductDown","conduct","keyProps","LazyRenderBox","popupDomNode","stretch","stretchChecked","targetHeight","targetWidth","$ele","savePopupRef","saveAlignRef","setStretchSize","popupInstance","maskTransitionName","maskAnimation","destroyPopupOnHide","sizeStyle","getZIndexStyle","popupInnerProps","getTarget","maskElement","mask","maskTransition","getMaskTransitionName","getMaskElement","returnEmptyString","returnDocument","ALL_HANDLERS","IS_REACT_16","fireEvents","delaySetPopupVisible","clearDelayTimer","relatedTarget","_component","preTouchTime","setPopupVisible","preTime","nextVisible","popupNode","popupAnimation","popupTransitionName","onPopupMouseEnter","onPopupMouseLeave","getPopupClassFromAlign","savePopup","mountNode","getDocument","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","_","prevState","triggerAfterPopupVisibleChange","renderComponent","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","delayS","delayTimer","childPros","alignInstance","childCallback","createTwoChains","onTouchStart","portal","handlePortalUpdate","ContainerRender","unstable_renderSubtreeIntoContainer","autoMount","autoDestroy","removeContainer","Portal","createContainer","didUpdate","_container","shallowCompare","ReactComponentWithPureRenderMixin","module","chainedFunction","enquire","matchMedia","responsiveMap","Breakpoint","responsiveArray","Responsive","breakpoints","register","unregister","breakpoint","match","unmatch","wrapEvent","originalEvent","MouseDown","hide","rippleChild","RippleChild","maxWidth","maxHeight","sqrt","currentCircleStyle","currentStyle","ripple","notCssAnimationSupported","debounceTimeout","delayTimeout","currentSpinning","indicator","dotClassName","getIndicatorWidth","tip","spinClassName","divProps","spinElement","renderIndicator","animateClassName","containerClassName","TabsType","TabsPosition","createNewTab","targetKey","onEdit","removeTab","NO_FLEX","tabPosition","tabBarStyle","hideAdd","tabBarExtraContent","tabPaneAnimated","tabPane","isCard","card","childrenWithClose","splitObject","picked","omited","isNoTitle","domNode","transformOrigin","saveTooltip","__ANT_BUTTON","isHoverTrigger","spanStyle","cursor","buttonStyle","pointerEvents","openClassName","getDisabledCompatibleChildren","childCls","renderSwitcherIcon","switcherOriginCls","camelCase","charAt","req","mod"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFA;AACA;AACA;;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,eAAD,EAAqB;AAAA,MAClCC,cADkC;AAAA;AAAA;AAAA;;AAEpC,8BAAc;AAAA;;AAAA;;AACV,qNAASC,SAAT;AACA,YAAKC,KAAL,GAAa,EAAb;AAFU;AAGb;;AALmC;AAAA;AAAA,0CAMhB;AAAA;;AACh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A9C;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,oC;;;;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,CAAC;;AAED,sCAAsC,uCAAuC,kBAAkB;;AAE/F,uBAAuB,mBAAO,CAAC,uFAAmB;;AAElD;;AAEA,oBAAoB,mBAAO,CAAC,4DAAe;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA,oC;;;;;;;;;;;;ACrRa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,mBAAmB,mBAAO,CAAC,+EAAe;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;;;;;AClDA,iBAAiB,mBAAO,CAAC,sDAAa,E;;;;;;;;;;;;ACAzB;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,aAAa,mBAAO,CAAC,iEAAkB;AACvC,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,mBAAmB,mBAAO,CAAC,mFAA2B;AACtD,sBAAsB,mBAAO,CAAC,yFAA8B;AAC5D,kBAAkB,mBAAO,CAAC,yEAAqB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAO,CAAC,yEAAsB;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC7Ka;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,WAAW,mBAAO,CAAC,gEAAgB;AACnC,YAAY,mBAAO,CAAC,4DAAc;AAClC,kBAAkB,mBAAO,CAAC,wEAAoB;AAC9C,eAAe,mBAAO,CAAC,wDAAY;;AAEnC;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,kEAAiB;AACxC,oBAAoB,mBAAO,CAAC,4EAAsB;AAClD,iBAAiB,mBAAO,CAAC,sEAAmB;;AAE5C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,oEAAkB;;AAEzC;;AAEA;AACA;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;;AClBa;;AAEb,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACxDa;;AAEb;AACA;AACA;;;;;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,eAAe,mBAAO,CAAC,yEAAqB;AAC5C,yBAAyB,mBAAO,CAAC,iFAAsB;AACvD,sBAAsB,mBAAO,CAAC,2EAAmB;AACjD,kBAAkB,mBAAO,CAAC,mEAAe;;AAEzC;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;;;ACrFa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;;ACnDa;;AAEb,mBAAmB,mBAAO,CAAC,qEAAgB;;AAE3C;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,oBAAoB,mBAAO,CAAC,uEAAiB;AAC7C,eAAe,mBAAO,CAAC,uEAAoB;AAC3C,eAAe,mBAAO,CAAC,yDAAa;AACpC,oBAAoB,mBAAO,CAAC,qFAA4B;AACxD,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;ACrFa;;AAEb;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzCa;;AAEb,YAAY,mBAAO,CAAC,mDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;AClDa;;AAEb,kBAAkB,mBAAO,CAAC,mEAAe;;AAEzC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACnBA,+CAAa;;AAEb,YAAY,mBAAO,CAAC,kDAAS;AAC7B,0BAA0B,mBAAO,CAAC,8FAA+B;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,iEAAiB;AACvC,GAAG;AACH;AACA,cAAc,mBAAO,CAAC,gEAAgB;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;ACjGa;;AAEb;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACtEa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,SAAS;;AAET;AACA,4DAA4D,wBAAwB;AACpF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC,+BAA+B,aAAa,EAAE;AAC9C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACnEa;;AAEb,YAAY,mBAAO,CAAC,mDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACXa;;AAEb,YAAY,mBAAO,CAAC,qDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,gEAAgB;AACnC,eAAe,mBAAO,CAAC,oDAAW;;AAElC;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC;AAChC,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7UA,kBAAkB,YAAY,mBAAO,CAAC,oFAA2B,sB;;;;;;;;;;;ACAjE,kBAAkB,YAAY,mBAAO,CAAC,gGAAoC,sB;;;;;;;;;;;;ACA7D;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,2FAA4B;;AAEpD;;AAEA,cAAc,mBAAO,CAAC,yEAAmB;;AAEzC;;AAEA,iHAAiH,mBAAmB,EAAE,mBAAmB,4JAA4J;;AAErT,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,CAAC;AACD;AACA,E;;;;;;;;;;;;ACpBa;;AAEb;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,EAAE,UAAU,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAEN;AACF,CAAC;;;;;;;;;;;;ACnDD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,SAC+B;AACjC,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,GAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,4CAA4C;AACnE,+CAA+C,gBAAgB,eAAe;AAC9E;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,WAAW;AACpD,OAAO,6BAA6B;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C,gBAAgB,yBAAyB;AACzC,qCAAqC,iDAAiD;AACtF,uBAAuB,gBAAgB,oBAAoB,OAAO,2BAA2B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,IAAI;AACJ,QAAQ;AACR;AACA,SAAS,sCAAsC;AAC/C,cAAc;AACd;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,OAAO,0BAA0B;AACjC;AACA,OAAO;AACP;AACA,iCAAiC,oBAAoB;AACrD,4BAA4B;AAC5B,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO,wDAAwD;AAC/D;AACA;;AAEA;AACA;AACA,wCAAwC,8CAA8C;AACtF;AACA;AACA;AACA,mBAAmB,eAAe;AAClC,OAAO,0CAA0C,kBAAkB,EAAE;AACrE;AACA;;AAEA,oCAAoC,eAAe;AACnD;AACA,KAAK,+BAA+B,yBAAyB,uCAAuC,GAAG;AACvG;AACA,KAAK,+BAA+B,MAAM,eAAe,EAAE,aAAa,GAAG;;AAE3E;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA,kBAAkB,aAAa;AAC/B;AACA,OAAO;AACP,SAAS,0BAA0B,EAAE;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,uDAAuD;AACvD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC,OAAO,uBAAuB,WAAW;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;;AAEnC;AACA,wBAAwB,cAAc,eAAe,iBAAiB,cAAc;;AAEpF;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA,OAAO,sCAAsC;AAC7C;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA,mBAAmB,kBAAkB,OAAO,yBAAyB;AACrE;AACA;;AAEA;AACA;AACA,iEAAiE,OAAO;AACxE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mEAAmE;AACnE;AACA;;AAEA;AACA,wBAAwB,uCAAuC,eAAe;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC,0CAA0C;AAC1C;AACA,wFAAwF,YAAY;AACpG;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,uBAAuB;AACvB;AACA,wBAAwB;AACxB,sBAAsB,UAAU;AAChC,YAAY,kBAAkB;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B,YAAY;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,6BAA6B,mCAAmC;AAC/F,wCAAwC,6BAA6B;;AAErE;AACA,8BAA8B,8BAA8B;AAC5D,YAAY,kBAAkB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAA8B;AACxD,4BAA4B,6BAA6B;AACzD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB,EAAE,EAAE;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,GAAG,gBAAgB,kBAAkB,EAAE;AACzE;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gCAAgC,OAAO;AACvC,sBAAsB;AACtB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,wBAAwB;AAClC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;;AAEtB,iCAAiC;;AAEjC,uBAAuB;AACvB,yBAAyB;AACzB,yBAAyB;;AAEzB;AACA;AACA,6BAA6B;AAC7B;AACA,+BAA+B;AAC/B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,qCAAqC;AACrC,sBAAsB;AACtB,UAAU;AACV;AACA;AACA;AACA,mBAAmB,kBAAkB,OAAO,iCAAiC;AAC7E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,gBAAgB,gBAAgB,kBAAkB;AAClD;AACA,kCAAkC;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,OAAO,wBAAwB,gCAAgC,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,8BAA8B,uDAAuD;AACrF;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA,SAAS;AACT;AACA,yBAAyB,sCAAsC;AAC/D;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD,gCAAgC,8BAA8B;;AAE9D;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,oBAAoB;AAC/C,WAAW;AACX,aAAa,uFAAuF,EAAE,EAAE;AACxG,uBAAuB,WAAW;AAClC,SAAS,6BAA6B;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB,6BAA6B;AAC1E;AACA;AACA,WAAW,wCAAwC;AACnD,OAAO;AACP,KAAK;AACL,mBAAmB;AACnB,kBAAkB,mBAAmB;AACrC,mBAAmB,oBAAoB;AACvC;AACA,qBAAqB,kBAAkB;AACvC;AACA,6DAA6D;AAC7D;AACA;AACA,WAAW,gBAAgB,yBAAyB,EAAE;AACtD;AACA,WAAW,gBAAgB,qBAAqB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,kBAAkB;AACrC,OAAO,kCAAkC;AACzC;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,kBAAkB;AACrC,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,+BAA+B,gBAAgB;AAC7D;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B,KAAK;AACL;AACA;AACA,uCAAuC;AACvC,qCAAqC;;AAErC;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA,sEAAsE,mBAAmB;AACzF,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA,iCAAiC;AACjC;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C;AACA;;AAEA;AACA;AACA;AACA,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,mCAAmC;AACnC;AACA,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,+BAA+B,gBAAgB;AAC7D;AACA,iCAAiC;AACjC,4BAA4B;AAC5B,iCAAiC;AACjC;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kCAAkC,6BAA6B;AAC/D;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,wBAAwB;AAC3C;AACA,4BAA4B;AAC5B,YAAY,kBAAkB;AAC9B;AACA,8BAA8B,GAAG;AACjC,uBAAuB,yBAAyB;AAChD;AACA,2BAA2B;AAC3B,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA,yCAAyC;AACzC;AACA,uDAAuD,WAAW;AAClE,cAAc,eAAe;AAC7B;AACA;AACA,uDAAuD,WAAW;AAClE,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,kDAAkD;AAClD,gCAAgC;AAChC,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;;AAEA,uEAAuE;AACvE;AACA,qBAAqB,SAAS;AAC9B,SAAS,yCAAyC;;AAElD;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA,0BAA0B,mBAAmB;AAC7C,cAAc,aAAa;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA,0CAA0C,kBAAkB;AAC5D,yCAAyC,cAAc,qBAAqB,kBAAkB,EAAE;AAChG;;AAEA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA,oEAAoE,kBAAkB;AACtF;AACA,oDAAoD,qBAAqB;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,6BAA6B,gCAAgC;AAC7D;AACA,2BAA2B,SAAS,OAAO,oBAAoB;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA,4CAA4C,kBAAkB;AAC9D,yCAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA,6BAA6B,aAAa,SAAS,wBAAwB;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA,qBAAqB,4CAA4C;AACjE;AACA,SAAS;AACT;AACA,qBAAqB,gCAAgC;AACrD,6BAA6B,WAAW;AACxC;AACA,8BAA8B,gDAAgD;AAC9E;AACA,yBAAyB,2CAA2C;AACpE;AACA;AACA,aAAa,OAAO,OAAO;AAC3B;AACA,0BAA0B,gDAAgD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAyD;AACjF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,+DAA+D;AAC/D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,iEAAiE;AAC5E;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA,mBAAmB,qBAAqB,OAAO,+BAA+B;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM,qCAAqC,8BAA8B,IAAI;AACpF;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA,mBAAmB,gBAAgB,OAAO;AAC1C,OAAO,kBAAkB,EAAE;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,4CAA4C;AAC5C;;AAEA;AACA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C,UAAU,uBAAuB;AACjC;AACA;AACA,4BAA4B,qBAAqB;AACjD,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;;AAE1C,wBAAwB;AACxB;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,8BAA8B,OAAO;AACrC,8BAA8B,OAAO;AACrC;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2FAA2F;AACpG;AACA;AACA,yDAAyD,YAAY;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG,sBAAsB,iCAAiC;;AAE1D;AACA,SAAS;AACT,cAAc;AACd,GAAG;AACH;AACA,SAAS;AACT;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,qCAAqC;AACrC;AACA,GAAG;;AAEH;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,OAAO,8DAA8D;AACrE;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,UAAU,aAAa;AAC5D;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,kCAAkC,SAAS,WAAW;AACtD,UAAU,iBAAiB,aAAa;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,yCAAyC;AACzC,2CAA2C,qCAAqC;AAChF;AACA;AACA;AACA;AACA,0BAA0B,sCAAsC;AAChE,yBAAyB;AACzB,OAAO,0CAA0C,EAAE;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C,4CAA4C;AAC5C,6CAA6C;AAC7C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD,UAAU,sDAAsD;AAChE,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA,kDAAkD;AAClD;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,KAAK;AACL;AACA,qCAAqC;AACrC,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,SAAS;AACT,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;;AAEA;AACA;;AAEA,2BAA2B;AAC3B;AACA,OAAO,0BAA0B;AACjC;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,gCAAgC,qBAAqB;AACrD;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4BAA4B,EAAE;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAsC;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;;AAEjD,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA,2BAA2B,oCAAoC;AAC/D,mCAAmC,0BAA0B;AAC7D;AACA,SAAS,iFAAiF;AAC1F;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,iCAAiC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,0BAA0B;AAC1B;AACA,+BAA+B;AAC/B;;AAEA;AACA,mBAAmB,QAAQ;AAC3B,kBAAkB,wCAAwC;AAC1D;AACA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,oBAAoB,2EAA2E;AAC/F;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA,uBAAuB;AACvB;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,oCAAoC;AAC7C,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,wCAAwC;AACvE;AACA;AACA;AACA,qBAAqB,qEAAqE;AAC1F;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB,sDAAsD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC,gCAAgC;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,sBAAsB,oBAAoB;AAC1C,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA,mCAAmC,mCAAmC;AACtE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iDAAiD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAA+D;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,iFAAiF;AAC5F;AACA,WAAW,uFAAuF;AAClG;;AAEA;AACA;AACA,SAAS,2FAA2F;;AAEpG;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,SAAS,mEAAmE;AAC5E;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,gDAAgD;AACzD;;AAEA;AACA;AACA,OAAO,iFAAiF;;AAExF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yCAAyC;AAC9E,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC,2CAA2C;AAChF,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD,qBAAqB,uBAAuB;AAC5C;AACA;AACA,sCAAsC;AACtC,WAAW,4CAA4C,EAAE;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA,sDAAsD;AACtD;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,2DAA2D;AAC5E;AACA;AACA,SAAS,sEAAsE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C,SAAS,wHAAwH;AACjI;AACA;;AAEA;AACA;AACA,WAAW;AACX,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D,wBAAwB,sBAAsB,gBAAgB;AAC9D,iDAAiD,sCAAsC;AACvF,oDAAoD,yDAAyD;AAC7G;AACA;AACA,0BAA0B,gCAAgC,mBAAmB;AAC7E;AACA;AACA,iBAAiB,gCAAgC,8BAA8B;AAC/E;AACA;AACA,eAAe,gBAAgB;AAC/B,WAAW;AACX;AACA;AACA;AACA,wBAAwB,kBAAkB,wBAAwB;AAClE,WAAW,wCAAwC,sCAAsC,EAAE,EAAE;;AAE7F,kDAAkD,kBAAkB,6BAA6B;AACjG,WAAW,qDAAqD,EAAE;AAClE;AACA;AACA;AACA,qCAAqC;AACrC,oCAAoC,mBAAmB;AACvD;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,SAAS,yBAAyB;AAClC,qBAAqB,sBAAsB;AAC3C;AACA;AACA,WAAW;AACX,aAAa,wEAAwE,EAAE;AACvF;AACA,KAAK;AACL;;AAEA;AACA;AACA,iBAAiB;;AAEjB,SAAS,4BAA4B;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B,iCAAiC,EAAE;AAChE;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,oBAAoB,OAAO,cAAc;AAC5D;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,2BAA2B,8BAA8B;AACzD,kCAAkC,6CAA6C;AAC/E,iCAAiC,iCAAiC;AAClE,kCAAkC,uCAAuC;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qEAAqE;AAC9E;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA;;AAEA;AACA;AACA,cAAc,qCAAqC;AACnD;AACA,gBAAgB,qCAAqC;AACrD,YAAY,iEAAiE,4BAA4B;AACzG,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,iEAAiE;AACxE;AACA,OAAO,8BAA8B;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAyD;AAClE;AACA,SAAS;AACT;AACA;AACA,4EAA4E,qDAAqD;AACjI,oBAAoB,gBAAgB,+BAA+B;AACnE;AACA;AACA,WAAW;AACX,6EAA6E,6CAA6C;AAC1H,OAAO;AACP;AACA;;AAEA;AACA,6BAA6B,2BAA2B;AACxD,8DAA8D,MAAM;AACpE;AACA;AACA,SAAS,iCAAiC;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D,0BAA0B,sCAAsC;;AAEhE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB,0BAA0B;AAClE,OAAO,mEAAmE,EAAE;AAC5E;;AAEA;AACA,wBAAwB;AACxB;AACA,sCAAsC,eAAe;AACrD;AACA,sCAAsC,+CAA+C;AACrF;AACA;AACA;AACA,SAAS,2DAA2D;AACpE;AACA,SAAS,wBAAwB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAuD;AACrF;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,cAAc;AACd;AACA,4CAA4C;AAC5C;AACA,SAAS,wEAAwE,EAAE;AACnF;AACA,SAAS,iEAAiE,EAAE;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,sBAAsB;AACnD;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,gCAAgC;AAChC,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,gBAAgB;AAChB,kDAAkD,+BAA+B;AACjF;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,yDAAyD;AACzE,mBAAmB,0BAA0B;AAC7C,OAAO;AACP,SAAS,SAAS,iEAAiE,EAAE;AACrF,qBAAqB,4BAA4B;AACjD,OAAO;AACP,SAAS,SAAS,mFAAmF,EAAE;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO,4CAA4C;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA,SAAS,4DAA4D;AACrE;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAA6B;AACtD;AACA,YAAY;AACZ;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,yBAAyB,gBAAgB,kBAAkB;AAC3D,iDAAiD;AACjD,KAAK,EAAE,OAAO,iCAAiC,UAAU;AACzD,mDAAmD;AACnD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B,uBAAuB,SAAS,SAAS;AACzC,+FAA+F,SAAS;AACxG,+HAA+H,OAAO;AACtI;AACA,WAAW,gDAAgD;AAC3D;AACA,WAAW,sEAAsE;AACjF,oDAAoD;AACpD;AACA;AACA;AACA;AACA,kCAAkC,4DAA4D;AAC9F,KAAK,OAAO;AACZ,sBAAsB,2BAA2B;AACjD;AACA;AACA,SAAS,sDAAsD;AAC/D;AACA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA,SAAS,SAAS,mGAAmG;AACrH;AACA,SAAS,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA,UAAU,wBAAwB;AAClC,OAAO,wBAAwB,QAAQ;AACvC;AACA,kBAAkB;AAClB;AACA;AACA,oCAAoC,qBAAqB;AACzD,gDAAgD,oBAAoB,uBAAuB;;AAE3F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,0BAA0B;AACpE,SAAS,iCAAiC,EAAE;AAC5C;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,OAAO,kDAAkD;AACzD;;AAEA;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA,0BAA0B,gBAAgB,4BAA4B,OAAO;AAC7E,OAAO,4CAA4C,EAAE,EAAE;AACvD;AACA;;AAEA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,4BAA4B;AAC5B,mBAAmB,mBAAmB;AACtC;AACA,6BAA6B,gCAAgC;AAC7D,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,mBAAmB,qCAAqC;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA,kBAAkB,kBAAkB,EAAE,OAAO,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uCAAuC;AAC1E;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,OAAO;AACP,gBAAgB,OAAO;;AAEvB;AACA,WAAW;AACX;AACA;AACA,uBAAuB;AACvB;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,qEAAqE,EAAE;AAChH,mCAAmC,6DAA6D,EAAE;AAClG,YAAY;AACZ;;AAEA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,MAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA,mBAAmB,kBAAkB;AACrC;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,4BAA4B,SAAS,6CAA6C;AAClF,wBAAwB,SAAS,6CAA6C;AAC9E;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,6CAA6C,GAAG;AAChD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,yBAAyB,gBAAgB,yBAAyB;AAClE,qCAAqC,yCAAyC;AAC9E,OAAO;;AAEP;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,mCAAmC;AACxE,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;;AAE3E;AACA;AACA,SAAS,4BAA4B,2BAA2B;AAChE,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,gBAAgB;AAChB;AACA,mBAAmB,iBAAiB;AACpC;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C,+CAA+C;AAC/C;AACA,kGAAkG;AAClG;AACA;AACA,SAAS,qDAAqD;AAC9D;AACA,SAAS,+CAA+C;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,wFAAwF,sBAAsB,kDAAkD,6DAA6D;AAC7N;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAgD;AAC3F;AACA;;AAEA,sDAAsD,iBAAiB;AACvE,0CAA0C,eAAe;AACzD,kDAAkD,eAAe;AACjE,wCAAwC,aAAa;AACrD,OAAO;AACP,cAAc;AACd;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,qDAAqD;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,OAAO,4CAA4C,wEAAwE,EAAE;AAC7H,oCAAoC;AACpC;AACA,OAAO,+CAA+C;AACtD;;AAEA;AACA,4BAA4B,0BAA0B,aAAa;AACnE;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,KAAK,EAAE;AACP;;AAEA;AACA,qCAAqC,oCAAoC;;AAEzE,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB,qCAAqC,EAAE,MAAM,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB,0BAA0B,EAAE,EAAE;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,0EAA0E;AACrF;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,qBAAqB;AAC5D,WAAW,iCAAiC,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gBAAgB,yBAAyB;AAChE;AACA,mBAAmB,gCAAgC;AACnD,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO,SAAS,OAAO,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA;AACA,mBAAmB,iBAAiB,OAAO;AAC3C;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA,WAAW,4CAA4C;AACvD;AACA;AACA,kBAAkB,gBAAgB,kBAAkB;AACpD,SAAS,4BAA4B,EAAE;AACvC,KAAK;AACL;AACA,OAAO,sDAAsD;AAC7D;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA,iCAAiC,iBAAiB;AAClD,qGAAqG,kBAAkB;AACvH;AACA,uEAAuE,mGAAmG,0GAA0G,uDAAuD,wDAAwD;AACnY;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,0CAA0C;AAChF,uCAAuC,yCAAyC;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,2BAA2B;AAC3D;;AAEA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA,OAAO,uBAAuB;AAC9B;AACA,OAAO,iEAAiE;AACxE;AACA,OAAO,+DAA+D;AACtE;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA,iCAAiC,wBAAwB;AACzD,oBAAoB,yBAAyB;AAC7C,oBAAoB,wBAAwB;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C,iBAAiB,0BAA0B,SAAS,EAAE;AACtD;AACA,gBAAgB,yBAAyB;AACzC;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,+CAA+C,qCAAqC;AACpF;;AAEA;AACA;AACA;AACA;AACA,0GAA0G;AAC1G;AACA;AACA,gDAAgD,sCAAsC;AACtF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA,gBAAgB;;AAEhB;AACA,8BAA8B,oCAAoC;AAClE,KAAK;AACL;AACA,8BAA8B,wCAAwC;AACtE,KAAK;;AAEL;AACA;AACA,+BAA+B,gEAAgE;AAC/F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA,uCAAuC,6BAA6B;AACpE,4BAA4B,iEAAiE;AAC7F;;AAEA;AACA,qCAAqC,2BAA2B;AAChE,2BAA2B,8DAA8D;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D,YAAY,+BAA+B;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,iDAAiD,SAAS,oBAAoB;AAC9E;AACA;AACA;;AAEA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA,mBAAmB,mFAAmF;AACtG;AACA,SAAS,6BAA6B;AACtC;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,OAAO,sCAAsC;AAClD;AACA;AACA;AACA;AACA,KAAK,OAAO,mCAAmC;AAC/C;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,SAAS,6DAA6D;AACtE;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB,iCAAiC,EAAE,KAAK;AAChG,OAAO;AACP;AACA,KAAK;AACL,iCAAiC,wBAAwB;AACzD,YAAY,0BAA0B;AACtC,KAAK;AACL;AACA,OAAO,8DAA8D;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,sBAAsB;AAC3C,SAAS,8BAA8B;AACvC;AACA,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC,OAAO,yBAAyB;AAChC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,+BAA+B;AACtC;;AAEA;AACA;AACA;AACA,2BAA2B,iBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAA0C;AACxF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,6BAA6B;;AAEzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,yDAAyD;AAChE;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS,qFAAqF;AAC9F;AACA;;AAEA;AACA;AACA,OAAO,iEAAiE;AACxE;AACA,OAAO,qCAAqC;AAC5C;AACA,OAAO,sCAAsC;;AAE7C,8BAA8B,kBAAkB;;AAEhD;AACA,OAAO,mCAAmC;AAC1C,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;;AAEA,4BAA4B,kCAAkC;;AAE9D;AACA;AACA,OAAO,kDAAkD;;AAEzD;AACA,+BAA+B,gDAAgD;;AAE/E,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB,mBAAmB;AACpD,OAAO,+BAA+B,2BAA2B,EAAE,EAAE;AACrE,mBAAmB,kBAAkB,uBAAuB;AAC5D,OAAO,kCAAkC,iCAAiC,EAAE,EAAE;;AAE9E;AACA,OAAO,+CAA+C;;AAEtD;AACA;AACA,OAAO,0CAA0C;AACjD;AACA,OAAO,oBAAoB;AAC3B;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,SAAS;AACT,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,WAAW;AACX,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,WAAW;AACX,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,WAAW;AACX,eAAe,kBAAkB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C,qBAAqB,iCAAiC;AACtD,mBAAmB,aAAa;;AAEhC;AACA;AACA;AACA,OAAO,kCAAkC;;AAEzC;;AAEA,iCAAiC;AACjC;AACA,SAAS,eAAe;AACxB,KAAK,mCAAmC;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK,6DAA6D;AAClE;AACA,KAAK,qCAAqC;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,iCAAiC;AACtC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA,SAAS,iCAAiC;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iCAAiC;;AAExC,4DAA4D;AAC5D;AACA,gCAAgC;AAChC;AACA,mCAAmC,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,SAAS,0BAA0B;AAC1C;AACA,mBAAmB,WAAW;AAC9B,OAAO,mBAAmB;AAC1B;AACA;AACA,uCAAuC;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,SAAS,gFAAgF;AACzF;AACA,SAAS,4DAA4D;AACrE;AACA;AACA,SAAS,4EAA4E;AACrF;AACA,SAAS,6DAA6D;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,qEAAqE,SAAS;AAC9E;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO,yDAAyD;AAChE;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA,qBAAqB,4BAA4B;AACjD,0BAA0B,0BAA0B;AACpD;AACA;AACA,uBAAuB,mCAAmC,OAAO,2CAA2C;AAC5G,uBAAuB,iCAAiC;AACxD;AACA;AACA,OAAO;AACP;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B;AAC9B,qBAAqB,yBAAyB;AAC9C,SAAS,4CAA4C;AACrD,KAAK,EAAE;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,6BAA6B;AACpC;AACA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C,OAAO,sCAAsC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,2DAA2D;AAC3D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH,0DAA0D,oCAAoC;AAC9F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,WAAW,aAAa,0FAA0F;AAClH;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,mCAAmC;AAC5C;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,4BAA4B,oEAAoE;AAChG;AACA;AACA,OAAO,OAAO;AACd,sCAAsC,eAAe;AACrD;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC,mBAAmB,yBAAyB;AAC5C,oBAAoB,0BAA0B;AAC9C,oBAAoB,2BAA2B;;AAE/C;AACA;AACA,gEAAgE,eAAe;AAC/E,8DAA8D,eAAe;AAC7E,0BAA0B,mBAAmB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAA8E;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D,YAAY,kDAAkD;AAC9D,+BAA+B,sBAAsB;AACrD;;AAEA;AACA;AACA,gDAAgD;AAChD,6BAA6B;AAC7B;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,SAAS;AACT,OAAO;AACP,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;;AAE7C;AACA;;AAEA,wBAAwB;AACxB,yFAAyF;AACzF,mBAAmB,wBAAwB;AAC3C;AACA,iGAAiG;AACjG;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,sFAAsF;AAC7F;AACA;;AAEA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C,OAAO,iCAAiC,cAAc;AACtD;AACA;;AAEA;AACA;;AAEA,eAAe,WAAW;AAC1B,mBAAmB,wBAAwB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA,sCAAsC;AACtC,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gCAAgC,EAAE;AACnE;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC,mCAAmC;;AAEnC;AACA,qCAAqC,2CAA2C;AAChF;AACA;;AAEA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,wBAAwB;AACpD,wBAAwB,oBAAoB;AAC5C,KAAK;AACL;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC,SAAS,gEAAgE;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,yBAAyB,8BAA8B;AACvD,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gBAAgB,uBAAuB;AAC9D;AACA,8BAA8B;AAC9B;AACA,wCAAwC;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,oCAAoC,gFAAgF,EAAE;AACtH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,4CAA4C;AACrD,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,uCAAuC;AAC9C;AACA,OAAO,wCAAwC;;AAE/C;AACA;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C;;AAEA;AACA;AACA;AACA,OAAO,gBAAgB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAwD,yBAAyB;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB,kBAAkB;AACrC,8CAA8C,YAAY,yBAAyB,EAAE;AACrF,qBAAqB,oBAAoB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,uCAAuC;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,qBAAqB;;AAErB,mBAAmB,gBAAgB;AACnC;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA,yBAAyB,mBAAmB;AAC5C,aAAa,uCAAuC,iBAAiB;AACrE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC,qBAAqB,oBAAoB;AACzC;AACA,yBAAyB,oDAAoD;AAC7E,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,yDAAyD;AAClF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,OAAO,iEAAiE;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C,WAAW;AACX,mEAAmE;AACnE,OAAO;AACP;AACA;AACA;AACA,iBAAiB,sDAAsD;AACvE,mCAAmC;AACnC,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,gDAAgD;;AAEvD;AACA;AACA;;AAEA;AACA,OAAO,6BAA6B;AACpC;;AAEA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,gBAAgB,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB,IAAI;AACtB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,aAAa,8EAA8E;AAC3F;AACA,aAAa;AACb;;AAEA;AACA;AACA,WAAW,kEAAkE;AAC7E;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC,YAAY;AACZ,KAAK;AACL,gDAAgD;AAChD,YAAY;AACZ,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA,iBAAiB;AACjB,iBAAiB,+BAA+B;AAChD,eAAe,2BAA2B;AAC1C,iBAAiB,iBAAiB;AAClC,iCAAiC,qBAAqB;AACtD,MAAM;AACN;AACA,iBAAiB,6CAA6C;;AAE9D;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,uCAAuC;AACvC;;AAEA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,SAAS,uBAAuB,0FAA0F,EAAE;AAC5H,KAAK;AACL;AACA;AACA;;AAEA;AACA,8FAA8F;AAC9F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B;AACA;AACA,SAAS;AACT;AACA,6BAA6B;AAC7B;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO,OAAO;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,wBAAwB,yCAAyC,EAAE;AAC5F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,4CAA4C,UAAU;AACtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,kEAAkE;AAClE;AACA;AACA,MAAM,EAAE;AACR;AACA;AACA,kDAAkD,cAAc;AAChE,SAAS,oCAAoC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;;AAEA,oBAAoB,+CAA+C;AACnE,iBAAiB,oDAAoD;AACrE,UAAU,+BAA+B;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,OAAO,0BAA0B;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,+BAA+B,+BAA+B;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA,OAAO,sCAAsC;AAC7C;AACA,OAAO,gDAAgD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D,2BAA2B,+DAA+D;AAC1F;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,WAAW;AACzB,4BAA4B,yDAAyD;AACrF,kCAAkC,6BAA6B;AAC/D,qBAAqB,+CAA+C;AACpE;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,0BAA0B,iCAAiC,mBAAmB;AAC9E,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4CAA4C;AAChF,UAAU,qBAAqB;AAC/B,qBAAqB;AACrB,iCAAiC,uCAAuC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,2BAA2B;;AAEtD;AACA;AACA;;AAEA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,kBAAkB,OAAO,0BAA0B;AACxE,KAAK;;AAEL;AACA;AACA;;AAEA,0BAA0B,QAAQ;AAClC,SAAS,4BAA4B,cAAc;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;;AAE9C;AACA;;AAEA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAgC,qBAAqB;AAC9E,+BAA+B;AAC/B;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,qBAAqB,0BAA0B,OAAO,oCAAoC;AAC1F,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,0CAA0C;AAC1C,iCAAiC;AACjC;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,kBAAkB,2BAA2B;AAC7C,OAAO,4BAA4B,EAAE,EAAE;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B;AAC5B,mBAAmB,eAAe,OAAO,uBAAuB,mBAAmB,EAAE;AACrF,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,wCAAwC,4CAA4C;AACpF;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,OAAO,0BAA0B;AACjC;;AAEA;AACA;AACA;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA,oCAAoC,sBAAsB;AAC1D,YAAY,uFAAuF;AACnG;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA,KAAK;AACL,aAAa,qGAAqG;AAClH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,iBAAiB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,kBAAkB,kDAAkD;AACpE;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA,oCAAoC,yCAAyC;AAC7E;AACA,8BAA8B,oBAAoB;AAClD,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,SAAS,gDAAgD;AACzD;AACA,2DAA2D,kBAAkB,yBAAyB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,8CAA8C,6BAA6B;AAC3E;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA,aAAa,sDAAsD;AACnE,iBAAiB,kBAAkB;AACnC,sBAAsB,qBAAqB;AAC3C;;AAEA,iEAAiE;AACjE,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,UAAU;AAC5D;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS,wEAAwE;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,kCAAkC;;AAElC;AACA,kBAAkB,iCAAiC;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,uCAAuC,4DAA4D;AACnG,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO,0BAA0B,uCAAuC,gBAAgB;;AAExF;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B,oCAAoC,2BAA2B;AAC/D,KAAK,EAAE;;AAEP,8BAA8B,8CAA8C,uBAAuB,EAAE,EAAE;;AAEvG;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA,SAAS,uCAAuC;AAChD;AACA;AACA,SAAS,wBAAwB,cAAc,OAAO,8BAA8B,EAAE;AACtF,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC,OAAO,4BAA4B;AACnC;;AAEA;AACA;;AAEA,iCAAiC;AACjC;AACA,mBAAmB,yBAAyB;AAC5C,OAAO,2BAA2B;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAA6C;AAChE;AACA,qBAAqB,uBAAuB;AAC5C,SAAS,8BAA8B,SAAS;AAChD;AACA,KAAK;AACL;AACA;;AAEA;AACA,4FAA4F,iBAAiB,EAAE;AAC/G;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE;AAC5E,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA,i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oB,2BAA2B;AAC/C,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,sBAAsB;AACnC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,oCAAoC,EAAE,kBAAkB,cAAc;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,OAAO,OAAO,uBAAuB;AAC1D,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA,yBAAyB,kBAAkB,uBAAuB;AAClE,aAAa,4EAA4E,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uEAAuE,WAAW;AAClF,gEAAgE;;AAEhE;AACA;;AAEA;AACA;AACA;AACA,wDAAwD,SAAS,QAAQ;AACzE,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,mBAAmB,oBAAoB;AACvC;AACA,eAAe,kBAAkB;AACjC;AACA,yBAAyB;AACzB,qBAAqB,oBAAoB,OAAO,eAAe;AAC/D,KAAK,EAAE;AACP;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,OAAO,OAAO;AACd,KAAK;AACL;AACA,oCAAoC,kCAAkC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,iBAAiB,QAAQ,OAAO,iDAAiD;AACjF;AACA,oBAAoB,WAAW,SAAS,0CAA0C;AAClF;AACA,mBAAmB,WAAW,SAAS,yDAAyD;;AAEhG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA,wCAAwC,YAAY;AACpD,uCAAuC,YAAY;AACnD,iDAAiD,aAAa;AAC9D,yCAAyC,cAAc;AACvD,YAAY;AACZ;AACA,cAAc,sBAAsB;AACpC,eAAe,uBAAuB;AACtC,cAAc,sBAAsB;AACpC,gBAAgB,wBAAwB;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,6DAA6D;AAC7D,2BAA2B,wBAAwB;;AAEnD;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL,4BAA4B,2BAA2B;AACvD;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,yCAAyC;;AAEzC;AACA;AACA,SAAS;AACT,qBAAqB,+BAA+B;AACpD;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,sBAAsB;AAC9D,0EAA0E,uBAAuB;AACjG,yEAAyE,sBAAsB;AAC/F,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA,4CAA4C;AAC5C;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C,SAAS,+DAA+D;AACxE;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2DAA2D,EAAE;AACrG,mCAAmC,wCAAwC;AAC3E,SAAS,OAAO,oCAAoC;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,wEAAwE;AAC1G;AACA;AACA,qCAAqC,SAAS,gCAAgC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,2CAA2C;;AAE3C,YAAY,uCAAuC;AACnD;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,0EAA0E;AAC1E;AACA;;AAEA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,sFAAsF,EAAE;AAC5H,6BAA6B;AAC7B;AACA;AACA;AACA,WAAW,SAAS,kDAAkD;AACtE;AACA,WAAW,SAAS,gDAAgD;AACpE,OAAO;AACP,gBAAgB;AAChB;AACA,KAAK,EAAE,EAAE;AACT,+BAA+B,kDAAkD;AACjF;AACA;AACA,KAAK,EAAE,EAAE,EAAE,EAAE;AACb,gCAAgC,kDAAkD;AAClF;AACA,KAAK,EAAE,EAAE,EAAE,EAAE;AACb,uCAAuC;AACvC;AACA,mCAAmC,kBAAkB;AACrD,cAAc;AACd,KAAK,EAAE,EAAE;AACT,wCAAwC;AACxC;AACA,oCAAoC,qDAAqD;AACzF,cAAc;AACd,KAAK,EAAE,EAAE;AACT,yBAAyB,kBAAkB,EAAE;AAC7C,yBAAyB,kBAAkB,EAAE;AAC7C,kCAAkC,2BAA2B,EAAE;AAC/D,kCAAkC,2BAA2B,EAAE;AAC/D,+BAA+B,mDAAmD,EAAE;AACpF,6BAA6B,+CAA+C,EAAE;AAC9E,gCAAgC,gDAAgD,uCAAuC,EAAE;AACzH,OAAO;AACP,MAAM,EAAE;AACR,qCAAqC,gDAAgD,uCAAuC,EAAE;AAC9H,OAAO;AACP,MAAM,EAAE;AACR,8BAA8B,gDAAgD,qCAAqC,EAAE;AACrH,OAAO;AACP,MAAM,EAAE;AACR,gCAAgC;AAChC;AACA,4BAA4B,qDAAqD;AACjF,KAAK,YAAY,EAAE;AACnB,+BAA+B;AAC/B;AACA,4BAA4B,kBAAkB;AAC9C,KAAK,YAAY,EAAE;AACnB,oCAAoC;AACpC;AACA,+BAA+B,kBAAkB;AACjD,uDAAuD;AACvD;AACA,KAAK,YAAY,EAAE;AACnB,6BAA6B,6BAA6B,EAAE;AAC5D,+BAA+B,4BAA4B,EAAE;AAC7D,6BAA6B,6BAA6B,EAAE;AAC5D,+BAA+B,4BAA4B,EAAE;AAC7D,+BAA+B,6BAA6B,EAAE;AAC9D,gCAAgC,4BAA4B,EAAE;AAC9D,iCAAiC,+BAA+B,EAAE;AAClE,kCAAkC,8BAA8B,EAAE;AAClE,+BAA+B,6BAA6B,EAAE;AAC9D,iCAAiC,6BAA6B,EAAE;AAChE,gCAAgC,8BAA8B,EAAE;AAChE,gCAAgC,4BAA4B,EAAE;AAC9D,kCAAkC,+BAA+B,EAAE;AACnE,iCAAiC,8BAA8B,EAAE;AACjE,kCAAkC,+BAA+B,EAAE;AACnE,iCAAiC,8BAA8B,EAAE;AACjE,mCAAmC,gCAAgC,EAAE;AACrE,kCAAkC,+BAA+B,EAAE;AACnE,+BAA+B,oCAAoC,EAAE;AACrE,+BAA+B,kCAAkC,EAAE;AACnE,+BAA+B,uCAAuC,EAAE;AACxE,8BAA8B,kCAAkC,EAAE;AAClE;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mCAAmC,2BAA2B;AAC9D,YAAY,6BAA6B;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,qBAAqB,mBAAmB;AACxC,iCAAiC;AACjC;AACA;AACA,sCAAsC,qCAAqC;AAC3E;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,EAAE;AACT,qCAAqC;AACrC;AACA,mCAAmC,QAAQ;AAC3C,SAAS,iFAAiF;AAC1F;AACA,uBAAuB,mBAAmB;AAC1C,SAAS,kDAAkD;AAC3D;AACA,KAAK,EAAE,EAAE;AACT,6BAA6B,2CAA2C,EAAE;AAC1E,oCAAoC,6BAA6B;AACjE;;;AAGA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,sBAAsB,0BAA0B;AAChD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,6BAA6B;AAChD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,SAAS,wBAAwB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX,8DAA8D;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,wBAAwB;AAC/B;AACA,OAAO,4CAA4C;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,+DAA+D,qCAAqC,EAAE;AACtG;AACA;AACA,kBAAkB;AAClB,cAAc;AACd,KAAK;AACL,oDAAoD,+BAA+B,EAAE;AACrF;AACA;;AAEA;AACA;AACA,4DAA4D,qCAAqC,EAAE;AACnG;;AAEA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC;AAC/C;;AAEA;AACA;AACA,OAAO,mBAAmB;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B;AACtD;AACA;;AAEA;AACA;AACA,8GAA8G;AAC9G;AACA,8CAA8C,sBAAsB,qBAAqB;AACzF,4EAA4E;AAC5E;AACA;AACA,uBAAuB;AACvB,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C,EAAE;AAC5E;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA,OAAO,2BAA2B;;AAElC,gEAAgE;;AAEhE;AACA,gBAAgB,oCAAoC;AACpD,iDAAiD,qBAAqB;AACtE,KAAK;AACL,gBAAgB,8BAA8B;AAC9C,8BAA8B,8BAA8B,EAAE;AAC9D,KAAK;AACL,8BAA8B,mCAAmC;AACjE,YAAY,oBAAoB;AAChC;AACA;;AAEA;AACA;AACA,6BAA6B,wBAAwB;AACrD,kCAAkC,wBAAwB;AAC1D;;AAEA;AACA,qCAAqC,yBAAyB;AAC9D,mBAAmB;AACnB;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gDAAgD;AAChG,+BAA+B,oDAAoD;AACnF,mCAAmC,0DAA0D;AAC7F;AACA;;AAEA;AACA,aAAa,sCAAsC;AACnD,UAAU,8BAA8B;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,+CAA+C;AACtD;AACA,OAAO,4CAA4C;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2DAA2D;AACtE;AACA;AACA,WAAW,yBAAyB,2CAA2C,wBAAwB,MAAM;AAC7G;AACA,WAAW,uBAAuB;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,8BAA8B,EAAE;AAC5D;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,oCAAoC;AAC7C,KAAK;AACL;AACA;AACA;;AAEA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS,mFAAmF;AAC5F;AACA,SAAS,qBAAqB;AAC9B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,gCAAgC;AACpD,KAAK;AACL;AACA,oBAAoB,gCAAgC;AACpD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa,gEAAgE;AAC7E;AACA,aAAa,yFAAyF;AACtG;AACA,6BAA6B,sCAAsC;AACnE;AACA,sBAAsB,gCAAgC;AACtD;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,uCAAuC,0BAA0B,WAAW,GAAG,QAAQ;AAClG,OAAO;AACP;AACA,sBAAsB;AACtB,oCAAoC;AACpC;AACA;AACA,SAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,SAAS;AACrD,YAAY,WAAW;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,iBAAiB;AACjB;AACA,yDAAyD;AACzD;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA,SAAS,oBAAoB;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gBAAgB,gBAAgB;AAC3C,gBAAgB;AAChB;AACA,6EAA6E;AAC7E,kBAAkB,qBAAqB;;AAEvC;AACA;;AAEA,uDAAuD;AACvD;;AAEA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,+CAA+C;AAC/C,6BAA6B,mCAAmC;AAChE;;AAEA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,qBAAqB;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB,6CAA6C,kBAAkB,sBAAsB,GAAG,UAAU;AAClG;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C,yBAAyB,EAAE;AACvE;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B;AAC1B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,OAAO;AACP,wCAAwC,QAAQ;AAChD,SAAS,+FAA+F;AACxG,KAAK;AACL;AACA;AACA,wBAAwB,cAAc;AACtC,KAAK;AACL,mFAAmF,qBAAqB,EAAE;AAC1G;AACA;AACA;AACA,KAAK;AACL,oDAAoD,4CAA4C,EAAE;AAClG,qDAAqD,6CAA6C,EAAE;AACpG,wDAAwD,gDAAgD,EAAE;AAC1G;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD,wBAAwB,+BAA+B;AACvD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,+DAA+D,6BAA6B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,sDAAsD,gBAAgB,EAAE;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sDAAsD,WAAW,0BAA0B,GAAG;AAC9F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uCAAuC,EAAE;AAC1F;AACA,gDAAgD,qBAAqB,EAAE;AACvE;AACA;AACA,iBAAiB,kCAAkC;AACnD,KAAK;;AAEL,iDAAiD,yDAAyD,EAAE;AAC5G;AACA,mDAAmD,iCAAiC,EAAE;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B,EAAE;AAC3D;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,kFAAkF;AACnH,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sDAAsD;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,uBAAuB;;AAE9D;AACA;AACA,gCAAgC,yBAAyB,yCAAyC,EAAE,MAAM;;AAE1G;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO,qCAAqC;AAC5C;AACA,OAAO,cAAc;;AAErB,qCAAqC;AACrC,OAAO,iDAAiD,EAAE;AAC1D;AACA,6BAA6B,0BAA0B;AACvD,mBAAmB,sBAAsB,OAAO,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,oCAAoC;AACpC;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,OAAO,GAAG;AACV;AACA,OAAO,0CAA0C,qDAAqD,EAAE,EAAE;AAC1G;AACA;AACA;AACA,gDAAgD,6BAA6B,EAAE;;AAE/E;AACA,oCAAoC;AACpC;AACA;AACA,gDAAgD,6BAA6B,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4BAA4B;AACtD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA,WAAW,4BAA4B;AACvC;AACA,WAAW,4EAA4E;AACvF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,6BAA6B,EAAE;AAC9E,mDAAmD,6BAA6B,EAAE;;AAElF;AACA,yCAAyC,uDAAuD,EAAE;;AAElG;AACA,2BAA2B,6BAA6B,WAAW,GAAG;AACtE,0BAA0B,6BAA6B,mBAAmB,WAAW,GAAG;AACxF,2BAA2B,2BAA2B,EAAE;AACxD;AACA,2BAA2B,6BAA6B,qBAAqB;AAC7E;;AAEA;AACA,mCAAmC,4BAA4B,EAAE;AACjE;AACA;AACA,mCAAmC,uBAAuB,EAAE;AAC5D,kCAAkC,sBAAsB,EAAE;AAC1D;;AAEA;AACA,4CAA4C,0BAA0B;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C,YAAY,uCAAuC;AACnD;;AAEA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,kEAAkE;AAC5F,YAAY,iBAAiB;AAC7B,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,OAAO,gDAAgD,GAAG,OAAO,eAAe,uBAAuB;AACvG,4BAA4B,6CAA6C;;AAEzE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD,aAAa,qDAAqD;AAClE;AACA,OAAO;AACP,kDAAkD,YAAY,EAAE;AAChE;AACA;;AAEA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,WAAW,0CAA0C;AACrD;AACA,WAAW,+FAA+F;AAC1G;AACA,WAAW,+BAA+B;AAC1C;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,OAAO,+BAA+B;;AAEtC;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAA0B,qDAAqD,EAAE,EAAE;AAC5F;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;;AAEA,uCAAuC,QAAQ;AAC/C;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD,WAAW;AACX;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA,WAAW,wDAAwD;AACnE;AACA,qBAAqB,0DAA0D;AAC/E;AACA;;AAEA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA,uBAAuB;AACvB;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA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;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP,gCAAgC,qCAAqC;AACrE,oCAAoC,4BAA4B;AAChE,qCAAqC,6BAA6B;AAClE,mCAAmC;AACnC;AACA;;AAEA;AACA,0CAA0C,qCAAqC,aAAa;AAC5F;AACA;AACA;AACA;AACA,kCAAkC,4BAA4B;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW,2DAA2D;AACtE;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,6BAA6B;AAC7B,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA,wBAAwB,QAAQ,YAAY;AAC5C;AACA;;AAEA,mBAAmB,gBAAgB;AACnC,2CAA2C;AAC3C;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA,WAAW;AACX;AACA,4BAA4B;AAC5B,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wDAAwD;AACxD;AACA,6BAA6B,uCAAuC,+BAA+B,EAAE,OAAO;AAC5G,KAAK;;AAEL;AACA,0BAA0B;AAC1B,KAAK;AACL;AACA,8BAA8B,qBAAqB,2BAA2B;AAC9E,KAAK;AACL;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA,KAAK;;AAEL,uCAAuC,oCAAoC,EAAE;;AAE7E;AACA,8BAA8B,0BAA0B;AACxD,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA,uBAAuB,0CAA0C;AACjE,8BAA8B,sCAAsC;AACpE,OAAO;AACP;AACA,OAAO;AACP;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD,kCAAkC,6BAA6B;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,6DAA6D;AACtE,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,0CAA0C,mBAAmB;AAC7D,uBAAuB,yBAAyB;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,kCAAkC,gDAAgD,EAAE,EAAE;AAC/F,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC,uCAAuC;AACvC;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,mDAAmD;AAC5D;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE,yDAAyD;;AAEzD,8DAA8D;;AAE9D;AACA;AACA;AACA,OAAO,sBAAsB;AAC7B;AACA,OAAO,+BAA+B,+CAA+C,EAAE,EAAE;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mCAAmC,kCAAkC;AACrE,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,kEAAkE;AACzE;AACA,OAAO,0BAA0B;AACjC,uEAAuE;;AAEvE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA,yCAAyC,eAAe,eAAe,UAAU;AACjF,0CAA0C,iBAAiB,iBAAiB,YAAY;AACxF,YAAY;AACZ;;AAEA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D,cAAc;AACd;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,OAAO,+BAA+B,6BAA6B,EAAE,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA,OAAO,kHAAkH;AACzH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,MAAM;AAC/B,OAAO,wDAAwD,cAAc;AAC7E;AACA;;AAEA,6BAA6B,WAAW,gBAAgB,EAAE;;AAE1D;AACA;AACA,kCAAkC,2BAA2B,wBAAwB,EAAE;AACvF;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uEAAuE;AACpF;AACA;AACA,8DAA8D;AAC9D;AACA,2EAA2E;;AAE3E,sBAAsB,SAAS;AAC/B,uBAAuB,4BAA4B;AACnD,WAAW,0BAA0B;;AAErC,+CAA+C,uBAAuB;AACtE,sBAAsB,gBAAgB;AACtC,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB,KAAK;AACL,4BAA4B;AAC5B,0DAA0D;AAC1D,+EAA+E;AAC/E;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA,2CAA2C,8BAA8B;AACzE;;AAEA;AACA,sBAAsB,8BAA8B;AACpD;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,mGAAmG,OAAO;AAC1G;AACA;AACA,SAAS;AACT;AACA,SAAS,kCAAkC;AAC3C;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA,SAAS;AACT;AACA,SAAS,qCAAqC;AAC9C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,cAAc,wBAAwB;;AAEtC;AACA,yDAAyD,4BAA4B;AACrF;AACA,KAAK;;AAEL;AACA,wDAAwD;;AAExD;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA,uBAAuB,0CAA0C;AACjE,OAAO;AACP;AACA,OAAO;AACP;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;;AAEA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,qBAAqB;AAC5D,KAAK;;AAEL;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA,uDAAuD,kCAAkC;AACzF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD,kCAAkC,6BAA6B;AAC/D,KAAK;AACL;AACA,kCAAkC,0BAA0B;AAC5D;AACA;;AAEA,kDAAkD;;AAElD,uDAAuD;;AAEvD;AACA;AACA,WAAW,uBAAuB;AAClC,kBAAkB;AAClB;AACA;;AAEA,8CAA8C,sBAAsB;;AAEpE;AACA;AACA;;AAEA,uDAAuD,iBAAiB;;AAExE;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA,oCAAoC,mBAAmB;AACvD,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,YAAY,0BAA0B;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB;AAChE,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA,6EAA6E,QAAQ;;AAErF;AACA;AACA;;AAEA;AACA,0DAA0D,qCAAqC;AAC/F,YAAY,yBAAyB;;AAErC;AACA;AACA;AACA,4CAA4C,kCAAkC;AAC9E;AACA,KAAK;AACL;AACA;;AAEA;AACA,0CAA0C,0BAA0B;AACpE;;AAEA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;;AAEA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA,yBAAyB,SAAS;;AAElC;AACA;AACA;AACA;AACA,OAAO,2EAA2E;;AAElF;AACA;AACA;AACA,2CAA2C,aAAa,cAAc,wDAAwD,mDAAmD,sBAAsB,uEAAuE,sBAAsB,iBAAiB,eAAe,kBAAkB,cAAc,0BAA0B;AAC9X;AACA,iBAAiB,6BAA6B,EAAE;AAChD;AACA,iBAAiB,mCAAmC;AACpD;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,iCAAiC,yEAAyE;;AAE1G;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,eAAe,cAAc;AAC7B;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO,sCAAsC;AAC7C;AACA,OAAO,4CAA4C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC;AAChD;AACA;AACA;;AAEA;AACA,yCAAyC,qEAAqE,EAAE;AAChH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,mCAAmC;AACnC,KAAK;AACL,yBAAyB;AACzB,KAAK,uBAAuB,EAAE;;AAE9B;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF;AACA;;AAEA;;AAEA;AACA,6CAA6C,UAAU,0BAA0B,2BAA2B,GAAG,EAAE,EAAE;AACnH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC3gTD;AACA;AACA;;AAEA;AACA,cAAc,mBAAO,CAAC,0DAAS;AAC/B,CAAC;AACD,cAAc,mBAAO,CAAC,oEAAmB;AACzC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9LA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,E;;;;;;;;;;;ACNA,mBAAO,CAAC,uGAAiC;AACzC,mBAAO,CAAC,qGAAgC;AACxC,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,6EAAoB;AAC5B,mBAAO,CAAC,6FAA4B;AACpC,mBAAO,CAAC,mFAAuB;AAC/B,mBAAO,CAAC,uFAAyB;AACjC,iBAAiB,mBAAO,CAAC,yEAAkB;;;;;;;;;;;;ACP3C,mBAAO,CAAC,uGAAiC;AACzC,mBAAO,CAAC,qGAAgC;AACxC,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,6EAAoB;AAC5B,mBAAO,CAAC,6FAA4B;AACpC,mBAAO,CAAC,mFAAuB;AAC/B,mBAAO,CAAC,uFAAyB;AACjC,iBAAiB,mBAAO,CAAC,yEAAkB;;;;;;;;;;;;ACP3C,mBAAO,CAAC,sFAA0B;AAClC,mBAAO,CAAC,0GAAoC;AAC5C,mBAAO,CAAC,oHAAyC;AACjD,mBAAO,CAAC,4GAAqC;AAC7C,iBAAiB,mBAAO,CAAC,4EAAqB;;;;;;;;;;;;ACJ9C,mBAAO,CAAC,wGAAmC;AAC3C,mBAAO,CAAC,kGAAgC;AACxC,iBAAiB,mBAAO,CAAC,kFAAwB;;;;;;;;;;;;ACFjD,mBAAO,CAAC,uGAAiC;AACzC,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,uFAAyB;AACjC,mBAAO,CAAC,6FAA4B;AACpC,mBAAO,CAAC,iGAA8B;AACtC,iBAAiB,mBAAO,CAAC,yEAAkB;;;;;;;;;;;;ACL3C;AACA;AACA;AACA;;;;;;;;;;;;ACHA,8BAA8B;;;;;;;;;;;;ACA9B;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACJA,eAAe,mBAAO,CAAC,0EAAc;AACrC;AACA;AACA;AACA;;;;;;;;;;;;ACJA,YAAY,mBAAO,CAAC,oEAAW;;AAE/B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA,gBAAgB,mBAAO,CAAC,4EAAe;AACvC,eAAe,mBAAO,CAAC,0EAAc;AACrC,sBAAsB,mBAAO,CAAC,0FAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,cAAc,mBAAO,CAAC,sEAAY;AAClC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,0EAAc;AACrC,UAAU,mBAAO,CAAC,gGAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA,eAAe,mBAAO,CAAC,0EAAc;AACrC,cAAc,mBAAO,CAAC,wEAAa;AACnC,cAAc,mBAAO,CAAC,8DAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACfA;AACA,yBAAyB,mBAAO,CAAC,0GAA8B;;AAE/D;AACA;AACA;;;;;;;;;;;;ACLA;AACA,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,UAAU,mBAAO,CAAC,8DAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtBA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;ACJa;AACb,SAAS,mBAAO,CAAC,0EAAc;AAC/B,aAAa,mBAAO,CAAC,kFAAkB;AACvC,kBAAkB,mBAAO,CAAC,gFAAiB;AAC3C,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,iBAAiB,mBAAO,CAAC,8EAAgB;AACzC,YAAY,mBAAO,CAAC,oEAAW;AAC/B,kBAAkB,mBAAO,CAAC,8EAAgB;AAC1C,WAAW,mBAAO,CAAC,0EAAc;AACjC,iBAAiB,mBAAO,CAAC,8EAAgB;AACzC,kBAAkB,mBAAO,CAAC,8EAAgB;AAC1C,cAAc,mBAAO,CAAC,gEAAS;AAC/B,eAAe,mBAAO,CAAC,8FAAwB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;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AAc;AACrC,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,cAAc,mBAAO,CAAC,0EAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,kEAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpDa;AACb;AACA,kBAAkB,mBAAO,CAAC,8EAAgB;AAC1C,cAAc,mBAAO,CAAC,8EAAgB;AACtC,WAAW,mBAAO,CAAC,8EAAgB;AACnC,UAAU,mBAAO,CAAC,4EAAe;AACjC,eAAe,mBAAO,CAAC,0EAAc;AACrC,cAAc,mBAAO,CAAC,sEAAY;AAClC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,kEAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;ACrCD;AACA,eAAe,mBAAO,CAAC,0EAAc;AACrC,UAAU,mBAAO,CAAC,4EAAe;AACjC,kBAAkB,mBAAO,CAAC,kFAAkB;AAC5C,eAAe,mBAAO,CAAC,4EAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,4EAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,gEAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACxCA,eAAe,mBAAO,CAA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B;AACnD,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,aAAa,mBAAO,CAAC,sEAAY;AACjC,gBAAgB,mBAAO,CAAC,4EAAe;AACvC,eAAe,mBAAO,CAAC,0EAAc;AACrC,cAAc,mBAAO,CAAC,wEAAa;AACnC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,0EAAc;AACrC,gBAAgB,mBAAO,CAAC,4EAAe;AACvC,kBAAkB,mBAAO,CAAC,gFAAiB;AAC3C,iBAAiB,mBAAO,CAAC,kFAAkB;AAC3C,cAAc,mBAAO,CAAC,kFAAkB;AACxC,cAAc,mBAAO,CAAC,sFAAoB;AAC1C,YAAY,mBAAO,CAAC,8EAAgB;AACpC,YAAY,mBAAO,CAAC,8EAAgB;AACpC,UAAU,mBAAO,CAAC,0EAAc;AAChC,YAAY,mBAAO,CAAC,8EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB,uBAAuB,WAAW,IAAI;AAC5D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,8EAAgB;AAC1B,EAAE,mBAAO,CAAC,4EAAe;AACzB;;AAEA,sBAAsB,mBAAO,CAAC,sEAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,8CAA8C,YAAY,EAAE;;AAE5D;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,QAAQ,iCAAiC;AACpG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,gEAAS;AACrD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrPa;AACb,aAAa,mBAAO,CAAC,oEAAW;AAChC,WAAW,mBAAO,CAAC,kFAAkB;AACrC,eAAe,mBAAO,CAAC,wEAAa;AACpC,WAAW,mBAAO,CAAC,gEAAS;AAC5B,aAAa,mBAAO,CAAC,kFAAkB;AACvC,WAAW,mBAAO,CAAC,sFAAoB;AACvC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,8FAAwB;AAC/C,sBAAsB,mBAAO,CAAC,8FAAwB;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,mBAAO,CAAC,4EAAe;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;AC3DA;AACA,mBAAO,CAAC,8FAAwB;;;;;;;;;;;;ACDhC;AACA,mBAAO,CAAC,0FAAsB;;;;;;;;;;;;ACD9B;AACA,cAAc,mBAAO,CAAC,oEAAW;;AAEjC,uCAAuC,SAAS,mBAAO,CAAC,4FAAuB,UAAU;;;;;;;;;;;;ACHzF;AACA,mBAAO,CAAC,8FAAwB;;;;;;;;;;;;ACDhC;AACA,mBAAO,CAAC,0FAAsB;;;;;;;;;;;;ACD9B;AACA,cAAc,mBAAO,CAAC,oEAAW;;AAEjC,uCAAuC,SAAS,mBAAO,CAAC,4FAAuB,UAAU;;;;;;;;;;;;ACHzF,mBAAO,CAAC,4EAAe;;;;;;;;;;;;ACAvB,mBAAO,CAAC,4EAAe;;;;;;;;;;;;ACAvB;AACA,mBAAO,CAAC,8FAAwB;;;;;;;;;;;;ACDhC;AACA,mBAAO,CAAC,0FAAsB;;;;;;;;;;;;ACD9B,mBAAO,CAAC,0FAAsB;AAC9B,aAAa,mBAAO,CAAC,oEAAW;AAChC,WAAW,mBAAO,CAAC,gEAAS;AAC5B,gBAAgB,mBAAO,CAAC,0EAAc;AACtC,oBAAoB,mBAAO,CAAC,8DAAQ;;AAEpC;AACA;AACA;AACA;AACA;;AAEA,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,4DAAe;;AAErC,kBAAkB,mBAAO,CAAC,oEAAsB;AAChD,iBAAiB,mBAAO,CAAC,gEAAoB;;AAE7C,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,4DAAkB;AAC1C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,EAEN;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,0BAA0B;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,UAAU,IAAqC;AAC/C;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;;AAEA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA,gBAAgB,IAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,cAAc,SAAS;AACvB;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA;AACA;AACA,cAAc,IAAqC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,cAAc,IAAqC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;AC75BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,YAAY,mBAAO,CAAC,oBAAO;AAC3B,cAAc,mBAAO,CAAC,+DAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEe,+EAAgB,E;;;;;;;;;;;;AChI/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACvB;AACY;;AAExC,8BAA8B,8CAAK;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,mEAAO;AAChF;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAO;;AAE3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,IAAI,8CAAK;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,8CAAK;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,8CAAK;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,8CAAK;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEmC;;AAEpB,2EAAY,E;;;;;;;;;;;;AC9K3B;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C,qCAAqC;AACrC;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8EAA8E;;AAE9E;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C,0DAA0D;;AAE1D;AACA,+BAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,sEAAsE,cAAc;AACpF;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,uCAAuC;AACvC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,2BAA2B,cAAc;AACzC,2BAA2B,cAAc,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,2BAA2B;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B;AAChE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf,qDAAqD;;AAErD,mCAAmC;;AAEnC;AACA,2CAA2C;;AAE3C,sFAAsF;;AAEtF,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;;;AAGX;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,eAAe,KAAK,mBAAmB;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH;;AAEtH;AACA,iDAAiD;AACjD;AACA,GAAG;AACH;;AAEe,2EAAY,EAAC;AACQ;AACpC;;;;;;;;;;;;ACvyCA,mBAAmB,mBAAO,CAAC,qEAAgB;AAC3C,WAAW,mBAAO,CAAC,qDAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC;AACjC,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;;;;;;;;;;;AC5FA,iBAAiB,mBAAO,CAAC,iEAAc;AACvC,WAAW,mBAAO,CAAC,qDAAQ;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,mBAAmB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpFA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,YAAY;AACtB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA,yBAAyB,mBAAO,CAAC,iFAAsB;AACvD;;;;;;;;;;;;;ACDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC;AACA;;AAEA,6B;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;;AAEA,2B;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,oBAAoB,mBAAO,CAAC,iEAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yB;;;;;;;;;;;;AC7Da;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACVA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA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,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B,EAAE;AAC/D;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrCA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;;;;;;ACfA,cAAc,mBAAO,CAAC,qDAAY;AAClC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,uDAAa;AACpC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,0BAA0B,mBAAO,CAAC,6EAAwB;AAC1D,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,8BAA8B,mBAAO,CAAC,qFAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,UAAU,mBAAO,CAAC,2CAAO;AACzB,YAAY,mBAAO,CAAC,+CAAS;AAC7B,YAAY,mBAAO,CAAC,iDAAU;AAC9B,yBAAyB,mBAAO,CAAC,2EAAuB;AACxD,8BAA8B,mBAAO,CAAC,qFAA4B;AAClE,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,cAAc,mBAAO,CAAC,qDAAY;AAClC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,qDAAY;AACnC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACzCA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,wBAAwB,mBAAO,CAAC,uEAAqB;AACrD,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;AACnC,oBAAoB,mBAAO,CAAC,+DAAiB;AAC7C,mBAAmB,mBAAO,CAAC,6DAAgB;AAC3C,cAAc,mBAAO,CAAC,qDAAY;AAClC,oBAAoB,mBAAO,CAAC,+DAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7FA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAA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C,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,oBAAoB,mBAAO,CAAC,+DAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxFA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;;;;;;;;;;;;;ACHA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,yBAAyB,mBAAO,CAAC,2EAAuB;AACxD,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AC7BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;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AEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,yDAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,oBAAoB,mBAAO,CAAC,+DAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,uCAAuC,4BAA4B,EAAE;AACrE;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,UAAU,mBAAO,CAAC,2CAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpDA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACtCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACxDA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;AAC/B,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjEA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrBa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;ACjBY;;AAEb;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,+DAAa;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AW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,aAAa;AACb;AACA;AACA,4BAA4B,aAAa;AACzC,sBAAsB,oDAAM;AAC5B,2BAA2B,oDAAM;AACjC,IAAI,uDAAS;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,8DAAiB;AAC5B;;AAEA;AACA;AACA,IAAI,uDAAS,cAAc,WAAW,EAAE;AACxC;AACA;AACA,oBAAoB,sDAAQ;AAC5B,iBAAiB,yDAAW;AAC5B,iCAAiC,iBAAiB,EAAE;AACpD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,gCAAgC;AACvE,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM;AACzB;AACA,+BAA+B,6CAAQ;AACvC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,2DAAa;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA,wCAAwC,kCAAkC,EAAE;AAC5E;AACA;AACA,YAAY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BAAgB,iBAAiB,WAAW,qBAAqB,SAAS,gBAAgB,YAAY,KAAK,WAAW,oBAAoB,SAAS,oBAAoB,KAAK,WAAW,qCAAqC,SAAS,aAAa,aAAa,sBAAsB,WAAW;AACra,gDAAgD,cAAc,WAAW,8BAA8B,0DAA0D,QAAQ,SAAS,GAAG,QAAQ,aAAa,EAAE,gBAAgB,wBAAwB,0BAA0B,WAAW,cAAc,SAAS,uBAAuB,UAAU,qBAAqB,cAAc,kCAAkC,cAAc,mDAAmD,SAAS;;;;;;;;;;;;;ACRhe;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;;ACnCA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,SAAM;AAC7I;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC9kBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,kDAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,CAAC,MAAM,EAIN;;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;;;ACXa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrHA,wDAAU,mBAAO,CAAC,8EAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC1EA,8CAAa;;AAEb;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD,YAAY,mBAAO,CAAC,oBAAO;AAC3B;AACA;AACA;AACA,OAAO,mBAAO,CAAC,+DAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAuD;AAC/F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAuD;AAC/F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD,oC;;;;;;;;;;;;;ACjoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA,8CAA8C,cAAc;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACvOa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,0FAA+B;AAC1D;;;;;;;;;;;;;ACNA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;;;;;;AC7JpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,SAAE;AAClD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrtBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA,iCAAiC,YAAY;AAC7C,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,6BAA6B,EAAE,aAAa;AAC5G,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8CAA8C;AAC9C,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAA2C;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;AC/5BrB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC7CA,eAAe,iBAAiB;;AAEhC;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC;AACpC,+CAA+C;AAC/C;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,iEAAiE,uBAAuB,EAAE,4BAA4B;AACrJ;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;;;;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,aAAoB;;AAElC;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACrBA,kD;;;;;;;;;;;ACAA,oD;;;;;;;;;;;ACAA,mD;;;;;;;;;;;ACAA,uD","file":"choerodon-ui-pro.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"mobx\"), require(\"moment\"), require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"mobx\", \"moment\", \"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"choerodon-ui-pro\"] = factory(require(\"mobx\"), require(\"moment\"), require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"choerodon-ui-pro\"] = factory(root[\"mobx\"], root[\"moment\"], root[\"React\"], root[\"ReactDOM\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_mobx__, __WEBPACK_EXTERNAL_MODULE_moment__, __WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__) {\nreturn "," \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","var map = {\n\t\"./animate/style/index.tsx\": \"./components-pro/animate/style/index.tsx\",\n\t\"./axios/style/index.tsx\": \"./components-pro/axios/style/index.tsx\",\n\t\"./button/style/index.tsx\": \"./components-pro/button/style/index.tsx\",\n\t\"./check-box/style/index.tsx\": \"./components-pro/check-box/style/index.tsx\",\n\t\"./code-area/style/index.tsx\": \"./components-pro/code-area/style/index.tsx\",\n\t\"./col/style/index.tsx\": \"./components-pro/col/style/index.tsx\",\n\t\"./color-picker/style/index.tsx\": \"./components-pro/color-picker/style/index.tsx\",\n\t\"./core/style/index.tsx\": \"./components-pro/core/style/index.tsx\",\n\t\"./currency/style/index.tsx\": \"./components-pro/currency/style/index.tsx\",\n\t\"./data-set/style/index.tsx\": \"./components-pro/data-set/style/index.tsx\",\n\t\"./date-picker/style/index.tsx\": \"./components-pro/date-picker/style/index.tsx\",\n\t\"./date-time-picker/style/index.tsx\": \"./components-pro/date-time-picker/style/index.tsx\",\n\t\"./dropdown/style/index.tsx\": \"./components-pro/dropdown/style/index.tsx\",\n\t\"./email-field/style/index.tsx\": \"./components-pro/email-field/style/index.tsx\",\n\t\"./field/style/index.tsx\": \"./components-pro/field/style/index.tsx\",\n\t\"./form/style/index.tsx\": \"./components-pro/form/style/index.tsx\",\n\t\"./formatter/style/index.tsx\": \"./components-pro/formatter/style/index.tsx\",\n\t\"./grid/style/index.tsx\": \"./components-pro/grid/style/index.tsx\",\n\t\"./icon-picker/style/index.tsx\": \"./components-pro/icon-picker/style/index.tsx\",\n\t\"./icon/style/index.tsx\": \"./components-pro/icon/style/index.tsx\",\n\t\"./intl-field/style/index.tsx\": \"./components-pro/intl-field/style/index.tsx\",\n\t\"./locale-context/style/index.tsx\": \"./components-pro/locale-context/style/index.tsx\",\n\t\"./lov/style/index.tsx\": \"./components-pro/lov/style/index.tsx\",\n\t\"./menu/style/index.tsx\": \"./components-pro/menu/style/index.tsx\",\n\t\"./message/style/index.tsx\": \"./components-pro/message/style/index.tsx\",\n\t\"./modal-container/style/index.tsx\": \"./components-pro/modal-container/style/index.tsx\",\n\t\"./modal/style/index.tsx\": \"./components-pro/modal/style/index.tsx\",\n\t\"./month-picker/style/index.tsx\": \"./components-pro/month-picker/style/index.tsx\",\n\t\"./notification/style/index.tsx\": \"./components-pro/notification/style/index.tsx\",\n\t\"./number-field/style/index.tsx\": \"./components-pro/number-field/style/index.tsx\",\n\t\"./option/style/index.tsx\": \"./components-pro/option/style/index.tsx\",\n\t\"./output/style/index.tsx\": \"./components-pro/output/style/index.tsx\",\n\t\"./pagination/style/index.tsx\": \"./components-pro/pagination/style/index.tsx\",\n\t\"./password/style/index.tsx\": \"./components-pro/password/style/index.tsx\",\n\t\"./progress/style/index.tsx\": \"./components-pro/progress/style/index.tsx\",\n\t\"./radio/style/index.tsx\": \"./components-pro/radio/style/index.tsx\",\n\t\"./range/style/index.tsx\": \"./components-pro/range/style/index.tsx\",\n\t\"./ripple/style/index.tsx\": \"./components-pro/ripple/style/index.tsx\",\n\t\"./row/style/index.tsx\": \"./components-pro/row/style/index.tsx\",\n\t\"./select-box/style/index.tsx\": \"./components-pro/select-box/style/index.tsx\",\n\t\"./select/style/index.tsx\": \"./components-pro/select/style/index.tsx\",\n\t\"./spin/style/index.tsx\": \"./components-pro/spin/style/index.tsx\",\n\t\"./stores/style/index.tsx\": \"./components-pro/stores/style/index.tsx\",\n\t\"./switch/style/index.tsx\": \"./components-pro/switch/style/index.tsx\",\n\t\"./table/style/index.tsx\": \"./components-pro/table/style/index.tsx\",\n\t\"./tabs/style/index.tsx\": \"./components-pro/tabs/style/index.tsx\",\n\t\"./text-area/style/index.tsx\": \"./components-pro/text-area/style/index.tsx\",\n\t\"./text-field/style/index.tsx\": \"./components-pro/text-field/style/index.tsx\",\n\t\"./time-picker/style/index.tsx\": \"./components-pro/time-picker/style/index.tsx\",\n\t\"./tooltip/style/index.tsx\": \"./components-pro/tooltip/style/index.tsx\",\n\t\"./transfer/style/index.tsx\": \"./components-pro/transfer/style/index.tsx\",\n\t\"./tree/style/index.tsx\": \"./components-pro/tree/style/index.tsx\",\n\t\"./trigger-field/style/index.tsx\": \"./components-pro/trigger-field/style/index.tsx\",\n\t\"./trigger/style/index.tsx\": \"./components-pro/trigger/style/index.tsx\",\n\t\"./upload/style/index.tsx\": \"./components-pro/upload/style/index.tsx\",\n\t\"./url-field/style/index.tsx\": \"./components-pro/url-field/style/index.tsx\",\n\t\"./validator/style/index.tsx\": \"./components-pro/validator/style/index.tsx\",\n\t\"./week-picker/style/index.tsx\": \"./components-pro/week-picker/style/index.tsx\",\n\t\"./year-picker/style/index.tsx\": \"./components-pro/year-picker/style/index.tsx\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./components-pro sync recursive ^\\\\.\\\\/[^_][\\\\w-]+\\\\/style\\\\/index\\\\.tsx?$\";","import React, { Component } from 'react';\r\nimport Spin from '../spin';\r\nimport exception from './exception';\r\nconst asyncComponent = (importComponent) => {\r\n class AsyncComponent extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.state = {};\r\n }\r\n componentDidMount() {\r\n importComponent().then(({ default: component }) => {\r\n this.setState({ component });\r\n }, exception);\r\n }\r\n render() {\r\n const { component: Cmp } = this.state;\r\n return Cmp\r\n ? <Cmp {...this.props}/>\r\n : <Spin />;\r\n }\r\n }\r\n return AsyncComponent;\r\n};\r\nexport default asyncComponent;\r\n","import Yallist from './Yallist';\r\nconst MAX = Symbol('max');\r\nconst LENGTH = Symbol('length');\r\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator');\r\nconst ALLOW_STALE = Symbol('allowStale');\r\nconst MAX_AGE = Symbol('maxAge');\r\nconst DISPOSE = Symbol('dispose');\r\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet');\r\nconst LIST = Symbol('list');\r\nconst CACHE = Symbol('cache');\r\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet');\r\nconst naiveLength = () => 1;\r\nfunction isStale(self, hit) {\r\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\r\n return false;\r\n const diff = Date.now() - hit.now;\r\n return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];\r\n}\r\nfunction del(self, node) {\r\n if (node) {\r\n const hit = node.value;\r\n if (self[DISPOSE])\r\n self[DISPOSE](hit.key, hit.value);\r\n self[LENGTH] -= hit.length;\r\n self[CACHE].delete(hit.key);\r\n self[LIST].removeNode(node);\r\n }\r\n}\r\nfunction get(self, key, doUse) {\r\n const node = self[CACHE].get(key);\r\n if (node) {\r\n const hit = node.value;\r\n if (isStale(self, hit)) {\r\n del(self, node);\r\n if (!self[ALLOW_STALE])\r\n return undefined;\r\n }\r\n else if (doUse) {\r\n if (self[UPDATE_AGE_ON_GET])\r\n node.value.now = Date.now();\r\n self[LIST].unshiftNode(node);\r\n }\r\n return hit.value;\r\n }\r\n}\r\nfunction trim(self) {\r\n if (self[LENGTH] > self[MAX]) {\r\n for (let walker = self[LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) {\r\n // We know that we're about to delete this one, and also\r\n // what the next least recently used key will be, so just\r\n // go ahead and set it now.\r\n const prev = walker.prev;\r\n del(self, walker);\r\n walker = prev;\r\n }\r\n }\r\n}\r\nfunction forEachStep(self, fn, node, thisp) {\r\n let hit = node.value;\r\n if (isStale(self, hit)) {\r\n del(self, node);\r\n if (!self[ALLOW_STALE])\r\n hit = undefined;\r\n }\r\n if (hit)\r\n fn.call(thisp, hit.value, hit.key, self);\r\n}\r\nclass Entry {\r\n constructor(key, value, length, now, maxAge = 0) {\r\n this.key = key;\r\n this.value = value;\r\n this.length = length;\r\n this.now = now;\r\n this.maxAge = maxAge;\r\n }\r\n}\r\nexport default class Cache {\r\n constructor(options) {\r\n if (typeof options === 'number')\r\n options = { max: options };\r\n if (!options)\r\n options = {};\r\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\r\n throw new TypeError('max must be a non-negative number');\r\n this[MAX] = options.max || Infinity;\r\n const lc = options.length || naiveLength;\r\n this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc;\r\n this[ALLOW_STALE] = options.stale || false;\r\n if (options.maxAge && typeof options.maxAge !== 'number')\r\n throw new TypeError('maxAge must be a number');\r\n this[MAX_AGE] = options.maxAge || 0;\r\n this[DISPOSE] = options.dispose;\r\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\r\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\r\n this.reset();\r\n }\r\n // resize the cache when the max changes.\r\n set max(mL) {\r\n if (typeof mL !== 'number' || mL < 0)\r\n throw new TypeError('max must be a non-negative number');\r\n this[MAX] = mL || Infinity;\r\n trim(this);\r\n }\r\n get max() {\r\n return this[MAX];\r\n }\r\n set allowStale(allowStale) {\r\n this[ALLOW_STALE] = !!allowStale;\r\n }\r\n get allowStale() {\r\n return this[ALLOW_STALE];\r\n }\r\n set maxAge(mA) {\r\n if (typeof mA !== 'number')\r\n throw new TypeError('maxAge must be a non-negative number');\r\n this[MAX_AGE] = mA;\r\n trim(this);\r\n }\r\n get maxAge() {\r\n return this[MAX_AGE];\r\n }\r\n // resize the cache when the lengthCalculator changes.\r\n set lengthCalculator(lC) {\r\n if (typeof lC !== 'function')\r\n lC = naiveLength;\r\n if (lC !== this[LENGTH_CALCULATOR]) {\r\n this[LENGTH_CALCULATOR] = lC;\r\n this[LENGTH] = 0;\r\n this[LIST].forEach(hit => {\r\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);\r\n this[LENGTH] += hit.length;\r\n });\r\n }\r\n trim(this);\r\n }\r\n get lengthCalculator() {\r\n return this[LENGTH_CALCULATOR];\r\n }\r\n get length() {\r\n return this[LENGTH];\r\n }\r\n get itemCount() {\r\n return this[LIST].length;\r\n }\r\n rforEach(fn, thisp) {\r\n thisp = thisp || this;\r\n for (let walker = this[LIST].tail; walker !== null;) {\r\n const prev = walker.prev;\r\n forEachStep(this, fn, walker, thisp);\r\n walker = prev;\r\n }\r\n }\r\n forEach(fn, thisp) {\r\n thisp = thisp || this;\r\n for (let walker = this[LIST].head; walker !== null;) {\r\n const next = walker.next;\r\n forEachStep(this, fn, walker, thisp);\r\n walker = next;\r\n }\r\n }\r\n keys() {\r\n return this[LIST].toArray().map(k => k.key);\r\n }\r\n values() {\r\n return this[LIST].toArray().map(k => k.value);\r\n }\r\n reset() {\r\n if (this[DISPOSE] && this[LIST] && this[LIST].length) {\r\n this[LIST].forEach(hit => this[DISPOSE](hit.key, hit.value));\r\n }\r\n this[CACHE] = new Map(); // hash of items by key\r\n this[LIST] = new Yallist(); // list of items in order of use recency\r\n this[LENGTH] = 0; // length of items in the list\r\n }\r\n dump() {\r\n return this[LIST].map(hit => isStale(this, hit)\r\n ? false\r\n : {\r\n k: hit.key,\r\n v: hit.value,\r\n e: hit.now + (hit.maxAge || 0),\r\n })\r\n .toArray()\r\n .filter(h => h);\r\n }\r\n dumpLru() {\r\n return this[LIST];\r\n }\r\n set(key, value, maxAge) {\r\n maxAge = maxAge || this[MAX_AGE];\r\n if (maxAge && typeof maxAge !== 'number')\r\n throw new TypeError('maxAge must be a number');\r\n const now = maxAge ? Date.now() : 0;\r\n const len = this[LENGTH_CALCULATOR](value, key);\r\n if (this[CACHE].has(key)) {\r\n if (len > this[MAX]) {\r\n del(this, this[CACHE].get(key));\r\n return false;\r\n }\r\n const node = this[CACHE].get(key);\r\n const item = node.value;\r\n if (this[DISPOSE]) {\r\n if (!this[NO_DISPOSE_ON_SET])\r\n this[DISPOSE](key, item.value);\r\n }\r\n item.now = now;\r\n item.maxAge = maxAge;\r\n item.value = value;\r\n this[LENGTH] += len - item.length;\r\n item.length = len;\r\n this.get(key);\r\n trim(this);\r\n return true;\r\n }\r\n const hit = new Entry(key, value, len, now, maxAge);\r\n if (hit.length > this[MAX]) {\r\n if (this[DISPOSE])\r\n this[DISPOSE](key, value);\r\n return false;\r\n }\r\n this[LENGTH] += hit.length;\r\n this[LIST].unshift(hit);\r\n this[CACHE].set(key, this[LIST].head);\r\n trim(this);\r\n return true;\r\n }\r\n has(key) {\r\n if (!this[CACHE].has(key))\r\n return false;\r\n const hit = this[CACHE].get(key).value;\r\n return !isStale(this, hit);\r\n }\r\n get(key) {\r\n return get(this, key, true);\r\n }\r\n peek(key) {\r\n return get(this, key, false);\r\n }\r\n pop() {\r\n const node = this[LIST].tail;\r\n if (!node)\r\n return null;\r\n del(this, node);\r\n return node.value;\r\n }\r\n del(key) {\r\n del(this, this[CACHE].get(key));\r\n }\r\n load(arr) {\r\n this.reset();\r\n const now = Date.now();\r\n // A previous serialized cache has the most recent items first\r\n for (let l = arr.length - 1; l >= 0; l--) {\r\n const hit = arr[l];\r\n const expiresAt = hit.e || 0;\r\n if (expiresAt === 0)\r\n // the item was created without expiration in a non aged cache\r\n this.set(hit.k, hit.v);\r\n else {\r\n const maxAge = expiresAt - now;\r\n // dont add already expired items\r\n if (maxAge > 0) {\r\n this.set(hit.k, hit.v, maxAge);\r\n }\r\n }\r\n }\r\n }\r\n prune() {\r\n this[CACHE].forEach((_value, key) => get(this, key, false));\r\n }\r\n}\r\n","import EventManager, { preventDefault, stopEvent, stopPropagation } from 'choerodon-ui/lib/_util/EventManager';\r\nexport default EventManager;\r\nexport { preventDefault, stopPropagation, stopEvent, };\r\n","import { get, isObservableObject, remove, runInAction, set } from 'mobx';\r\nexport function mobxGet(obj, key) {\r\n if (isObservableObject(obj)) {\r\n return get(obj, key);\r\n }\r\n return obj[key];\r\n}\r\nexport function mobxSet(obj, key, value) {\r\n if (isObservableObject(obj)) {\r\n runInAction(() => {\r\n set(obj, key, value);\r\n });\r\n }\r\n else {\r\n obj[key] = value;\r\n }\r\n}\r\nexport function mobxRemove(obj, key) {\r\n if (isObservableObject(obj)) {\r\n runInAction(() => {\r\n remove(obj, key);\r\n });\r\n }\r\n else {\r\n delete obj[key];\r\n }\r\n}\r\n","import isObject from 'lodash/isObject';\r\nimport { isArrayLike, observable } from 'mobx';\r\nimport { mobxGet, mobxRemove, mobxSet } from './MobxUtils';\r\nexport function get(obj, prop) {\r\n const index = prop.indexOf('.');\r\n if (index !== -1) {\r\n const key = prop.slice(0, index);\r\n const restKey = prop.slice(index + 1);\r\n const value = mobxGet(obj, key);\r\n if (isArrayLike(value)) {\r\n return value.map(item => get(item, restKey)).filter(item => !!item);\r\n }\r\n if (isObject(value)) {\r\n return get(value, restKey);\r\n }\r\n }\r\n else {\r\n return mobxGet(obj, prop);\r\n }\r\n}\r\nexport function set(data, prop, value, fields = observable.map()) {\r\n const index = prop.indexOf('.');\r\n if (index !== -1) {\r\n const key = prop.slice(0, index);\r\n if (!data[key] && value !== undefined) {\r\n const field = fields.get(key);\r\n if (field && field.get('multiple')) {\r\n mobxSet(data, key, []);\r\n }\r\n else {\r\n mobxSet(data, key, {});\r\n }\r\n }\r\n const obj = mobxGet(data, key);\r\n if (isArrayLike(obj)) {\r\n if (isArrayLike(value)) {\r\n value.forEach((item, i) => {\r\n if (!obj[i]) {\r\n obj.push({});\r\n }\r\n set(obj[i], prop.slice(index + 1), item);\r\n });\r\n }\r\n }\r\n else if (isObject(obj)) {\r\n set(obj, prop.slice(index + 1), value);\r\n }\r\n }\r\n else {\r\n mobxSet(data, prop, value);\r\n }\r\n}\r\nexport function remove(obj, prop) {\r\n const index = prop.indexOf('.');\r\n if (index !== -1) {\r\n const key = prop.slice(0, index);\r\n const restKey = prop.slice(index + 1);\r\n const value = mobxGet(obj, key);\r\n if (isArrayLike(value)) {\r\n value.forEach(item => remove(item, restKey));\r\n }\r\n else if (isObject(value)) {\r\n remove(value, restKey);\r\n }\r\n }\r\n else {\r\n mobxRemove(obj, prop);\r\n }\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, observable, runInAction } from 'mobx';\r\nexport default class PromiseQueue {\r\n constructor() {\r\n this.queueing = false;\r\n runInAction(() => {\r\n this.queue = [];\r\n });\r\n }\r\n get length() {\r\n return this.queue.length;\r\n }\r\n clear(promise) {\r\n if (!this.queueing) {\r\n const { queue } = this;\r\n const index = queue.indexOf(promise);\r\n if (index !== -1) {\r\n queue.splice(index, 1);\r\n }\r\n }\r\n }\r\n add(promise) {\r\n const { queue } = this;\r\n queue.push(promise);\r\n return promise\r\n .then(value => {\r\n this.clear(promise);\r\n return value;\r\n })\r\n .catch(error => {\r\n this.clear(promise);\r\n throw error;\r\n });\r\n }\r\n async ready() {\r\n this.queueing = true;\r\n const { queue } = this;\r\n if (queue.length) {\r\n await queue.pop();\r\n return this.ready();\r\n }\r\n this.queueing = false;\r\n return Promise.resolve();\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], PromiseQueue.prototype, \"queue\", void 0);\r\ntslib_1.__decorate([\r\n action\r\n], PromiseQueue.prototype, \"clear\", null);\r\ntslib_1.__decorate([\r\n action\r\n], PromiseQueue.prototype, \"add\", null);\r\ntslib_1.__decorate([\r\n action\r\n], PromiseQueue.prototype, \"ready\", null);\r\n","import TaskRunner from 'choerodon-ui/lib/_util/TaskRunner';\r\nexport default TaskRunner;\r\n","class Node {\r\n constructor(value, prev, next, list) {\r\n if (!(this instanceof Node)) {\r\n return new Node(value, prev, next, list);\r\n }\r\n this.list = list;\r\n this.value = value;\r\n if (prev) {\r\n prev.next = this;\r\n this.prev = prev;\r\n }\r\n else {\r\n this.prev = null;\r\n }\r\n if (next) {\r\n next.prev = this;\r\n this.next = next;\r\n }\r\n else {\r\n this.next = null;\r\n }\r\n }\r\n}\r\nfunction insert(self, node, value) {\r\n const inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);\r\n if (inserted.next === null) {\r\n self.tail = inserted;\r\n }\r\n if (inserted.prev === null) {\r\n self.head = inserted;\r\n }\r\n self.length++;\r\n return inserted;\r\n}\r\nfunction push(self, item) {\r\n self.tail = new Node(item, self.tail, null, self);\r\n if (!self.head) {\r\n self.head = self.tail;\r\n }\r\n self.length++;\r\n}\r\nfunction unshift(self, item) {\r\n self.head = new Node(item, null, self.head, self);\r\n if (!self.tail) {\r\n self.tail = self.head;\r\n }\r\n self.length++;\r\n}\r\nexport default class Yallist {\r\n constructor(...args) {\r\n if (!(this instanceof Yallist)) {\r\n return new Yallist(...args);\r\n }\r\n this.tail = null;\r\n this.head = null;\r\n this.length = 0;\r\n const list = args[0];\r\n if (list && typeof list.forEach === 'function') {\r\n list.forEach(function (item) {\r\n this.push(item);\r\n });\r\n }\r\n else if (args.length > 0) {\r\n this.push(...args);\r\n }\r\n }\r\n removeNode(node) {\r\n if (node.list !== this) {\r\n throw new Error('removing node which does not belong to this list');\r\n }\r\n const { next, prev } = node;\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n if (node === this.head) {\r\n this.head = next;\r\n }\r\n if (node === this.tail) {\r\n this.tail = prev;\r\n }\r\n node.list.length--;\r\n node.next = null;\r\n node.prev = null;\r\n node.list = null;\r\n return next;\r\n }\r\n unshiftNode(node) {\r\n if (node === this.head) {\r\n return;\r\n }\r\n if (node.list) {\r\n node.list.removeNode(node);\r\n }\r\n const { head } = this;\r\n node.list = this;\r\n node.next = head;\r\n if (head) {\r\n head.prev = node;\r\n }\r\n this.head = node;\r\n if (!this.tail) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n pushNode(node) {\r\n if (node === this.tail) {\r\n return;\r\n }\r\n if (node.list) {\r\n node.list.removeNode(node);\r\n }\r\n const { tail } = this;\r\n node.list = this;\r\n node.prev = tail;\r\n if (tail) {\r\n tail.next = node;\r\n }\r\n this.tail = node;\r\n if (!this.head) {\r\n this.head = node;\r\n }\r\n this.length++;\r\n }\r\n push(...args) {\r\n args.forEach(item => push(this, item));\r\n return this.length;\r\n }\r\n unshift(...args) {\r\n args.forEach(item => unshift(this, item));\r\n return this.length;\r\n }\r\n pop() {\r\n if (!this.tail) {\r\n return undefined;\r\n }\r\n const { value } = this.tail;\r\n this.tail = this.tail.prev;\r\n if (this.tail) {\r\n this.tail.next = null;\r\n }\r\n else {\r\n this.head = null;\r\n }\r\n this.length--;\r\n return value;\r\n }\r\n shift() {\r\n if (!this.head) {\r\n return undefined;\r\n }\r\n const { value } = this.head;\r\n this.head = this.head.next;\r\n if (this.head) {\r\n this.head.prev = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n this.length--;\r\n return value;\r\n }\r\n forEach(fn, thisp) {\r\n thisp = thisp || this;\r\n for (let walker = this.head, i = 0; walker !== null; i++) {\r\n fn.call(thisp, walker.value, i, this);\r\n walker = walker.next;\r\n }\r\n }\r\n forEachReverse(fn, thisp) {\r\n thisp = thisp || this;\r\n for (let walker = this.tail, i = this.length - 1; walker !== null; i--) {\r\n fn.call(thisp, walker.value, i, this);\r\n walker = walker.prev;\r\n }\r\n }\r\n get(n) {\r\n let i = 0;\r\n let walker = this.head;\r\n for (; walker !== null && i < n; i++) {\r\n walker = walker.next;\r\n }\r\n if (i === n && walker !== null) {\r\n return walker.value;\r\n }\r\n }\r\n getReverse(n) {\r\n let i = 0;\r\n let walker = this.tail;\r\n for (; walker !== null && i < n; i++) {\r\n // abort out of the list early if we hit a cycle\r\n walker = walker.prev;\r\n }\r\n if (i === n && walker !== null) {\r\n return walker.value;\r\n }\r\n }\r\n map(fn, thisp) {\r\n thisp = thisp || this;\r\n const res = new Yallist();\r\n for (let walker = this.head; walker !== null;) {\r\n res.push(fn.call(thisp, walker.value, this));\r\n walker = walker.next;\r\n }\r\n return res;\r\n }\r\n mapReverse(fn, thisp) {\r\n thisp = thisp || this;\r\n const res = new Yallist();\r\n for (let walker = this.tail; walker !== null;) {\r\n res.push(fn.call(thisp, walker.value, this));\r\n walker = walker.prev;\r\n }\r\n return res;\r\n }\r\n reduce(...args) {\r\n const fn = args[0];\r\n let acc;\r\n let walker = this.head;\r\n if (args.length > 1) {\r\n acc = args[1];\r\n }\r\n else if (this.head) {\r\n walker = this.head.next;\r\n acc = this.head.value;\r\n }\r\n else {\r\n throw new TypeError('Reduce of empty list with no initial value');\r\n }\r\n for (let i = 0; walker !== null; i++) {\r\n acc = fn(acc, walker.value, i);\r\n walker = walker.next;\r\n }\r\n return acc;\r\n }\r\n reduceReverse(...args) {\r\n const fn = args[0];\r\n let acc;\r\n let walker = this.tail;\r\n if (args.length > 1) {\r\n acc = args[1];\r\n }\r\n else if (this.tail) {\r\n walker = this.tail.prev;\r\n acc = this.tail.value;\r\n }\r\n else {\r\n throw new TypeError('Reduce of empty list with no initial value');\r\n }\r\n for (let i = this.length - 1; walker !== null; i--) {\r\n acc = fn(acc, walker.value, i);\r\n walker = walker.prev;\r\n }\r\n return acc;\r\n }\r\n toArray() {\r\n const arr = new Array(this.length);\r\n for (let i = 0, walker = this.head; walker !== null; i++) {\r\n arr[i] = walker.value;\r\n walker = walker.next;\r\n }\r\n return arr;\r\n }\r\n toArrayReverse() {\r\n const arr = new Array(this.length);\r\n for (let i = 0, walker = this.tail; walker !== null; i++) {\r\n arr[i] = walker.value;\r\n walker = walker.prev;\r\n }\r\n return arr;\r\n }\r\n slice(from, to) {\r\n to = to || this.length;\r\n if (to < 0) {\r\n to += this.length;\r\n }\r\n from = from || 0;\r\n if (from < 0) {\r\n from += this.length;\r\n }\r\n const ret = new Yallist();\r\n if (to < from || to < 0) {\r\n return ret;\r\n }\r\n if (from < 0) {\r\n from = 0;\r\n }\r\n if (to > this.length) {\r\n to = this.length;\r\n }\r\n let i = 0;\r\n let walker = this.head;\r\n for (; walker !== null && i < from; i++) {\r\n walker = walker.next;\r\n }\r\n for (; walker !== null && i < to; i++, walker = walker.next) {\r\n ret.push(walker.value);\r\n }\r\n return ret;\r\n }\r\n sliceReverse(from, to) {\r\n to = to || this.length;\r\n if (to < 0) {\r\n to += this.length;\r\n }\r\n from = from || 0;\r\n if (from < 0) {\r\n from += this.length;\r\n }\r\n const ret = new Yallist();\r\n if (to < from || to < 0) {\r\n return ret;\r\n }\r\n if (from < 0) {\r\n from = 0;\r\n }\r\n if (to > this.length) {\r\n to = this.length;\r\n }\r\n let i = this.length;\r\n let walker = this.tail;\r\n for (; walker !== null && i > to; i--) {\r\n walker = walker.prev;\r\n }\r\n for (; walker !== null && i > from; i--, walker = walker.prev) {\r\n ret.push(walker.value);\r\n }\r\n return ret;\r\n }\r\n splice(start, deleteCount, ...nodes) {\r\n if (start > this.length) {\r\n start = this.length - 1;\r\n }\r\n if (start < 0) {\r\n start = this.length + start;\r\n }\r\n let walker = this.head;\r\n for (let i = 0; walker !== null && i < start; i++) {\r\n walker = walker.next;\r\n }\r\n const ret = [];\r\n for (let i = 0; walker && i < deleteCount; i++) {\r\n ret.push(walker.value);\r\n walker = this.removeNode(walker);\r\n }\r\n if (walker === null) {\r\n walker = this.tail;\r\n }\r\n if (walker !== this.head && walker !== this.tail && walker !== null) {\r\n walker = walker.prev;\r\n }\r\n nodes.forEach(item => {\r\n walker = insert(this, walker, item);\r\n });\r\n return ret;\r\n }\r\n reverse() {\r\n const { head, tail } = this;\r\n for (let walker = head; walker !== null; walker = walker.prev) {\r\n const { prev } = walker;\r\n walker.prev = walker.next;\r\n walker.next = prev;\r\n }\r\n this.head = tail;\r\n this.tail = head;\r\n return this;\r\n }\r\n}\r\nYallist.Node = Node;\r\nYallist.create = Yallist;\r\ntry {\r\n Yallist.prototype[Symbol.iterator] = function* () {\r\n for (let walker = this.head; walker; walker = walker.next) {\r\n yield walker.value;\r\n }\r\n };\r\n // eslint-disable-next-line no-empty\r\n}\r\ncatch (er) { }\r\n","import WeakMap from 'core-js/library/fn/weak-map';\r\nimport createDefaultSetter from './createDefaultSetter';\r\nlet mapStore;\r\nfunction bind(fn, context) {\r\n if (fn.bind) {\r\n return fn.bind(context);\r\n }\r\n return function __autobind__(...args) {\r\n return fn.apply(context, args);\r\n };\r\n}\r\nfunction getBoundSuper(obj, fn) {\r\n if (typeof WeakMap === 'undefined') {\r\n throw new Error(`Using @autobind on ${fn.name}() requires WeakMap support due to its use of super.${fn.name}()\n See https://github.com/jayphelps/core-decorators.js/issues/20`);\r\n }\r\n if (!mapStore) {\r\n mapStore = new WeakMap();\r\n }\r\n if (mapStore.has(obj) === false) {\r\n mapStore.set(obj, new WeakMap());\r\n }\r\n const superStore = mapStore.get(obj);\r\n if (superStore.has(fn) === false) {\r\n superStore.set(fn, bind(fn, obj));\r\n }\r\n return superStore.get(fn);\r\n}\r\n/**\r\n * 绑定方法的this指向当前对象实例.\r\n *\r\n * @private\r\n * @param {Function} target 方法对象\r\n * @param {string} key 方法名.\r\n * @param {Object} descriptor 方法描述对象.\r\n * @returns {Object} 方法描述对象.\r\n */\r\nexport default function autobind(target, key, descriptor) {\r\n const { constructor } = target;\r\n const { value: fn, configurable, enumerable } = descriptor;\r\n return {\r\n configurable,\r\n enumerable,\r\n get() {\r\n // Class.prototype.key lookup\r\n // Someone accesses the property directly on the prototype on which it is\r\n // actually defined on, i.e. Class.prototype.hasOwnProperty(key)\r\n if (this === target) {\r\n return fn;\r\n }\r\n // Class.prototype.key lookup\r\n // Someone accesses the property directly on a prototype but it was found\r\n // up the chain, not defined directly on it\r\n // i.e. Class.prototype.hasOwnProperty(key) == false && key in Class.prototype\r\n if (this.constructor !== constructor &&\r\n Object.getPrototypeOf(this).constructor === constructor) {\r\n return fn;\r\n }\r\n // Autobound method calling super.sameMethod() which is also autobound and so on.\r\n if (this.constructor !== constructor && key in this.constructor.prototype) {\r\n return getBoundSuper(this, fn);\r\n }\r\n const boundFn = bind(fn, this);\r\n Object.defineProperty(this, key, {\r\n configurable: true,\r\n writable: true,\r\n // NOT enumerable when it's a bound method\r\n enumerable: false,\r\n value: boundFn,\r\n });\r\n return boundFn;\r\n },\r\n set: createDefaultSetter(key),\r\n };\r\n}\r\n","export default function createDefaultSetter(key) {\r\n return function set(newValue) {\r\n Object.defineProperty(this, key, {\r\n configurable: true,\r\n writable: true,\r\n // IS enumerable when reassigned by the outside word\r\n enumerable: true,\r\n value: newValue,\r\n });\r\n return newValue;\r\n };\r\n}\r\n","import isString from 'lodash/isString';\r\nexport default (e, defaultMessage) => {\r\n if (isString(e)) {\r\n defaultMessage = e;\r\n }\r\n else if (e instanceof Error) {\r\n defaultMessage = e.message;\r\n }\r\n else if (e && e.message) {\r\n defaultMessage = e.message;\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error(e);\r\n }\r\n return defaultMessage;\r\n};\r\n","import { isValidElement } from 'react';\r\nimport { render, unmountComponentAtNode } from 'react-dom';\r\nimport isString from 'lodash/isString';\r\nimport isNumber from 'lodash/isNumber';\r\nimport toString from 'lodash/toString';\r\nexport default async function getReactNodeText(node) {\r\n if (node) {\r\n if (isString(node) || isNumber(node)) {\r\n return String(node);\r\n }\r\n if (typeof window !== 'undefined' && isValidElement(node)) {\r\n const textDiv = document.createElement('div');\r\n document.body.appendChild(textDiv);\r\n await new Promise(resolve => render(node, textDiv, resolve));\r\n const { textContent } = textDiv;\r\n unmountComponentAtNode(textDiv);\r\n if (textDiv.parentNode) {\r\n textDiv.parentNode.removeChild(textDiv);\r\n }\r\n return textContent || '';\r\n }\r\n return toString(node);\r\n }\r\n return '';\r\n}\r\n","export default function isEmpty(value, allowBlank = false) {\r\n return value === null || value === undefined || (allowBlank ? false : value === '');\r\n}\r\n","import isEqual from 'lodash/isEqual';\r\nimport isEmpty from './isEmpty';\r\nexport default function isSame(newValue, oldValue) {\r\n return (isEmpty(newValue) && isEmpty(oldValue)) || isEqual(newValue, oldValue);\r\n}\r\n","import isSame from './isSame';\r\nexport default function isSameLike(newValue, oldValue) {\r\n /* eslint-disable-next-line */\r\n return isSame(newValue, oldValue) || newValue == oldValue;\r\n}\r\n","import createDefaultSetter from './createDefaultSetter';\r\nimport EventManager from './EventManager';\r\nimport TaskRunner from './TaskRunner';\r\nfunction keep(fn, e) {\r\n if (e && e.target) {\r\n e.persist();\r\n const delayer = new TaskRunner();\r\n const keeper = new TaskRunner();\r\n const event = new EventManager(e.target);\r\n const delayFn = () => {\r\n keeper.run(40, fn.bind(this, e));\r\n };\r\n const stopFn = () => {\r\n delayer.cancel();\r\n keeper.cancel();\r\n event.clear();\r\n };\r\n delayer.delay(500, delayFn);\r\n event.addEventListener('mouseleave', stopFn);\r\n event.addEventListener('mouseup', stopFn);\r\n }\r\n fn.call(this, e);\r\n}\r\nexport default function keepRunning(target, key, descriptor) {\r\n const { constructor } = target;\r\n const { value: fn } = descriptor;\r\n return {\r\n configurable: true,\r\n get() {\r\n if (this === target) {\r\n return fn;\r\n }\r\n if (this.constructor !== constructor && Object.getPrototypeOf(this).constructor === constructor) {\r\n return fn;\r\n }\r\n const boundFn = keep.bind(this, fn);\r\n Object.defineProperty(this, key, {\r\n value: boundFn,\r\n configurable: true,\r\n writable: true,\r\n });\r\n return boundFn;\r\n },\r\n set: createDefaultSetter(key),\r\n };\r\n}\r\n","export default function measureTextWidth(text, style) {\r\n if (typeof window !== 'undefined') {\r\n const span = document.createElement('span');\r\n span.style.cssText = 'position: absolute;top: -9999px;';\r\n span.innerHTML = text.replace(/\\s/g, '&nbsp;');\r\n if (style) {\r\n ['fontSize', 'fontFamily'].forEach((property) => {\r\n if (property in style) {\r\n span.style[property] = style[property];\r\n }\r\n });\r\n }\r\n document.body.appendChild(span);\r\n const width = span.offsetWidth;\r\n document.body.removeChild(span);\r\n return width;\r\n }\r\n return 0;\r\n}\r\n","export default function normalizeLanguage(language) {\r\n return language && language.replace('_', '-').toLowerCase();\r\n}\r\n","import Animate from 'choerodon-ui/lib/animate';\r\nexport default Animate;\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/animate/style';\r\n","import { getConfig } from 'choerodon-ui/lib/configure';\r\nimport { reaction } from 'mobx';\r\nimport Cache from '../_util/Cache';\r\nimport { buildURLWithAxiosConfig, isCacheLike } from './utils';\r\nfunction getDefaultCache() {\r\n const cache = new Cache(getConfig('lookupCache'));\r\n reaction(() => getConfig('lookupCache'), (lookupCache = {}) => {\r\n if ('max' in lookupCache) {\r\n cache.max = lookupCache.max;\r\n }\r\n if ('maxAge' in lookupCache) {\r\n cache.maxAge = lookupCache.maxAge;\r\n }\r\n if ('stale' in lookupCache) {\r\n cache.allowStale = lookupCache.stale;\r\n }\r\n if ('length' in lookupCache) {\r\n cache.lengthCalculator = lookupCache.length;\r\n }\r\n });\r\n return cache;\r\n}\r\nexport default function cacheAdapterEnhancer(adapter, options = {}) {\r\n const { enabledByDefault = true, cacheFlag = 'cache', defaultCache = getDefaultCache(), } = options;\r\n return config => {\r\n const useCache = config[cacheFlag] !== undefined && config[cacheFlag] !== null\r\n ? config[cacheFlag]\r\n : enabledByDefault;\r\n if (useCache) {\r\n const cache = isCacheLike(useCache) ? useCache : defaultCache;\r\n const index = buildURLWithAxiosConfig(config);\r\n let responsePromise = cache.get(index);\r\n if (!responsePromise) {\r\n responsePromise = (async () => {\r\n try {\r\n return await adapter(config);\r\n }\r\n catch (reason) {\r\n cache.del(index);\r\n throw reason;\r\n }\r\n })();\r\n if (process.env.LOGGER_LEVEL === 'info') {\r\n // eslint-disable-next-line no-console\r\n console.info(`request: ${index}`);\r\n }\r\n cache.set(index, responsePromise);\r\n return responsePromise;\r\n }\r\n if (process.env.LOGGER_LEVEL === 'info') {\r\n // eslint-disable-next-line no-console\r\n console.info(`request cached by cache adapter: ${index}`);\r\n }\r\n return responsePromise;\r\n }\r\n return adapter(config);\r\n };\r\n}\r\n","import axios from 'axios';\r\nconst jsonMimeType = 'application/json';\r\nconst instance = axios.create({\r\n timeout: 30000,\r\n headers: {\r\n 'Content-Type': jsonMimeType,\r\n Accept: jsonMimeType,\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n },\r\n});\r\n// http response 拦截器\r\ninstance.interceptors.response.use((response) => {\r\n const { status, data } = response;\r\n if (status === 204) {\r\n return response;\r\n }\r\n if (data.success === false) {\r\n throw data;\r\n }\r\n else {\r\n return data;\r\n }\r\n});\r\nexport default instance;\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/style/index.less';\r\n","import Cache from '../_util/Cache';\r\nimport { buildURLWithAxiosConfig } from './utils';\r\nexport default function throttleAdapterEnhancer(adapter, options = {}) {\r\n const { threshold = 1000, cache = new Cache({ max: 10 }) } = options;\r\n const recordCacheWithRequest = (index, config) => {\r\n const responsePromise = (async () => {\r\n try {\r\n const response = await adapter(config);\r\n cache.set(index, {\r\n timestamp: Date.now(),\r\n value: Promise.resolve(response),\r\n });\r\n return response;\r\n }\r\n catch (reason) {\r\n cache.del(index);\r\n throw reason;\r\n }\r\n })();\r\n cache.set(index, {\r\n timestamp: Date.now(),\r\n value: responsePromise,\r\n });\r\n return responsePromise;\r\n };\r\n return config => {\r\n const index = buildURLWithAxiosConfig(config);\r\n const now = Date.now();\r\n const cachedRecord = cache.get(index) || { timestamp: now };\r\n if (now - cachedRecord.timestamp <= threshold) {\r\n const responsePromise = cachedRecord.value;\r\n if (responsePromise) {\r\n if (process.env.LOGGER_LEVEL === 'info') {\r\n // eslint-disable-next-line no-console\r\n console.info(`request cached by throttle adapter: ${index}`);\r\n }\r\n return responsePromise;\r\n }\r\n }\r\n return recordCacheWithRequest(index, config);\r\n };\r\n}\r\n","import buildURL from 'axios/lib/helpers/buildURL';\r\nexport function buildSortedURL(...args) {\r\n const builtURL = buildURL(...args);\r\n const [urlPath, queryString] = builtURL.split('?');\r\n if (queryString) {\r\n const paramsPair = queryString.split('&');\r\n return `${urlPath}?${paramsPair.sort().join('&')}`;\r\n }\r\n return builtURL;\r\n}\r\nexport function buildURLWithAxiosConfig(config) {\r\n const { data, url, params, paramsSerializer } = config;\r\n const builtURL = buildSortedURL(url, params, paramsSerializer);\r\n if (data) {\r\n return `${builtURL}|${JSON.stringify(data)}`;\r\n }\r\n return builtURL;\r\n}\r\nexport function isCacheLike(cache) {\r\n return !!(cache.set &&\r\n cache.get &&\r\n cache.del &&\r\n typeof cache.get === 'function' &&\r\n typeof cache.set === 'function' &&\r\n typeof cache.del === 'function');\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Children } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport debounce from 'lodash/debounce';\r\nimport isString from 'lodash/isString';\r\nimport { computed, runInAction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { ProgressType } from 'choerodon-ui/lib/progress/enum';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport Icon from '../icon';\r\nimport FormContext from '../form/FormContext';\r\nimport Progress from '../progress';\r\nimport Ripple from '../ripple';\r\nimport { ButtonColor, ButtonType, ButtonWaitType, FuncType } from './enum';\r\nimport { DataSetStatus } from '../data-set/enum';\r\nimport { Size } from '../core/enum';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nimport autobind from '../_util/autobind';\r\nlet Button = class Button extends DataSetComponent {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.handleClickWait = this.getHandleClick(props);\r\n }\r\n get loading() {\r\n const { type, dataSet, loading } = this.observableProps;\r\n return (loading ||\r\n (type === ButtonType.submit && !!dataSet && dataSet.status === DataSetStatus.submitting));\r\n }\r\n set loading(loading) {\r\n runInAction(() => {\r\n this.observableProps.loading = loading;\r\n });\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n dataSet: 'dataSet' in props ? props.dataSet : context.dataSet,\r\n loading: props.loading,\r\n type: props.type,\r\n };\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n super.componentWillReceiveProps(nextProps, nextContext);\r\n const { wait, waitType } = this.props;\r\n if (wait !== nextProps.wait || waitType !== nextProps.waitType) {\r\n this.handleClickWait = this.getHandleClick(nextProps);\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.handleClickWait.cancel();\r\n }\r\n getHandleClick(props) {\r\n const { wait, waitType } = props;\r\n if (wait && waitType) {\r\n const options = { leading: true, trailing: true };\r\n if (waitType === ButtonWaitType.throttle) {\r\n options.trailing = false;\r\n options.maxWait = wait;\r\n }\r\n else if (waitType === ButtonWaitType.debounce) {\r\n options.leading = false;\r\n }\r\n return debounce(this.handleClick, wait, options);\r\n }\r\n return debounce(this.handleClick, 0);\r\n }\r\n handleClickIfBubble(e) {\r\n const { wait, waitType } = this.props;\r\n if (wait && waitType) {\r\n e.stopPropagation();\r\n this.handleClickWait(e);\r\n }\r\n else {\r\n this.handleClick(e);\r\n }\r\n }\r\n async handleClick(e) {\r\n const { onClick } = this.props;\r\n if (onClick) {\r\n const afterClick = onClick(e);\r\n if (afterClick && afterClick instanceof Promise) {\r\n try {\r\n this.loading = true;\r\n await afterClick;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n }\r\n }\r\n }\r\n isDisabled() {\r\n const { disabled } = this.context;\r\n return disabled || super.isDisabled() || this.loading;\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'icon',\r\n 'funcType',\r\n 'color',\r\n 'loading',\r\n 'wait',\r\n 'waitType',\r\n ]);\r\n if (!this.isDisabled()) {\r\n otherProps.onClick = this.handleClickIfBubble;\r\n }\r\n return otherProps;\r\n }\r\n getClassName(...props) {\r\n const { prefixCls, props: { color, funcType = getConfig('buttonFuncType') || FuncType.raised, children, icon }, } = this;\r\n const childrenCount = Children.count(children);\r\n return super.getClassName({\r\n [`${prefixCls}-${funcType}`]: funcType,\r\n [`${prefixCls}-${color}`]: color,\r\n [`${prefixCls}-icon-only`]: icon\r\n ? childrenCount === 0 || children === false\r\n : childrenCount === 1 && children.type === Icon,\r\n }, ...props);\r\n }\r\n render() {\r\n const { children, icon, href } = this.props;\r\n const buttonIcon = this.loading ? (<Progress key=\"loading\" type={ProgressType.loading} size={Size.small}/>) : (icon && <Icon type={icon}/>);\r\n const hasString = Children.toArray(children).some(child => isString(child));\r\n const Cmp = href ? 'a' : 'button';\r\n const props = this.getMergedProps();\r\n return (<Ripple disabled={this.isDisabled()}>\n <Cmp {...(href ? omit(props, ['type']) : props)}>\n {buttonIcon}\n {hasString ? <span>{children}</span> : children}\n </Cmp>\n </Ripple>);\r\n }\r\n};\r\nButton.displayName = 'Button';\r\nButton.contextType = FormContext;\r\nButton.propTypes = {\r\n /**\r\n * 按钮展现模式\r\n * 可选值:'flat' | 'raised'\r\n * @default raised\r\n */\r\n funcType: PropTypes.oneOf([FuncType.flat, FuncType.raised]),\r\n /**\r\n * 按钮颜色风格\r\n * 可选值:'default' | 'primary' | 'gray' | 'blue' | 'red' | 'green' | 'yellow' | 'purple' | 'dark'\r\n * @default 'default'\r\n */\r\n color: PropTypes.oneOf([\r\n ButtonColor.default,\r\n ButtonColor.primary,\r\n ButtonColor.gray,\r\n ButtonColor.blue,\r\n ButtonColor.red,\r\n ButtonColor.green,\r\n ButtonColor.yellow,\r\n ButtonColor.purple,\r\n ButtonColor.dark,\r\n ]),\r\n /**\r\n * 按钮类型\r\n * 可选值:'button' | 'submit' | 'reset'\r\n * @default 'button'\r\n */\r\n type: PropTypes.oneOf([ButtonType.button, ButtonType.submit, ButtonType.reset]),\r\n /**\r\n * 按钮是否是加载状态\r\n */\r\n loading: PropTypes.bool,\r\n /**\r\n * 点击跳转的地址,指定此属性 button 的行为和 a 链接一致\r\n */\r\n href: PropTypes.string,\r\n /**\r\n * 相当于 a 链接的 target 属性,href 存在时生效\r\n */\r\n target: PropTypes.string,\r\n /**\r\n * 点击等待时间\r\n */\r\n wait: PropTypes.number,\r\n /**\r\n * 点击间隔类型,可选值:throttle | debounce\r\n * @default throttle\r\n */\r\n waitType: PropTypes.oneOf([ButtonWaitType.throttle, ButtonWaitType.debounce]),\r\n ...DataSetComponent.propTypes,\r\n};\r\nButton.defaultProps = {\r\n suffixCls: 'btn',\r\n type: ButtonType.button,\r\n color: ButtonColor.default,\r\n loading: false,\r\n waitType: ButtonWaitType.throttle,\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], Button.prototype, \"loading\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Button.prototype, \"handleClickIfBubble\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Button.prototype, \"handleClick\", null);\r\nButton = tslib_1.__decorate([\r\n observer\r\n], Button);\r\nexport default Button;\r\n","export var ButtonColor;\r\n(function (ButtonColor) {\r\n ButtonColor[\"default\"] = \"default\";\r\n ButtonColor[\"primary\"] = \"primary\";\r\n ButtonColor[\"gray\"] = \"gray\";\r\n ButtonColor[\"blue\"] = \"blue\";\r\n ButtonColor[\"red\"] = \"red\";\r\n ButtonColor[\"green\"] = \"green\";\r\n ButtonColor[\"yellow\"] = \"yellow\";\r\n ButtonColor[\"purple\"] = \"purple\";\r\n ButtonColor[\"dark\"] = \"dark\";\r\n})(ButtonColor || (ButtonColor = {}));\r\nexport var FuncType;\r\n(function (FuncType) {\r\n FuncType[\"flat\"] = \"flat\";\r\n FuncType[\"raised\"] = \"raised\";\r\n})(FuncType || (FuncType = {}));\r\nexport var ButtonType;\r\n(function (ButtonType) {\r\n ButtonType[\"button\"] = \"button\";\r\n ButtonType[\"submit\"] = \"submit\";\r\n ButtonType[\"reset\"] = \"reset\";\r\n})(ButtonType || (ButtonType = {}));\r\nexport var ButtonWaitType;\r\n(function (ButtonWaitType) {\r\n ButtonWaitType[\"throttle\"] = \"throttle\";\r\n ButtonWaitType[\"debounce\"] = \"debounce\";\r\n})(ButtonWaitType || (ButtonWaitType = {}));\r\n","import Button from './Button';\r\nexport default Button;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../progress/style';\r\nimport '../../ripple/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport { action, runInAction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { Radio } from '../radio/Radio';\r\nimport { BooleanValue } from '../data-set/enum';\r\nexport class CheckBox extends Radio {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.type = 'checkbox';\r\n runInAction(() => {\r\n this.value = this.props.defaultChecked ? this.checkedValue : this.unCheckedValue;\r\n });\r\n }\r\n get unCheckedValue() {\r\n const { unCheckedValue } = this.props;\r\n if (unCheckedValue !== undefined) {\r\n return unCheckedValue;\r\n }\r\n const { field } = this;\r\n if (field) {\r\n return field.get(BooleanValue.falseValue);\r\n }\r\n return false;\r\n }\r\n get checkedValue() {\r\n const { value } = this.props;\r\n if (value !== undefined) {\r\n return value;\r\n }\r\n const { field } = this;\r\n if (field) {\r\n return field.get(BooleanValue.trueValue);\r\n }\r\n return true;\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), [\r\n 'defaultChecked',\r\n 'unCheckedValue',\r\n 'unCheckedChildren',\r\n 'indeterminate',\r\n ]);\r\n }\r\n renderInner() {\r\n return <i className={`${this.prefixCls}-inner`}/>;\r\n }\r\n getChildrenText() {\r\n const { children, unCheckedChildren } = this.props;\r\n return this.isChecked() ? children : unCheckedChildren || children;\r\n }\r\n getWrapperClassNames() {\r\n const { prefixCls, props: { indeterminate }, } = this;\r\n return super.getWrapperClassNames({\r\n [`${prefixCls}-indeterminate`]: indeterminate,\r\n });\r\n }\r\n isChecked() {\r\n const { checked, indeterminate } = this.props;\r\n if (indeterminate) {\r\n return false;\r\n }\r\n const { name, dataSet, checkedValue } = this;\r\n if (dataSet && name) {\r\n return this.getValues().indexOf(checkedValue) !== -1;\r\n }\r\n if (checked !== undefined) {\r\n return checked;\r\n }\r\n return this.value === checkedValue;\r\n }\r\n getDataSetValues() {\r\n const values = this.getDataSetValue();\r\n if (values === undefined) {\r\n return [];\r\n }\r\n return [].concat(values);\r\n }\r\n setValue(value) {\r\n const { record, checkedValue, multiple } = this;\r\n if (record) {\r\n let values;\r\n if (multiple) {\r\n values = this.getValues();\r\n if (value === checkedValue) {\r\n values.push(value);\r\n }\r\n else {\r\n const index = values.indexOf(checkedValue);\r\n if (index !== -1) {\r\n values.splice(index, 1);\r\n }\r\n }\r\n }\r\n else {\r\n values = value;\r\n }\r\n super.setValue(values);\r\n }\r\n else {\r\n super.setValue(value);\r\n }\r\n }\r\n setChecked(checked) {\r\n this.setValue(checked ? this.checkedValue : this.unCheckedValue);\r\n }\r\n getOldValue() {\r\n return this.isChecked() ? this.checkedValue : this.unCheckedValue;\r\n }\r\n}\r\nCheckBox.displayName = 'CheckBox';\r\nCheckBox.propTypes = {\r\n /**\r\n * 中间状态\r\n */\r\n indeterminate: PropTypes.bool,\r\n /**\r\n * 未选中时的值\r\n */\r\n unCheckedValue: PropTypes.any,\r\n /**\r\n * 未选中时的内容\r\n */\r\n unCheckedChildren: PropTypes.node,\r\n defaultChecked: PropTypes.bool,\r\n ...Radio.propTypes,\r\n};\r\nCheckBox.defaultProps = {\r\n ...Radio.defaultProps,\r\n suffixCls: 'checkbox',\r\n indeterminate: false,\r\n};\r\ntslib_1.__decorate([\r\n action\r\n], CheckBox.prototype, \"setValue\", null);\r\ntslib_1.__decorate([\r\n action\r\n], CheckBox.prototype, \"setChecked\", null);\r\nlet ObserverCheckBox = class ObserverCheckBox extends CheckBox {\r\n};\r\nObserverCheckBox.defaultProps = CheckBox.defaultProps;\r\nObserverCheckBox = tslib_1.__decorate([\r\n observer\r\n], ObserverCheckBox);\r\nexport default ObserverCheckBox;\r\n","import ObserverCheckBox from './CheckBox';\r\nexport default ObserverCheckBox;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../field/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport isString from 'lodash/isString';\r\nimport isEqual from 'lodash/isEqual';\r\nimport omit from 'lodash/omit';\r\nimport noop from 'lodash/noop';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport ObserverFormField from '../field';\r\nimport autobind from '../_util/autobind';\r\nlet CodeMirror;\r\nif (typeof window !== 'undefined') {\r\n // eslint-disable-next-line global-require\r\n CodeMirror = require('react-codemirror2').Controlled;\r\n}\r\nconst defaultCodeMirrorOptions = {\r\n theme: 'neat',\r\n lineNumbers: true,\r\n lint: true,\r\n gutters: ['CodeMirror-lint-markers'],\r\n};\r\nlet CodeArea = class CodeArea extends ObserverFormField {\r\n constructor() {\r\n super(...arguments);\r\n this.cmOptions = this.getCodeMirrorOptions();\r\n this.emptyValue = '';\r\n /**\r\n * 编辑器失去焦点时,调用父类方法,同步DataSet中的内容\r\n *\r\n * @memberof CodeArea\r\n */\r\n this.handleCodeMirrorBlur = (codeMirrorInstance) => {\r\n const { formatter } = this.props;\r\n // 更新DataSet的值之前,先去拿到原始的raw格式\r\n const codeMirrorText = codeMirrorInstance.getValue();\r\n this.setValue(formatter ? formatter.getRaw(codeMirrorText) : codeMirrorText);\r\n };\r\n /**\r\n * 在CodeMirror编辑器实例挂载前添加额外配置\r\n *\r\n * @memberof CodeArea\r\n */\r\n this.handleCodeMirrorDidMount = (editor) => {\r\n const { formatter, style, formatHotKey, unFormatHotKey } = this.props;\r\n const { width = '100%', height = 100 } = style || {};\r\n const options = {\r\n Tab(cm) {\r\n if (cm.somethingSelected()) {\r\n cm.indentSelection('add'); // 有选中内容时整体缩进\r\n }\r\n else {\r\n // 使用空格代替缩进\r\n const spaces = Array(cm.getOption('indentUnit') + 1).join(' ');\r\n cm.replaceSelection(spaces);\r\n }\r\n },\r\n };\r\n if (formatter) {\r\n if (formatHotKey) {\r\n // default: 'Alt-F'\r\n options[formatHotKey] = cm => cm.setValue(formatter.getFormatted(cm.getValue()));\r\n }\r\n if (unFormatHotKey) {\r\n // default: 'Alt-R'\r\n options[unFormatHotKey] = cm => cm.setValue(formatter.getRaw(cm.getValue()));\r\n }\r\n }\r\n editor.setSize(width, height); // default size: ('100%', 100)\r\n editor.setOption('extraKeys', options);\r\n };\r\n }\r\n handleBeforeChange(_editor, _data, value) {\r\n this.setText(value);\r\n }\r\n handleCodeMirrorKeyDown(cm, e) {\r\n const { onKeyDown = noop, onEnterDown = noop } = this.props;\r\n switch (e.keyCode) {\r\n case KeyCode.ENTER:\r\n onEnterDown(e);\r\n break;\r\n case KeyCode.ESC:\r\n cm.getInputField().blur();\r\n break;\r\n default:\r\n }\r\n onKeyDown(e);\r\n }\r\n getCodeMirrorOptions(options = this.props.options) {\r\n return { ...defaultCodeMirrorOptions, ...options };\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), ['onChange', 'formatHotKey', 'unFormatHotKey']);\r\n otherProps.onKeyDown = this.handleCodeMirrorKeyDown;\r\n return otherProps;\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n const { options } = nextProps;\r\n if (!isEqual(options, this.props.options)) {\r\n this.cmOptions = this.getCodeMirrorOptions(options);\r\n }\r\n super.componentWillReceiveProps(nextProps, nextContext);\r\n }\r\n renderWrapper() {\r\n if (CodeMirror) {\r\n this.cmOptions.readOnly = this.isDisabled() ? 'nocursor' : this.isReadOnly();\r\n const text = this.getTextNode();\r\n return (<div {...this.getWrapperProps()}>\n <label>\n <CodeMirror {...this.getOtherProps()} value={isString(text) ? text : this.getText(this.getValue())} options={this.cmOptions} onBeforeChange={this.handleBeforeChange} onBlur={this.handleCodeMirrorBlur} editorDidMount={this.handleCodeMirrorDidMount}/>\n {this.renderFloatLabel()}\n </label>\n </div>);\r\n }\r\n }\r\n setText(text) {\r\n this.text = text;\r\n }\r\n getTextNode() {\r\n return this.text === undefined ? super.getTextNode() || '' : this.text;\r\n }\r\n processValue(value) {\r\n const text = super.processValue(value);\r\n const { formatter } = this.props;\r\n return formatter ? formatter.getFormatted(text) : text;\r\n }\r\n};\r\nCodeArea.displayName = 'CodeArea';\r\nCodeArea.propTypes = {\r\n options: PropTypes.object,\r\n formatHotKey: PropTypes.string,\r\n unFormatHotKey: PropTypes.string,\r\n formatter: PropTypes.object,\r\n ...ObserverFormField.propTypes,\r\n};\r\nCodeArea.defaultProps = {\r\n ...ObserverFormField.defaultProps,\r\n suffixCls: 'code-area',\r\n formatHotKey: 'Alt-F',\r\n unFormatHotKey: 'Alt-R',\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], CodeArea.prototype, \"text\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], CodeArea.prototype, \"handleBeforeChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], CodeArea.prototype, \"handleCodeMirrorKeyDown\", null);\r\ntslib_1.__decorate([\r\n action\r\n], CodeArea.prototype, \"setText\", null);\r\nCodeArea = tslib_1.__decorate([\r\n observer\r\n], CodeArea);\r\nexport default CodeArea;\r\n","import CodeArea from './CodeArea';\r\nexport default CodeArea;\r\n","// extracted by mini-css-extract-plugin","import './index.less';\r\n","import { Col } from '../grid';\r\nexport default Col;\r\n","import '../../grid/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, observable } from 'mobx';\r\nimport TriggerField from '../trigger-field/TriggerField';\r\nimport autobind from '../_util/autobind';\r\nimport EventManager from '../_util/EventManager';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { $l } from '../locale-context';\r\nfunction getNodeRect(node) {\r\n return node.getBoundingClientRect();\r\n}\r\nlet ColorPicker = class ColorPicker extends TriggerField {\r\n constructor() {\r\n super(...arguments);\r\n this.eventManager = new EventManager(typeof window !== 'undefined' && document);\r\n this.HSV = {\r\n h: 0,\r\n s: 1,\r\n v: 1,\r\n a: 1,\r\n };\r\n this.saveGradientRef = node => (this.gradient = node);\r\n this.saveSelectPointerRef = node => (this.selectPointer = node);\r\n this.saveHuePointerRef = node => (this.huePointer = node);\r\n this.saveHueRef = node => (this.hue = node);\r\n this.saveOpacityRef = node => (this.opacity = node);\r\n this.saveOpacityPointerRef = node => (this.opacityPointer = node);\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('ColorPicker', label ? 'value_missing' : 'value_missing_no_label', {\r\n label,\r\n }),\r\n typeMismatch: $l('ColorPicker', 'type_mismatch'),\r\n };\r\n }\r\n componentDidUpdate() {\r\n const { popup } = this;\r\n if (popup) {\r\n const { h, s, v } = this.HSV;\r\n const { huePointer, selectPointer, hue, gradient } = this;\r\n if (huePointer && hue) {\r\n const { width } = getNodeRect(hue);\r\n this.setHuePointer((width * h) / 360, huePointer, hue, false);\r\n }\r\n if (selectPointer && gradient) {\r\n const { width, height } = getNodeRect(gradient);\r\n const left = s * width;\r\n const top = height - v * height;\r\n this.setGradientPointer(left, top, selectPointer, gradient, false);\r\n }\r\n }\r\n }\r\n syncValueOnBlur(value) {\r\n if (value[0] !== '#' && !value.startsWith('rgb') && !value.startsWith('hls')) {\r\n value = `#${value}`;\r\n }\r\n super.syncValueOnBlur(value);\r\n }\r\n getFieldType() {\r\n return FieldType.color;\r\n }\r\n getValue() {\r\n return super.getValue() || this.hueColor;\r\n }\r\n getPrefix() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-prefix`}>\n <span className={`${prefixCls}-color`} style={{ backgroundColor: this.getValue() }}/>\n </div>);\r\n }\r\n getPopupFooter() {\r\n const { prefixCls } = this;\r\n const huePointerProps = {\r\n onMouseDown: this.handleHPMouseDown,\r\n ref: this.saveHuePointerRef,\r\n className: `${prefixCls}-popup-footer-slider-pointer`,\r\n };\r\n return (<div className={`${prefixCls}-popup-footer`}>\n <div ref={this.saveHueRef} className={`${prefixCls}-popup-footer-slider`}>\n <div onClick={this.handleHueClick} className=\"hue\"/>\n <div {...huePointerProps}/>\n </div>\n <div ref={this.saveOpacityRef} className={`${prefixCls}-popup-footer-slider opacity`}>\n <div ref={this.saveOpacityPointerRef} className={`${prefixCls}-popup-footer-slider-pointer`}/>\n </div>\n </div>);\r\n }\r\n getPopupContent() {\r\n const { prefixCls } = this;\r\n const gradientProps = {\r\n className: `${prefixCls}-popup-body-gradient`,\r\n onClick: this.handleGPClick,\r\n ref: this.saveGradientRef,\r\n };\r\n const gradientPointerProps = {\r\n onMouseDown: this.handleGPMouseDown,\r\n ref: this.saveSelectPointerRef,\r\n className: `${prefixCls}-popup-body-selector`,\r\n };\r\n return (<div className={`${prefixCls}-popup-view`}>\n <div className={`${prefixCls}-popup-body`} style={{ backgroundColor: this.getValue() }}>\n <div {...gradientProps}/>\n <div {...gradientPointerProps}/>\n </div>\n {this.getPopupFooter()}\n </div>);\r\n }\r\n setHSV(h, s, v, a) {\r\n const { HSV } = this;\r\n if (h !== undefined && h !== HSV.h) {\r\n HSV.h = h;\r\n }\r\n if (v !== undefined && v !== HSV.v) {\r\n HSV.v = v;\r\n }\r\n if (s !== undefined && s !== HSV.s) {\r\n HSV.s = s;\r\n }\r\n if (a !== undefined && a !== HSV.a) {\r\n HSV.a = a;\r\n }\r\n }\r\n setHueColor(color) {\r\n if (color !== this.hueColor) {\r\n this.hueColor = color;\r\n }\r\n }\r\n setColor(color) {\r\n if (color !== undefined && color.slice(0, 1) === '#' && color.length > 3) {\r\n const { gradient, selectPointer, hue, huePointer } = this;\r\n const { r, g, b, a } = this.hexToRGB(color);\r\n const { h, s, v } = this.rgbToHSV(r / 255, g / 255, b / 255, a);\r\n this.setHSV(h, s, v, a);\r\n const { r: hr, g: hg, b: hb, a: ha } = this.hsvToRGB(h, 1, 1, 1);\r\n const hueColor = this.rgbToHEX(hr, hg, hb, ha);\r\n this.setHueColor(hueColor);\r\n const { height, width } = getNodeRect(gradient);\r\n const left = s * width;\r\n const top = height - v * height;\r\n const { width: hueWidth } = getNodeRect(hue);\r\n const hueLeft = (h / 360) * hueWidth;\r\n this.setHuePointer(hueLeft, huePointer, hue, false);\r\n this.setGradientPointer(left, top, selectPointer, gradient, false);\r\n }\r\n }\r\n positionToHSV(left, top, width, height) {\r\n const { h, a } = this.HSV;\r\n if (width < 0) {\r\n width = 0;\r\n }\r\n const s = left / width;\r\n const v = 1 - top / height;\r\n return { h, s, v, a };\r\n }\r\n rgbToHEX(r, g, b, a) {\r\n function hex(num) {\r\n const hexNum = num.toString(16);\r\n return hexNum.length === 1 ? `0${hexNum}` : hexNum;\r\n }\r\n if (a !== 1) {\r\n return `#${hex(r)}${hex(g)}${hex(b)}${hex((a * 255) / 10)}`;\r\n }\r\n return `#${hex(r)}${hex(g)}${hex(b)}`;\r\n }\r\n hexToRGB(hex) {\r\n hex = hex.split('#')[1] || hex.split('#')[0];\r\n const length = hex.length;\r\n let results = '';\r\n const hexArray = hex.split('');\r\n if (length === 3 || length === 4) {\r\n for (let i = 0; i < length; i++) {\r\n results = `${results}${hexArray[i]}${hexArray[i]}`;\r\n }\r\n }\r\n else if (length === 5) {\r\n results = `${hex}${hexArray[length - 1]}`;\r\n }\r\n else {\r\n results = hex;\r\n }\r\n results = results.slice(0, 6);\r\n const result = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(results);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n a: 1,\r\n }\r\n : {\r\n r: 255,\r\n g: 0,\r\n b: 0,\r\n a: 1,\r\n };\r\n }\r\n rgbToHSV(r, g, b, a) {\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n const v = max;\r\n let s;\r\n let h;\r\n if (v === 0) {\r\n s = 0;\r\n }\r\n else {\r\n s = (max - min) / max;\r\n }\r\n if (max === min) {\r\n h = 0;\r\n }\r\n else {\r\n const d = r === min ? g - b : b === min ? r - g : b - r;\r\n const m = r === min ? 3 : b === min ? 1 : 5;\r\n h = 60 * (m - d / (max - min));\r\n }\r\n if (h < 0) {\r\n h += 360;\r\n }\r\n return { h, s, v, a };\r\n }\r\n hsvToRGB(h, s, v, a) {\r\n h /= 60;\r\n const h1 = Math.floor(h);\r\n const f = h - h1;\r\n const p = v * (1 - s);\r\n const q = v * (1 - f * s);\r\n const t = v * (1 - (1 - f) * s);\r\n let rgb;\r\n switch (h1) {\r\n case 0:\r\n rgb = { r: v, g: t, b: p, a };\r\n break;\r\n case 1:\r\n rgb = { r: q, g: v, b: p, a };\r\n break;\r\n case 2:\r\n rgb = { r: p, g: v, b: t, a };\r\n break;\r\n case 3:\r\n rgb = { r: p, g: q, b: v, a };\r\n break;\r\n case 4:\r\n rgb = { r: t, g: p, b: v, a };\r\n break;\r\n default:\r\n rgb = { r: v, g: p, b: q, a };\r\n break;\r\n }\r\n rgb.r = Math.floor(rgb.r * 255);\r\n rgb.g = Math.floor(rgb.g * 255);\r\n rgb.b = Math.floor(rgb.b * 255);\r\n return rgb;\r\n }\r\n setGradientPointer(x, y, pointer, wrap, isClient) {\r\n const { left: wrapX, top: wrapY, width: wrapW, height: wrapH } = getNodeRect(wrap);\r\n const { height: pointerH, width: pointerW } = getNodeRect(pointer);\r\n let left;\r\n let top;\r\n if (isClient) {\r\n left = x - wrapX < 0 ? 0 : x - wrapX > wrapW ? wrapW : x - wrapX;\r\n top = y - wrapY < 0 ? 0 : y - wrapY > wrapH ? wrapH : y - wrapY;\r\n }\r\n else {\r\n left = x;\r\n top = y;\r\n }\r\n pointer.style.left = `${left - pointerH / 2}px`;\r\n pointer.style.top = `${top - pointerW / 2}px`;\r\n return { left, top };\r\n }\r\n handleGPClick(e) {\r\n const { gradient, selectPointer, setGradientPointer } = this;\r\n if (gradient && selectPointer) {\r\n const { positionToHSV, rgbToHEX, hsvToRGB } = this;\r\n const { left, top } = setGradientPointer(e.clientX, e.clientY, selectPointer, gradient, true);\r\n const { height, width } = getNodeRect(gradient);\r\n const { h, s, v, a: opacity } = positionToHSV(left, top, width, height);\r\n this.setHSV(undefined, s, v, undefined);\r\n const { r, g, b, a } = hsvToRGB(h, s, v, opacity);\r\n const hexColor = rgbToHEX(r, g, b, a);\r\n this.prepareSetValue(hexColor);\r\n }\r\n }\r\n setHuePointer(x, pointer, wrap, isClient) {\r\n const { left: wrapX, width: wrapW } = getNodeRect(wrap);\r\n const { width: pointerW } = getNodeRect(pointer);\r\n let left;\r\n if (isClient) {\r\n left = x - wrapX < 0 ? 0 : x - wrapX > wrapW ? wrapW : x - wrapX;\r\n }\r\n else {\r\n left = x;\r\n }\r\n pointer.style.left = `${left - pointerW / 2}px`;\r\n if (left === wrapW) {\r\n return { left: 0, wrapW };\r\n }\r\n return { left, wrapW };\r\n }\r\n handleHueClick(e) {\r\n const { hue, huePointer, setHuePointer, hsvToRGB, rgbToHEX } = this;\r\n if (hue && huePointer) {\r\n const { left, wrapW } = setHuePointer(e.clientX, huePointer, hue, true);\r\n const h = Math.floor((left / wrapW) * 360);\r\n const { s, v, a: opacity } = this.HSV;\r\n this.setHSV(h, undefined, undefined, undefined);\r\n const { r, g, b, a } = hsvToRGB(h, 1, 1, 1);\r\n const { r: valueR, g: valueG, b: valueB, a: valueA } = hsvToRGB(h, s, v, opacity);\r\n const hueColor = rgbToHEX(r, g, b, a);\r\n const valueColor = rgbToHEX(valueR, valueG, valueB, valueA);\r\n this.setHueColor(hueColor);\r\n this.prepareSetValue(valueColor);\r\n }\r\n }\r\n handleGPMouseDown() {\r\n this.eventManager\r\n .addEventListener('mousemove', this.handleGPClick)\r\n .addEventListener('mouseup', this.onGPMouseUp);\r\n }\r\n onGPMouseUp() {\r\n this.eventManager\r\n .removeEventListener('mousemove', this.handleGPClick)\r\n .removeEventListener('mouseup', this.onGPMouseUp);\r\n }\r\n handleHPMouseDown() {\r\n this.eventManager\r\n .addEventListener('mousemove', this.handleHueClick)\r\n .addEventListener('mouseup', this.onHPMouseUp);\r\n }\r\n onHPMouseUp() {\r\n this.eventManager\r\n .removeEventListener('mousemove', this.handleHueClick)\r\n .removeEventListener('mouseup', this.onHPMouseUp);\r\n }\r\n handlePopupAnimateAppear() {\r\n this.setColor(this.getValue());\r\n }\r\n handlePopupAnimateEnd() { }\r\n getPopupStyleFromAlign() {\r\n return undefined;\r\n }\r\n getTriggerIconFont() {\r\n return 'palette';\r\n }\r\n};\r\nColorPicker.displayName = 'ColorPicker';\r\nColorPicker.defaultProps = {\r\n ...TriggerField.defaultProps,\r\n suffixCls: 'color-picker',\r\n clearButton: false,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], ColorPicker.prototype, \"hueColor\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], ColorPicker.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ColorPicker.prototype, \"setHueColor\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"setColor\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"positionToHSV\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ColorPicker.prototype, \"hexToRGB\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"setGradientPointer\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"handleGPClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"setHuePointer\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"handleHueClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"handleGPMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"onGPMouseUp\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"handleHPMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"onHPMouseUp\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColorPicker.prototype, \"handlePopupAnimateAppear\", null);\r\nColorPicker = tslib_1.__decorate([\r\n observer\r\n], ColorPicker);\r\nexport default ColorPicker;\r\n","import Colorpicker from './ColorPicker';\r\nexport default Colorpicker;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../trigger-field/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { Component, } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport omit from 'lodash/omit';\r\nimport omitBy from 'lodash/omitBy';\r\nimport defer from 'lodash/defer';\r\nimport merge from 'lodash/merge';\r\nimport noop from 'lodash/noop';\r\nimport isUndefined from 'lodash/isUndefined';\r\nimport classes from 'component-classes';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport autobind from '../_util/autobind';\r\nimport { Size } from './enum';\r\nimport normalizeLanguage from '../_util/normalizeLanguage';\r\nimport localeContext from '../locale-context';\r\n/* eslint-disable react/no-unused-prop-types */\r\nexport default class ViewComponent extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.setObservableProps(props, context);\r\n }\r\n get prefixCls() {\r\n const { suffixCls, prefixCls } = this.props;\r\n return getProPrefixCls(suffixCls, prefixCls);\r\n }\r\n get lang() {\r\n const { lang } = this.props;\r\n if (lang) {\r\n return lang;\r\n }\r\n return localeContext.locale.lang;\r\n }\r\n getMergedClassNames(...props) {\r\n return classNames(this.getClassName(), this.getWrapperClassNames(), ...props);\r\n }\r\n getMergedProps(props = {}) {\r\n return {\r\n ...merge(this.getWrapperProps(props), this.getOtherProps()),\r\n className: this.getMergedClassNames(),\r\n };\r\n }\r\n getObservableProps(_props, _context) {\r\n return {};\r\n }\r\n setObservableProps(props, context) {\r\n this.observableProps = this.getObservableProps(props, context);\r\n }\r\n updateObservableProps(props, context) {\r\n Object.assign(this.observableProps, omitBy(this.getObservableProps(props, context), isUndefined), true);\r\n }\r\n getOtherProps() {\r\n const { tabIndex, lang, style = {} } = this.props;\r\n let otherProps = omit(this.props, [\r\n 'prefixCls',\r\n 'suffixCls',\r\n 'className',\r\n 'elementClassName',\r\n 'style',\r\n 'size',\r\n 'autoFocus',\r\n 'onFocus',\r\n 'onBlur',\r\n 'children',\r\n 'dataSet',\r\n ]);\r\n if (this.isDisabled()) {\r\n otherProps = omit(otherProps, [\r\n 'onClick',\r\n 'onMouseUp',\r\n 'onMouseDown',\r\n 'onMouseEnter',\r\n 'onMouseLeave',\r\n 'onMouseOver',\r\n 'onMouseOut',\r\n 'onKeyDown',\r\n 'onKeyUp',\r\n 'onKeyPress',\r\n 'onContextMenu',\r\n ]);\r\n if (tabIndex !== undefined) {\r\n otherProps.tabIndex = -1;\r\n }\r\n }\r\n else {\r\n otherProps.onFocus = this.handleFocus;\r\n otherProps.onBlur = this.handleBlur;\r\n }\r\n otherProps.ref = this.elementReference;\r\n otherProps.disabled = this.isDisabled();\r\n otherProps.className = this.getClassName();\r\n if ('height' in style) {\r\n otherProps.style = { height: style.height };\r\n }\r\n otherProps.lang = normalizeLanguage(lang);\r\n return otherProps;\r\n }\r\n getClassName(...props) {\r\n const { prefixCls, props: { elementClassName }, } = this;\r\n return classNames(prefixCls, elementClassName, ...props);\r\n }\r\n getWrapperProps(props = {}) {\r\n const { style, hidden } = this.props;\r\n const wrapperProps = {\r\n ref: this.wrapperReference,\r\n className: this.getWrapperClassNames(),\r\n hidden,\r\n ...props,\r\n };\r\n if (style) {\r\n wrapperProps.style = omit(style, 'height');\r\n }\r\n return wrapperProps;\r\n }\r\n getWrapperClassNames(...args) {\r\n const { prefixCls, props: { className, size }, } = this;\r\n return classNames(`${prefixCls}-wrapper`, className, {\r\n [`${prefixCls}-sm`]: size === 'small',\r\n [`${prefixCls}-lg`]: size === 'large',\r\n [`${prefixCls}-disabled`]: this.isDisabled(),\r\n [`${prefixCls}-focused`]: this.isFocus,\r\n }, ...args);\r\n }\r\n isDisabled() {\r\n const { disabled } = this.props;\r\n return disabled;\r\n }\r\n handleFocus(e) {\r\n runInAction(() => {\r\n this.isFocused = true;\r\n this.isFocus = true;\r\n const { props: { onFocus = noop }, prefixCls, } = this;\r\n onFocus(e);\r\n const element = this.wrapper || findDOMNode(this);\r\n if (element) {\r\n classes(element).add(`${prefixCls}-focused`);\r\n }\r\n });\r\n }\r\n handleBlur(e) {\r\n if (!e.isDefaultPrevented()) {\r\n runInAction(() => {\r\n this.isFocused = false;\r\n this.isFocus = false;\r\n const { props: { onBlur = noop }, prefixCls, } = this;\r\n onBlur(e);\r\n const element = this.wrapper || findDOMNode(this);\r\n if (element) {\r\n classes(element).remove(`${prefixCls}-focused`);\r\n }\r\n });\r\n }\r\n }\r\n focus() {\r\n if (this.element) {\r\n this.element.focus();\r\n }\r\n }\r\n blur() {\r\n if (this.element) {\r\n this.element.blur();\r\n }\r\n }\r\n elementReference(node) {\r\n this.element = node;\r\n }\r\n wrapperReference(node) {\r\n this.wrapper = node;\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n this.updateObservableProps(nextProps, nextContext);\r\n }\r\n componentWillMount() {\r\n const { tabIndex, autoFocus } = this.props;\r\n if (!this.isDisabled() && autoFocus && (tabIndex === undefined || tabIndex > -1)) {\r\n defer(() => this.focus());\r\n }\r\n }\r\n}\r\nViewComponent.propTypes = {\r\n /**\r\n * 组件id\r\n */\r\n id: PropTypes.string,\r\n /**\r\n * 组件大小<未实现>\r\n * 可选值 `default` `small` `big`\r\n */\r\n size: PropTypes.oneOf([Size.small, Size.default, Size.large]),\r\n /**\r\n * 样式后缀\r\n */\r\n suffixCls: PropTypes.string,\r\n /**\r\n * 样式前缀\r\n */\r\n prefixCls: PropTypes.string,\r\n /**\r\n * 悬浮提示,建议用ToolTip组件\r\n */\r\n title: PropTypes.string,\r\n /**\r\n * 是否禁用\r\n */\r\n disabled: PropTypes.bool,\r\n /**\r\n * 是否隐藏\r\n */\r\n hidden: PropTypes.bool,\r\n /**\r\n * 自动获取焦点,多个组件同时设置该参数时,以节点树的顺序最末的组件获取焦点\r\n */\r\n autoFocus: PropTypes.bool,\r\n /**\r\n * 内链样式\r\n */\r\n style: PropTypes.object,\r\n /**\r\n * 自定义样式名\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * 键盘Tab键焦点序号,设为-1时不会获得焦点,设为0时为节点树的顺序。\r\n */\r\n tabIndex: PropTypes.number,\r\n /**\r\n * 语言\r\n */\r\n lang: PropTypes.string,\r\n /**\r\n * 拼写校验\r\n */\r\n spellCheck: PropTypes.bool,\r\n /**\r\n * 获取焦点回调\r\n */\r\n onFocus: PropTypes.func,\r\n /**\r\n * 失去焦点回调\r\n */\r\n onBlur: PropTypes.func,\r\n /**\r\n * 单击回调\r\n */\r\n onClick: PropTypes.func,\r\n /**\r\n * 双击回调\r\n */\r\n onDoubleClick: PropTypes.func,\r\n /**\r\n * 鼠标抬起回调\r\n */\r\n onMouseUp: PropTypes.func,\r\n /**\r\n * 鼠标点下回调\r\n */\r\n onMouseDown: PropTypes.func,\r\n /**\r\n * 鼠标移动回调\r\n */\r\n onMouseMove: PropTypes.func,\r\n /**\r\n * 鼠标进入回调\r\n */\r\n onMouseEnter: PropTypes.func,\r\n /**\r\n * 鼠标离开回调\r\n */\r\n onMouseLeave: PropTypes.func,\r\n /**\r\n * 鼠标进入回调,与onMouseEnter区别在于鼠标进入子节点时会触发onMouseOut\r\n */\r\n onMouseOver: PropTypes.func,\r\n /**\r\n * 鼠标离开回调,与onMouseLeave区别在于子节点的onMouseout会冒泡触发本回调\r\n */\r\n onMouseOut: PropTypes.func,\r\n /**\r\n * 鼠标右击后的回调\r\n */\r\n onContextMenu: PropTypes.func,\r\n /**\r\n * 键盘按下时的回调\r\n */\r\n onKeyDown: PropTypes.func,\r\n /**\r\n * 键盘抬起时的回调\r\n */\r\n onKeyUp: PropTypes.func,\r\n /**\r\n * 键盘敲击后的回调\r\n */\r\n onKeyPress: PropTypes.func,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], ViewComponent.prototype, \"isFocused\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], ViewComponent.prototype, \"observableProps\", void 0);\r\ntslib_1.__decorate([\r\n action\r\n], ViewComponent.prototype, \"setObservableProps\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ViewComponent.prototype, \"updateObservableProps\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ViewComponent.prototype, \"handleFocus\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ViewComponent.prototype, \"handleBlur\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ViewComponent.prototype, \"elementReference\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], ViewComponent.prototype, \"wrapperReference\", null);\r\n","export { Size } from 'choerodon-ui/lib/_util/enum';\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/style/index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { observer } from 'mobx-react';\r\nimport { NumberField } from '../number-field/NumberField';\r\nimport { FieldType } from '../data-set/enum';\r\nimport formatCurrency from '../formatter/formatCurrency';\r\nlet Currency = class Currency extends NumberField {\r\n getFieldType() {\r\n return FieldType.currency;\r\n }\r\n getFormatter() {\r\n return formatCurrency;\r\n }\r\n getFormatOptions() {\r\n return {\r\n currency: this.getProp('currency'),\r\n };\r\n }\r\n};\r\nCurrency.displayName = 'Currency';\r\nCurrency.format = formatCurrency;\r\nCurrency = tslib_1.__decorate([\r\n observer\r\n], Currency);\r\nexport default Currency;\r\n","import Currency from './Currency';\r\nexport default Currency;\r\n","// style dependencies\r\nimport '../../number-field/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, computed, get, isArrayLike, observable, runInAction, set, toJS, } from 'mobx';\r\nimport axiosStatic from 'axios';\r\nimport isNumber from 'lodash/isNumber';\r\nimport isArray from 'lodash/isArray';\r\nimport isObject from 'lodash/isObject';\r\nimport isNil from 'lodash/isNil';\r\nimport defer from 'lodash/defer';\r\nimport debounce from 'lodash/debounce';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport localeContext, { $l } from '../locale-context';\r\nimport axios from '../axios';\r\nimport Record from './Record';\r\nimport Field from './Field';\r\nimport { axiosConfigAdapter, checkParentByInsert, doExport, findBindFieldBy, generateJSONData, generateResponseData, getFieldSorter, getOrderFields, prepareForSubmit, prepareSubmitData, processIntlField, sortTree, } from './utils';\r\nimport EventManager from '../_util/EventManager';\r\nimport DataSetSnapshot from './DataSetSnapshot';\r\nimport confirm from '../modal/confirm';\r\nimport { DataSetEvents, DataSetSelection, DataSetStatus, FieldType, RecordStatus, SortOrder, } from './enum';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\r\nimport Transport from './Transport';\r\nimport PromiseQueue from '../_util/PromiseQueue';\r\nimport DataSetRequestError from './DataSetRequestError';\r\nimport defaultFeedback from './FeedBack';\r\nexport default class DataSet extends EventManager {\r\n constructor(props) {\r\n super();\r\n this.children = {};\r\n this.pending = new PromiseQueue();\r\n this.originalData = [];\r\n this.resetInBatch = false;\r\n this.inBatchSelection = false;\r\n this.syncChildrenRemote = debounce((remoteKeys, current) => {\r\n const { children } = this;\r\n remoteKeys.forEach(childName => this.syncChild(children[childName], current, childName));\r\n }, 300);\r\n runInAction(() => {\r\n props = { ...DataSet.defaultProps, ...props };\r\n this.props = props;\r\n const { data, fields, queryFields, queryDataSet, autoQuery, autoCreate, pageSize, selection, events, id, name, children, queryParameter = {}, } = props;\r\n this.name = name;\r\n this.records = [];\r\n this.fields = observable.map();\r\n this.totalCount = 0;\r\n this.status = DataSetStatus.ready;\r\n this.currentPage = 1;\r\n this.cachedSelected = [];\r\n this.queryParameter = queryParameter;\r\n this.pageSize = pageSize;\r\n this.selection = selection;\r\n this.processListener();\r\n if (id) {\r\n this.id = id;\r\n }\r\n if (children) {\r\n this.initChildren(children);\r\n }\r\n if (events) {\r\n this.initEvents(events);\r\n }\r\n if (fields) {\r\n this.initFields(fields);\r\n }\r\n this.initQueryDataSet(queryDataSet, queryFields);\r\n if (data) {\r\n const { length } = data;\r\n if (length) {\r\n this.loadData(data, length);\r\n }\r\n }\r\n // ssr do not auto query\r\n if (autoQuery && typeof window !== 'undefined') {\r\n this.query();\r\n }\r\n else if (autoCreate && this.records.length === 0) {\r\n this.create();\r\n }\r\n });\r\n }\r\n get axios() {\r\n return this.props.axios || getConfig('axios') || axios;\r\n }\r\n get dataKey() {\r\n const { dataKey = getConfig('dataKey') } = this.props;\r\n return dataKey;\r\n }\r\n get totalKey() {\r\n return this.props.totalKey || getConfig('totalKey');\r\n }\r\n get lang() {\r\n return get(this.props, 'lang') || localeContext.locale.lang;\r\n }\r\n set lang(lang) {\r\n runInAction(() => {\r\n set(this.props, 'lang', lang);\r\n });\r\n }\r\n get queryDataSet() {\r\n return get(this.props, 'queryDataSet');\r\n }\r\n /**\r\n * 设置查询的DataSet.\r\n * @param {DataSet} ds DataSet.\r\n */\r\n set queryDataSet(ds) {\r\n runInAction(() => {\r\n set(this.props, 'queryDataSet', ds);\r\n if (ds) {\r\n // 初始化时如果直接执行create,mobx会报错,所以使用了defer\r\n ds.pending.add(new Promise(reslove => {\r\n defer(() => {\r\n if (ds.records.length === 0) {\r\n ds.create();\r\n }\r\n else if (!ds.current) {\r\n ds.first();\r\n }\r\n reslove();\r\n });\r\n }));\r\n }\r\n });\r\n }\r\n get queryUrl() {\r\n return get(this.props, 'queryUrl') || (this.name && `/dataset/${this.name}/queries`);\r\n }\r\n /**\r\n * 设置提交的Url.\r\n * @param {String} url 提交的Url.\r\n */\r\n set queryUrl(url) {\r\n runInAction(() => {\r\n set(this.props, 'queryUrl', url);\r\n });\r\n }\r\n get submitUrl() {\r\n return get(this.props, 'submitUrl') || (this.name && `/dataset/${this.name}/mutations`);\r\n }\r\n /**\r\n * 设置查询的Url.\r\n * @param {String} url 查询的Url.\r\n */\r\n set submitUrl(url) {\r\n runInAction(() => {\r\n set(this.props, 'submitUrl', url);\r\n });\r\n }\r\n get tlsUrl() {\r\n return get(this.props, 'tlsUrl') || (this.name && `/dataset/${this.name}/languages`);\r\n }\r\n /**\r\n * 设置多语言的Url.\r\n * @param {String} url 多语言的Url.\r\n */\r\n set tlsUrl(url) {\r\n runInAction(() => {\r\n set(this.props, 'tlsUrl', url);\r\n });\r\n }\r\n get validateUrl() {\r\n return get(this.props, 'validateUrl') || (this.name && `/dataset/${this.name}/validate`);\r\n }\r\n /**\r\n * 设置远程校验查询请求的url.\r\n * @param {String} url 远程校验查询请求的url.\r\n */\r\n set validateUrl(url) {\r\n runInAction(() => {\r\n set(this.props, 'validateUrl', url);\r\n });\r\n }\r\n get exportUrl() {\r\n return get(this.props, 'exportUrl') || (this.name && `/dataset/${this.name}/export`);\r\n }\r\n /**\r\n * 设置导出请求的url.\r\n * @param {String} url 远程校验查询请求的url.\r\n */\r\n set exportUrl(url) {\r\n runInAction(() => {\r\n set(this.props, 'exportUrl', url);\r\n });\r\n }\r\n set transport(transport) {\r\n runInAction(() => {\r\n this.props.transport = transport instanceof Transport ? transport.props : transport;\r\n });\r\n }\r\n get transport() {\r\n return new Transport(this.props.transport, this);\r\n }\r\n get feedback() {\r\n return {\r\n ...getConfig('feedback'),\r\n ...this.props.feedback,\r\n };\r\n }\r\n get data() {\r\n return this.records.filter(record => !record.isRemoved);\r\n }\r\n set data(records) {\r\n this.loadData(records);\r\n }\r\n get dirtyRecords() {\r\n const created = [];\r\n const updated = [];\r\n const destroyed = [];\r\n this.records.forEach(record => {\r\n switch (record.status) {\r\n case RecordStatus.add:\r\n created.push(record);\r\n break;\r\n case RecordStatus.update:\r\n updated.push(record);\r\n break;\r\n case RecordStatus.delete:\r\n destroyed.push(record);\r\n break;\r\n default:\r\n }\r\n });\r\n return [created, updated, destroyed];\r\n }\r\n /**\r\n * 获取新建的记录集\r\n * @return 记录集\r\n */\r\n get created() {\r\n return this.dirtyRecords[0];\r\n }\r\n /**\r\n * 获取变更的记录集\r\n * @return 记录集\r\n */\r\n get updated() {\r\n return this.dirtyRecords[1];\r\n }\r\n /**\r\n * 获取删除的记录集\r\n * @return 记录集\r\n */\r\n get destroyed() {\r\n return this.dirtyRecords[2];\r\n }\r\n /**\r\n * 获取选中的记录集\r\n * @return 记录集\r\n */\r\n get selected() {\r\n return this.currentSelected.concat(this.cachedSelected.filter(record => record.isSelected));\r\n }\r\n get currentSelected() {\r\n return this.records.filter(record => record.isSelected);\r\n }\r\n get totalPage() {\r\n return this.paging ? Math.ceil(this.totalCount / this.pageSize) : 1;\r\n }\r\n get currentIndex() {\r\n const { current, pageSize, currentPage } = this;\r\n if (current) {\r\n const index = this.indexOf(current);\r\n if (index !== -1) {\r\n return index + (currentPage - 1) * pageSize;\r\n }\r\n }\r\n return -1;\r\n }\r\n set currentIndex(index) {\r\n this.locate(index);\r\n }\r\n /**\r\n * 记录数\r\n */\r\n get length() {\r\n return this.data.length;\r\n }\r\n get hasChildren() {\r\n return Object.keys(this.children).length > 0;\r\n }\r\n get treeRecords() {\r\n return sortTree(this.records.filter(record => !record.parent), getOrderFields(this.fields)[0]);\r\n }\r\n get treeData() {\r\n return sortTree(this.filter(record => !record.parent), getOrderFields(this.fields)[0]);\r\n }\r\n get paging() {\r\n const { idField, parentField, paging } = this.props;\r\n return (parentField === undefined || idField === undefined) && paging;\r\n }\r\n set paging(paging) {\r\n runInAction(() => {\r\n this.props.paging = paging;\r\n });\r\n }\r\n /**\r\n * 获取当前索引的记录\r\n * @return record 记录\r\n */\r\n get current() {\r\n return (this.data.find(record => record.isCurrent) ||\r\n this.cachedSelected.find(record => record.isCurrent));\r\n }\r\n /**\r\n * 将记录设定为当前索引\r\n * @param record 记录\r\n */\r\n set current(record) {\r\n const currentRecord = this.current;\r\n if (currentRecord !== record && (!record || !record.isCached)) {\r\n runInAction(() => {\r\n if (currentRecord) {\r\n currentRecord.isCurrent = false;\r\n }\r\n if (record && record.dataSet === this) {\r\n record.isCurrent = true;\r\n }\r\n this.fireEvent(DataSetEvents.indexChange, {\r\n dataSet: this,\r\n record,\r\n previous: currentRecord,\r\n });\r\n });\r\n }\r\n }\r\n get uniqueKeys() {\r\n const { primaryKey } = this.props;\r\n if (primaryKey) {\r\n return [primaryKey];\r\n }\r\n const keys = [];\r\n [...this.fields.entries()].forEach(([key, field]) => {\r\n if (field.get('unique')) {\r\n keys.push(key);\r\n }\r\n });\r\n if (keys.length) {\r\n return keys;\r\n }\r\n return undefined;\r\n }\r\n get cacheSelectionKeys() {\r\n const { cacheSelection, selection } = this.props;\r\n if (cacheSelection && selection === DataSetSelection.multiple) {\r\n return this.uniqueKeys;\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * 获取所有记录包括缓存的选择记录\r\n * @param index 索引\r\n * @returns {Record}\r\n */\r\n get all() {\r\n return this.records.concat(this.cachedSelected.slice());\r\n }\r\n processListener() {\r\n this.addEventListener(DataSetEvents.indexChange, this.handleCascade);\r\n }\r\n destroy() {\r\n this.clear();\r\n }\r\n snapshot() {\r\n return new DataSetSnapshot(this);\r\n }\r\n restore(snapshot) {\r\n const previous = this.current;\r\n Object.assign(this, snapshot);\r\n const record = this.current;\r\n if (previous !== record) {\r\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record, previous });\r\n }\r\n return this;\r\n }\r\n toData() {\r\n return this.data.map(record => record.toData());\r\n }\r\n toJSONData(isSelected, noCascade) {\r\n const data = [];\r\n (isSelected ? this.selected : this.records).forEach(record => generateJSONData(data, record, isSelected, noCascade));\r\n return data;\r\n }\r\n /**\r\n * 等待选中或者所有记录准备就绪\r\n * @param isSelect 如果为true,则只等待选中的记录\r\n * @returns Promise\r\n */\r\n ready(isSelect) {\r\n return Promise.all([\r\n this.pending.ready(),\r\n ...(isSelect ? this.selected : this.data).map(record => record.ready()),\r\n ...[...this.fields.values()].map(field => field.ready()),\r\n ]);\r\n }\r\n /**\r\n * 查询记录\r\n * @param page 页码\r\n * @return Promise\r\n */\r\n query(page) {\r\n return this.pending.add(this.doQuery(page));\r\n }\r\n async doQuery(page) {\r\n const data = await this.read(page);\r\n this.loadDataFromResponse(data);\r\n return data;\r\n }\r\n /**\r\n * 将数据集中的增删改的记录进行远程提交\r\n * @param isSelect 如果为true,则只提交选中记录\r\n * @param noCascade 如果为true,则不提交级联数据\r\n * @return Promise\r\n */\r\n async submit(isSelect, noCascade) {\r\n await this.ready(isSelect);\r\n if (await this.validate(isSelect, noCascade)) {\r\n return this.pending.add(this.write(isSelect ? this.selected : this.records, isSelect, noCascade));\r\n }\r\n return false;\r\n }\r\n /**\r\n * 导出数据\r\n * @param object columns 导出的列\r\n */\r\n async export(columns = {}) {\r\n if (this.checkReadable(this.parent) && (await this.ready())) {\r\n const data = await this.generateQueryParameter();\r\n data._HAP_EXCEL_EXPORT_COLUMNS = columns;\r\n const { totalCount, totalKey } = this;\r\n const params = { _r: Date.now(), ...this.generateOrderQueryString() };\r\n ObjectChainValue.set(params, totalKey, totalCount);\r\n const newConfig = axiosConfigAdapter('exports', this, data, params);\r\n if (newConfig.url) {\r\n if ((await this.fireEvent(DataSetEvents.export, {\r\n dataSet: this,\r\n params: newConfig.params,\r\n data: newConfig.data,\r\n })) !== false) {\r\n doExport(this.axios.getUri(newConfig), newConfig.data, newConfig.method);\r\n }\r\n }\r\n else {\r\n warning(false, 'Unable to execute the export method of dataset, please check the ');\r\n }\r\n }\r\n }\r\n /**\r\n * 重置更改\r\n */\r\n reset() {\r\n this.resetInBatch = true;\r\n this.records = this.originalData.map(record => record.reset());\r\n this.resetInBatch = false;\r\n if (this.props.autoCreate && this.records.length === 0) {\r\n this.create();\r\n }\r\n this.fireEvent(DataSetEvents.reset, { dataSet: this, records: this.records });\r\n return this;\r\n }\r\n /**\r\n * 定位到指定页码,如果paging为true或`server`,则做远程查询\r\n * @param page 页码\r\n * @return Promise\r\n */\r\n page(page) {\r\n if (page > 0 && this.paging) {\r\n return this.locate((page - 1) * this.pageSize + this.created.length - this.destroyed.length);\r\n }\r\n warning(page > 0, 'Page number is incorrect.');\r\n warning(this.paging, 'Can not paging query util the property<paging> of DataSet is true.');\r\n return Promise.resolve();\r\n }\r\n /**\r\n * 定位记录\r\n * @param index 索引\r\n * @return Promise\r\n */\r\n async locate(index) {\r\n const { paging, pageSize, totalCount } = this;\r\n const { modifiedCheck } = this.props;\r\n let currentRecord = this.findInAllPage(index);\r\n if (currentRecord) {\r\n this.current = currentRecord;\r\n return currentRecord;\r\n }\r\n if (paging === true) {\r\n if (index >= 0 && index < totalCount + this.created.length - this.destroyed.length) {\r\n if (!modifiedCheck ||\r\n !this.isModified() ||\r\n (await confirm($l('DataSet', 'unsaved_data_confirm'))) !== 'cancel') {\r\n await this.query(Math.floor(index / pageSize) + 1);\r\n currentRecord = this.findInAllPage(index);\r\n if (currentRecord) {\r\n this.current = currentRecord;\r\n return currentRecord;\r\n }\r\n }\r\n }\r\n }\r\n warning(false, 'Located index of Record is out of boundary.');\r\n return Promise.resolve(undefined);\r\n }\r\n /**\r\n * 定位到第一条记录\r\n * @return Promise\r\n */\r\n first() {\r\n return this.locate(0);\r\n }\r\n /**\r\n * 定位到最后一条记录\r\n * @return Promise\r\n */\r\n last() {\r\n return this.locate((this.paging ? this.totalCount : this.length) - 1);\r\n }\r\n /**\r\n * 定位到当前记录的上一条记录\r\n * 若当前页中当前记录为第一条记录且有上一页,则会查询上一页并定位到上一页的最后一条记录\r\n * @return Promise\r\n */\r\n pre() {\r\n return this.locate(this.currentIndex - 1);\r\n }\r\n /**\r\n * 定位到当前记录的下一条记录\r\n * 若当前页中当前记录为最后一条记录且有下一页,则会查询下一页并定位到下一页的第一条记录\r\n * @return Promise\r\n */\r\n next() {\r\n return this.locate(this.currentIndex + 1);\r\n }\r\n /**\r\n * 定位到首页\r\n * @return Promise\r\n */\r\n firstPage() {\r\n return this.page(1);\r\n }\r\n /**\r\n * 定位到上一页\r\n * @return Promise\r\n */\r\n prePage() {\r\n return this.page(this.currentPage - 1);\r\n }\r\n /**\r\n * 定位到下一页\r\n * @return Promise\r\n */\r\n nextPage() {\r\n return this.page(this.currentPage + 1);\r\n }\r\n /**\r\n * 定位到尾页\r\n * @return Promise\r\n */\r\n lastPage() {\r\n return this.page(this.totalPage);\r\n }\r\n /**\r\n * 创建一条记录\r\n * @param data 数据对象\r\n * @param dataIndex 记录所在的索引\r\n * @return 新建的记录\r\n */\r\n create(data = {}, dataIndex) {\r\n if (data === null) {\r\n data = {};\r\n }\r\n [...this.fields.entries()].forEach(([name, field]) => {\r\n const defaultValue = field.get('defaultValue');\r\n const value = ObjectChainValue.get(data, name);\r\n if (value === undefined && defaultValue !== undefined) {\r\n ObjectChainValue.set(data, name, toJS(defaultValue));\r\n }\r\n });\r\n const record = new Record(data, this);\r\n if (isNumber(dataIndex)) {\r\n this.splice(dataIndex, 0, record);\r\n }\r\n else {\r\n this.push(record);\r\n }\r\n this.current = record;\r\n this.fireEvent(DataSetEvents.create, { dataSet: this, record });\r\n return record;\r\n }\r\n /**\r\n * 立即删除记录\r\n * @param records 记录或者记录数组,默认当前记录\r\n * @param confirmMessage 提示信息或弹窗的属性\r\n * @return Promise\r\n */\r\n async delete(records, confirmMessage) {\r\n if (records) {\r\n records = [].concat(records);\r\n if (records.length > 0 &&\r\n (await this.fireEvent(DataSetEvents.beforeDelete, { dataSet: this, records })) !== false &&\r\n (await confirm(confirmMessage || $l('DataSet', 'delete_selected_row_confirm'))) !== 'cancel') {\r\n this.remove(records);\r\n return this.pending.add(this.write(this.destroyed));\r\n }\r\n }\r\n }\r\n /**\r\n * 临时删除记录\r\n * @param records 记录或者记录数组\r\n */\r\n remove(records) {\r\n if (records) {\r\n const data = isArrayLike(records) ? records.slice() : [records];\r\n const { current, currentIndex } = this;\r\n data.forEach(record => {\r\n const index = this.indexOf(record);\r\n if (index !== -1) {\r\n this.splice(index, 1);\r\n }\r\n });\r\n if (!this.current) {\r\n const record = this.get(currentIndex) || this.get(this.length - 1);\r\n if (record) {\r\n record.isCurrent = true;\r\n }\r\n if (current !== record) {\r\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record, previous: current });\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * 临时删除所有记录\r\n */\r\n removeAll() {\r\n const { current, length } = this;\r\n if (length) {\r\n this.forEach(this.deleteRecord, this);\r\n if (current) {\r\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, previous: current });\r\n }\r\n }\r\n }\r\n /**\r\n * 删除所有记录\r\n * @param confirmMessage 提示信息或弹窗的属性\r\n */\r\n async deleteAll(confirmMessage) {\r\n if (this.records.length > 0 &&\r\n (await confirm(confirmMessage || $l('DataSet', 'delete_all_row_confirm'))) !== 'cancel') {\r\n this.removeAll();\r\n return this.pending.add(this.write(this.destroyed));\r\n }\r\n }\r\n /**\r\n * 将若干数据记录插入记录堆栈顶部\r\n * @param records 数据集\r\n * @return 堆栈数量\r\n */\r\n push(...records) {\r\n checkParentByInsert(this);\r\n return this.records.push(...this.transferRecords(records));\r\n }\r\n /**\r\n * 将若干数据记录插入记录堆栈底部\r\n * @param records 数据集\r\n * @return 堆栈数量\r\n */\r\n unshift(...records) {\r\n checkParentByInsert(this);\r\n return this.records.unshift(...this.transferRecords(records));\r\n }\r\n /**\r\n * 从记录堆栈顶部获取记录\r\n * @return 记录\r\n */\r\n pop() {\r\n return this.deleteRecord(this.data.pop());\r\n }\r\n /**\r\n * 从记录堆栈底部获取记录\r\n * @return 记录\r\n */\r\n shift() {\r\n return this.deleteRecord(this.data.shift());\r\n }\r\n /**\r\n * 删除指定索引的若干记录,并可插入若干新记录\r\n * @param from 索引开始的位置\r\n * @default 0\r\n * @param deleteCount 删除的数量\r\n * @default 0\r\n * @param records 插入的若干新记录\r\n * @return 被删除的记录集\r\n */\r\n splice(from, deleteCount, ...records) {\r\n if (records.length) {\r\n checkParentByInsert(this);\r\n }\r\n const deleted = this.records.filter((record, index) => {\r\n if (record.status === RecordStatus.delete) {\r\n from += 1;\r\n }\r\n if (index >= from && deleteCount > 0 && record.status !== RecordStatus.delete) {\r\n this.deleteRecord(record);\r\n deleteCount -= 1;\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.records.splice(from, 0, ...this.transferRecords(records));\r\n return deleted;\r\n }\r\n /**\r\n * 截取指定索引范围的记录集,不改变原记录堆栈\r\n * @param start 开始索引\r\n * @default 0\r\n * @param end 结束索引\r\n * @default 记录堆栈长度\r\n * @return 被删除的记录集\r\n */\r\n slice(start = 0, end = this.length) {\r\n return this.data.slice(start, end);\r\n }\r\n /**\r\n * 获取记录所在的索引\r\n * @param record 记录\r\n * @param fromIndex 开始检索的索引\r\n * @return 索引\r\n */\r\n indexOf(record, fromIndex) {\r\n return this.data.indexOf(record, fromIndex);\r\n }\r\n /**\r\n * 根据函数查找记录\r\n * @param fn 查询函数\r\n * @returns 记录\r\n */\r\n find(fn) {\r\n return this.data.find(fn);\r\n }\r\n /**\r\n * 根据函数查找记录所在的索引\r\n * @param fn 查询函数\r\n * @returns 索引\r\n */\r\n findIndex(fn) {\r\n return this.data.findIndex(fn);\r\n }\r\n /**\r\n * 根据函数遍历\r\n * @param fn 遍历函数\r\n * @param thisArg this对象\r\n */\r\n forEach(fn, thisArg) {\r\n this.data.forEach(fn, thisArg);\r\n }\r\n /**\r\n * 根据函数遍历并输出新数组\r\n * @param fn 遍历函数\r\n * @param thisArg this对象\r\n * @returns 输出新数组\r\n */\r\n map(fn, thisArg) {\r\n return this.data.map(fn, thisArg);\r\n }\r\n /**\r\n * 根据函数遍历,当有返回值为true时,输出true\r\n * @param fn 遍历函数\r\n * @param thisArg this对象\r\n * @returns boolean\r\n */\r\n some(fn, thisArg) {\r\n return this.data.some(fn, thisArg);\r\n }\r\n /**\r\n * 根据函数遍历,当有返回值为false时,输出false\r\n * @param fn 遍历函数\r\n * @param thisArg this对象\r\n * @returns boolean\r\n */\r\n every(fn, thisArg) {\r\n return this.data.every(fn, thisArg);\r\n }\r\n /**\r\n * 根据函数过滤并返回记录集\r\n * @param fn 过滤函数\r\n * @param thisArg this对象\r\n * @returns {Record[]}\r\n */\r\n filter(fn, thisArg) {\r\n return this.data.filter(fn, thisArg);\r\n }\r\n /**\r\n * 为数组中的所有元素调用指定的回调函数。 回调函数的返回值是累计结果,并在下次调用回调函数时作为参数提供。\r\n * @param fn 累计函数\r\n * @param initialValue 初始值\r\n * @returns {U}\r\n */\r\n reduce(fn, initialValue) {\r\n return this.data.reduce(fn, initialValue);\r\n }\r\n /**\r\n * 按降序调用数组中所有元素的指定回调函数。 回调函数的返回值是累计结果,并在下次调用回调函数时作为参数提供。\r\n * @param fn 累计函数\r\n * @param initialValue 初始值\r\n * @returns {U}\r\n */\r\n reduceRight(fn, initialValue) {\r\n return this.data.reduceRight(fn, initialValue);\r\n }\r\n /**\r\n * 反转记录的顺序。\r\n */\r\n reverse() {\r\n return (this.records = this.records.reverse());\r\n }\r\n /**\r\n * 服务端排序\r\n * @param fieldName\r\n */\r\n sort(fieldName) {\r\n const field = this.getField(fieldName);\r\n if (field) {\r\n const currents = getOrderFields(this.fields);\r\n currents.forEach(current => {\r\n if (current !== field) {\r\n current.order = undefined;\r\n }\r\n });\r\n if (!field.order || field.order === SortOrder.desc) {\r\n field.order = SortOrder.asc;\r\n }\r\n else {\r\n field.order = SortOrder.desc;\r\n }\r\n if (this.paging) {\r\n this.query();\r\n }\r\n else {\r\n this.records = this.records.sort(getFieldSorter(field));\r\n }\r\n }\r\n }\r\n /**\r\n * 选中记录\r\n * @param recordOrIndex 记录或记录索引\r\n */\r\n select(recordOrIndex) {\r\n const { selection } = this;\r\n if (selection) {\r\n let record = recordOrIndex;\r\n if (isNumber(recordOrIndex)) {\r\n record = this.get(recordOrIndex);\r\n }\r\n if (record && record.selectable && !record.isSelected) {\r\n let previous;\r\n if (selection === DataSetSelection.single) {\r\n this.selected.forEach((selected) => {\r\n selected.isSelected = false;\r\n previous = selected;\r\n });\r\n }\r\n if (record) {\r\n record.isSelected = true;\r\n }\r\n if (!this.inBatchSelection) {\r\n this.fireEvent(DataSetEvents.select, { dataSet: this, record, previous });\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * 取消选中记录\r\n * @param recordOrIndex 记录或记录索引\r\n */\r\n unSelect(recordOrIndex) {\r\n if (this.selection) {\r\n let record = recordOrIndex;\r\n if (isNumber(recordOrIndex)) {\r\n record = this.get(recordOrIndex);\r\n }\r\n if (record && record.selectable && record.isSelected) {\r\n record.isSelected = false;\r\n if (!this.inBatchSelection) {\r\n const cachedIndex = this.cachedSelected.indexOf(record);\r\n if (cachedIndex !== -1) {\r\n this.cachedSelected.splice(cachedIndex, 1);\r\n }\r\n this.fireEvent(DataSetEvents.unSelect, { dataSet: this, record });\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * 全选\r\n */\r\n selectAll(filter) {\r\n const { selection } = this;\r\n if (selection) {\r\n this.inBatchSelection = true;\r\n if (selection === DataSetSelection.single) {\r\n if (!this.currentSelected.length) {\r\n this.select(filter ? this.filter(filter)[0] : 0);\r\n }\r\n }\r\n else {\r\n this.records.forEach(record => {\r\n if (!filter || filter(record) !== false) {\r\n this.select(record);\r\n }\r\n });\r\n }\r\n this.fireEvent(DataSetEvents.selectAll, { dataSet: this });\r\n this.inBatchSelection = false;\r\n }\r\n }\r\n /**\r\n * 取消全选\r\n */\r\n unSelectAll() {\r\n if (this.selection) {\r\n this.inBatchSelection = true;\r\n this.currentSelected.forEach(record => {\r\n this.unSelect(record);\r\n });\r\n this.fireEvent(DataSetEvents.unSelectAll, { dataSet: this });\r\n this.inBatchSelection = false;\r\n }\r\n }\r\n clearCachedSelected() {\r\n this.setCachedSelected([]);\r\n }\r\n setCachedSelected(cachedSelected) {\r\n this.cachedSelected = cachedSelected;\r\n }\r\n /**\r\n * 获取指定索引的记录\r\n * @param index 索引\r\n * @returns {Record}\r\n */\r\n get(index) {\r\n const { data } = this;\r\n return data.length ? data[index] : undefined;\r\n }\r\n /**\r\n * 从树形数据中获取指定索引的根节点记录\r\n * @param index 索引\r\n * @returns {Record}\r\n */\r\n getFromTree(index) {\r\n const { treeData } = this;\r\n return treeData.length ? treeData[index] : undefined;\r\n }\r\n /**\r\n * 判断是否有新增、变更或者删除的记录\r\n * @return true | false\r\n */\r\n isModified() {\r\n return this.records.some(record => record.status !== RecordStatus.sync);\r\n }\r\n /**\r\n * 获取指定分页的记录集\r\n * @param page 如果page为空或者paging为server,则获取当前分页的记录集\r\n * @return 记录集\r\n */\r\n /**\r\n * 根据记录ID查找记录\r\n * @param id 记录ID\r\n * @return 记录\r\n */\r\n findRecordById(id) {\r\n if (id !== undefined) {\r\n return this.records.find(record => String(record.id) === String(id));\r\n }\r\n }\r\n /**\r\n * 校验数据记录是否有效\r\n * @param isSelected 是否只校验选中记录\r\n * @param noCascade 是否级联校验\r\n * @return true | false\r\n */\r\n validate(isSelected, noCascade) {\r\n return Promise.all((isSelected ? this.selected : this.data).map(record => record.validate(noCascade))).then(results => results.every(result => result));\r\n }\r\n /**\r\n * 根据字段名获取字段\r\n * @param fieldName 字段名\r\n * @returns 字段\r\n */\r\n getField(fieldName) {\r\n if (fieldName) {\r\n return this.fields.get(fieldName);\r\n }\r\n }\r\n /**\r\n * 获取分组字段名\r\n * @returns 字段名列表\r\n */\r\n getGroups() {\r\n return [...this.fields.entries()]\r\n .reduce((arr, [name, field]) => {\r\n const group = field.get('group');\r\n if (isNumber(group)) {\r\n arr[group] = name;\r\n }\r\n else if (group === true && !arr[0]) {\r\n arr[0] = name;\r\n }\r\n return arr;\r\n }, [])\r\n .filter(group => group !== undefined);\r\n }\r\n initFields(fields) {\r\n fields.forEach(field => {\r\n const { name } = field;\r\n if (name) {\r\n this.addField(name, field);\r\n }\r\n else {\r\n warning(false, 'DataSet create field failed. Please check if property name is exists on field.');\r\n }\r\n });\r\n }\r\n /*\r\n * 增加新字段\r\n * @param name 字段名\r\n * @param field 字段属性\r\n * @return 新增字段\r\n */\r\n addField(name, fieldProps = {}) {\r\n return processIntlField(name, fieldProps, (langName, langProps) => {\r\n const field = new Field(langProps, this);\r\n this.fields.set(langName, field);\r\n return field;\r\n }, this);\r\n }\r\n commitData(allData, total) {\r\n const { autoQueryAfterSubmit, primaryKey } = this.props;\r\n // 若有响应数据,进行数据回写\r\n if (allData.length) {\r\n const statusKey = getConfig('statusKey');\r\n const status = getConfig('status');\r\n const restCreatedData = [];\r\n const restUpdatedData = [];\r\n allData.forEach(data => {\r\n const dataStatus = data[statusKey];\r\n // 若有数据中含有__id,根据__id回写记录,否则根据主键回写非新增的记录\r\n const record = data.__id\r\n ? this.findRecordById(data.__id)\r\n : primaryKey &&\r\n dataStatus !== status[RecordStatus.add] &&\r\n this.records.find(r => r.get(primaryKey) === data[primaryKey]);\r\n if (record) {\r\n record.commit(data, this);\r\n }\r\n else if (dataStatus === status[RecordStatus.add]) {\r\n restCreatedData.push(data);\r\n }\r\n else if (dataStatus === status[RecordStatus.update]) {\r\n restUpdatedData.push(data);\r\n }\r\n });\r\n const { created, updated, destroyed } = this;\r\n // 没有回写成功的新增数据按顺序回写\r\n if (restCreatedData.length === created.length) {\r\n created.forEach((r, index) => r.commit(restCreatedData[index], this));\r\n }\r\n else if (autoQueryAfterSubmit) {\r\n // 若有新增数据没有回写成功, 必须重新查询来获取主键\r\n this.query();\r\n return this;\r\n }\r\n // 剩下未回写的非新增数据使用原数据进行回写\r\n if (restUpdatedData.length === updated.length) {\r\n updated.forEach((r, index) => r.commit(restUpdatedData[index], this));\r\n }\r\n else {\r\n updated.forEach(r => r.commit(r.toData(), this));\r\n }\r\n destroyed.forEach(r => r.commit(undefined, this));\r\n if (isNumber(total)) {\r\n this.totalCount = total;\r\n }\r\n }\r\n else if (autoQueryAfterSubmit) {\r\n // 无回写数据时自动进行查询\r\n warning(false, `The primary key which generated by database is not exists in each created records,\nbecause of no data \\`${this.dataKey}\\` from the response by \\`submit\\` or \\`delete\\` method.\nThen the query method will be auto invoke.`);\r\n this.query();\r\n }\r\n return this;\r\n }\r\n /**\r\n * 数据集头行级联绑定\r\n * @param ds 头数据集\r\n * @param name 头数据集字段名\r\n */\r\n bind(ds, name) {\r\n if (!name) {\r\n warning(false, 'DataSet: cascade binding need a name');\r\n return;\r\n }\r\n if (ds.children[name]) {\r\n warning(false, `DataSet: duplicate cascade binding of name<${name}>`);\r\n return;\r\n }\r\n ds.children[name] = this;\r\n this.parent = ds;\r\n const { current } = ds;\r\n if (current) {\r\n ds.syncChild(this, current, name);\r\n }\r\n else if (this.length) {\r\n this.loadData([]);\r\n }\r\n }\r\n /**\r\n * 设置查询的参数.\r\n * @param {string} para 参数名.\r\n * @param {any} value 参数值.\r\n */\r\n setQueryParameter(para, value) {\r\n if (isNil(value)) {\r\n delete this.queryParameter[para];\r\n }\r\n else {\r\n this.queryParameter[para] = value;\r\n }\r\n }\r\n loadData(allData = [], total) {\r\n this.storeSelected();\r\n const { paging, pageSize, props: { autoLocateFirst, idField, parentField }, } = this;\r\n allData = paging ? allData.slice(0, pageSize) : allData;\r\n this.fireEvent(DataSetEvents.beforeLoad, { dataSet: this, data: allData });\r\n this.originalData = this.processData(allData);\r\n this.records = this.originalData;\r\n if (total !== undefined && paging === true) {\r\n this.totalCount = total;\r\n }\r\n else {\r\n this.totalCount = allData.length;\r\n }\r\n this.releaseCachedSelected();\r\n const nextRecord = autoLocateFirst && (idField && parentField ? this.getFromTree(0) : this.get(0));\r\n if (nextRecord) {\r\n nextRecord.isCurrent = true;\r\n }\r\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record: nextRecord });\r\n this.fireEvent(DataSetEvents.load, { dataSet: this });\r\n return this;\r\n }\r\n processData(allData) {\r\n return allData.map(data => {\r\n const record = data instanceof Record ? ((data.dataSet = this), data) : new Record(data, this);\r\n record.status = RecordStatus.sync;\r\n return record;\r\n });\r\n }\r\n deleteRecord(record) {\r\n if (record) {\r\n record.isSelected = false;\r\n record.isCurrent = false;\r\n const { selected, records } = this;\r\n const selectedIndex = selected.indexOf(record);\r\n if (selectedIndex !== -1) {\r\n selected.splice(selectedIndex, 1);\r\n }\r\n if (record.status === RecordStatus.add) {\r\n const index = records.indexOf(record);\r\n if (index !== -1) {\r\n records.splice(index, 1);\r\n }\r\n }\r\n else if (record.status !== RecordStatus.delete) {\r\n record.status = RecordStatus.delete;\r\n }\r\n }\r\n return record;\r\n }\r\n findInAllPage(index) {\r\n const { paging } = this;\r\n if (paging === true) {\r\n index = this.getIndexInCurrentPage(index);\r\n }\r\n return this.data[index];\r\n }\r\n getIndexInCurrentPage(index = this.currentIndex) {\r\n const { currentPage, pageSize } = this;\r\n return index - (currentPage - 1) * pageSize;\r\n }\r\n transferRecords(data) {\r\n return data.map(record => {\r\n const { dataSet } = record;\r\n if (dataSet === this) {\r\n const { records } = this;\r\n const index = records.indexOf(record);\r\n if (index !== -1) {\r\n records.splice(index, 1);\r\n }\r\n return record;\r\n }\r\n if (dataSet) {\r\n dataSet.remove(record);\r\n record = new Record(record.data, this);\r\n }\r\n record.dataSet = this;\r\n record.status = RecordStatus.add;\r\n return record;\r\n });\r\n }\r\n initChildren(children) {\r\n if (isArray(children)) {\r\n children.forEach(childDs => {\r\n if (childDs instanceof DataSet) {\r\n const { name } = childDs;\r\n if (name) {\r\n childDs.bind(this, name);\r\n }\r\n else {\r\n warning(false, 'cascade DataSet need a name');\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n Object.keys(children).forEach(childName => {\r\n const child = children[childName];\r\n if (child instanceof DataSet) {\r\n child.bind(this, childName);\r\n }\r\n else {\r\n warning(false, `cascade child<${childName}> must be instance of DataSet.`);\r\n }\r\n });\r\n }\r\n }\r\n initQueryDataSet(queryDataSet, queryFields) {\r\n if (queryFields) {\r\n queryDataSet = new DataSet({\r\n fields: queryFields,\r\n });\r\n }\r\n if (queryDataSet) {\r\n this.queryDataSet = queryDataSet;\r\n }\r\n }\r\n initEvents(events) {\r\n Object.keys(events).forEach(event => this.addEventListener(event, events[event]));\r\n }\r\n loadDataFromResponse(resp) {\r\n if (resp) {\r\n const { dataKey, totalKey } = this;\r\n const data = generateResponseData(resp, dataKey);\r\n const total = ObjectChainValue.get(resp, totalKey);\r\n this.loadData(data, total);\r\n }\r\n return this;\r\n }\r\n // private groupData(allData: object[]): object[] {\r\n // return this.getGroups().reverse()\r\n // .reduce((arr, name) => arr.sort(\r\n // (item1, item2) => String(item1[name]).localeCompare(String(item2[name])),\r\n // ), allData);\r\n // }\r\n async write(records, isSelect, noCascade) {\r\n if (records.length) {\r\n const [created, updated, destroyed] = prepareSubmitData(records, isSelect, noCascade);\r\n const axiosConfigs = [];\r\n const submitData = [\r\n ...prepareForSubmit('create', created, axiosConfigs, this),\r\n ...prepareForSubmit('update', updated, axiosConfigs, this),\r\n ...prepareForSubmit('destroy', destroyed, axiosConfigs, this),\r\n ];\r\n prepareForSubmit('submit', submitData, axiosConfigs, this);\r\n if (axiosConfigs.length) {\r\n try {\r\n this.changeSubmitStatus(DataSetStatus.submitting);\r\n const submitEventResult = await this.fireEvent(DataSetEvents.submit, {\r\n dataSet: this,\r\n data: [...created, ...updated, ...destroyed],\r\n });\r\n if (submitEventResult) {\r\n const result = await axiosStatic.all(axiosConfigs.map(config => this.axios(config)));\r\n return this.handleSubmitSuccess(result);\r\n }\r\n }\r\n catch (e) {\r\n this.handleSubmitFail(e);\r\n throw new DataSetRequestError(e);\r\n }\r\n finally {\r\n this.changeSubmitStatus(DataSetStatus.ready);\r\n }\r\n }\r\n }\r\n }\r\n async read(page = 1) {\r\n if (this.checkReadable(this.parent)) {\r\n try {\r\n this.changeStatus(DataSetStatus.loading);\r\n const data = await this.generateQueryParameter();\r\n const newConfig = axiosConfigAdapter('read', this, data, this.generateQueryString(page));\r\n if (newConfig.url) {\r\n const queryEventResult = await this.fireEvent(DataSetEvents.query, {\r\n dataSet: this,\r\n params: newConfig.params,\r\n data: newConfig.data,\r\n });\r\n if (queryEventResult) {\r\n const result = await this.axios(newConfig);\r\n runInAction(() => {\r\n this.currentPage = page;\r\n });\r\n return this.handleLoadSuccess(result);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.handleLoadFail(e);\r\n throw new DataSetRequestError(e);\r\n }\r\n finally {\r\n this.changeStatus(DataSetStatus.ready);\r\n }\r\n }\r\n }\r\n storeSelected() {\r\n if (this.cacheSelectionKeys) {\r\n this.setCachedSelected([\r\n ...this.cachedSelected.filter(record => record.isSelected),\r\n ...this.currentSelected.map(record => {\r\n record.isCurrent = false;\r\n record.isCached = true;\r\n return record;\r\n }),\r\n ]);\r\n }\r\n }\r\n releaseCachedSelected() {\r\n const { cacheSelectionKeys, cachedSelected } = this;\r\n if (cacheSelectionKeys) {\r\n this.data.forEach(record => {\r\n const index = cachedSelected.findIndex(cached => cacheSelectionKeys.every(key => record.get(key) === cached.get(key)));\r\n if (index !== -1) {\r\n record.isSelected = true;\r\n cachedSelected.splice(index, 1);\r\n }\r\n });\r\n }\r\n }\r\n changeStatus(status) {\r\n this.status = status;\r\n }\r\n changeSubmitStatus(status) {\r\n this.status = status;\r\n Object.values(this.children).forEach(ds => {\r\n if (ds instanceof DataSet) {\r\n ds.changeSubmitStatus(status);\r\n }\r\n });\r\n }\r\n handleCascade({ dataSet, record, previous, }) {\r\n if (dataSet.hasChildren) {\r\n dataSet.syncChildren(record, previous);\r\n }\r\n }\r\n handleLoadSuccess(resp) {\r\n const { loadSuccess = defaultFeedback.loadSuccess } = this.feedback;\r\n loadSuccess(resp);\r\n return resp;\r\n }\r\n handleLoadFail(e) {\r\n const { loadFailed = defaultFeedback.loadFailed } = this.feedback;\r\n this.fireEvent(DataSetEvents.loadFailed, { dataSet: this });\r\n loadFailed(e);\r\n }\r\n handleSubmitSuccess(resp) {\r\n const { dataKey, totalKey } = this;\r\n const { submitSuccess = defaultFeedback.submitSuccess } = this.feedback;\r\n const data = [];\r\n let total;\r\n resp.forEach(item => {\r\n data.push(...generateResponseData(item, dataKey));\r\n if (totalKey && isObject(item)) {\r\n const myTotal = ObjectChainValue.get(item, totalKey);\r\n if (!isNil(myTotal)) {\r\n total = myTotal;\r\n }\r\n }\r\n });\r\n const result = dataKey ? { success: true } : data;\r\n if (dataKey) {\r\n ObjectChainValue.set(result, dataKey, data);\r\n if (totalKey) {\r\n ObjectChainValue.set(result, totalKey, total);\r\n }\r\n }\r\n this.fireEvent(DataSetEvents.submitSuccess, { dataSet: this, data: result });\r\n this.commitData(data, total);\r\n submitSuccess(result);\r\n return result;\r\n }\r\n handleSubmitFail(e) {\r\n const { submitFailed = defaultFeedback.submitFailed } = this.feedback;\r\n this.fireEvent(DataSetEvents.submitFailed, { dataSet: this });\r\n submitFailed(e);\r\n this.destroyed.forEach(record => record.reset());\r\n }\r\n syncChildren(current, previous) {\r\n const { children } = this;\r\n const keys = Object.keys(children);\r\n const remoteKeys = [];\r\n keys.forEach(childName => {\r\n const ds = children[childName];\r\n if (previous && ds.status === DataSetStatus.ready && previous.dataSetSnapshot[childName]) {\r\n previous.dataSetSnapshot[childName] = ds.snapshot();\r\n }\r\n if (current) {\r\n const snapshot = current.dataSetSnapshot[childName];\r\n const cascadeRecords = current.cascadeRecordsMap[childName];\r\n if (snapshot instanceof DataSetSnapshot) {\r\n ds.restore(snapshot);\r\n }\r\n else if (cascadeRecords) {\r\n delete current.cascadeRecordsMap[childName];\r\n ds.loadData(cascadeRecords);\r\n }\r\n else if (!this.syncChild(ds, current, childName, true)) {\r\n ds.loadData([]);\r\n remoteKeys.push(childName);\r\n }\r\n }\r\n else {\r\n ds.loadData([]);\r\n }\r\n });\r\n if (current && remoteKeys.length) {\r\n this.syncChildrenRemote(remoteKeys, current);\r\n }\r\n }\r\n syncChild(ds, currentRecord, childName, onlyClient) {\r\n const childRecords = currentRecord.get(childName);\r\n if (currentRecord.status === RecordStatus.add || isArrayLike(childRecords)) {\r\n ds.clearCachedSelected();\r\n ds.loadData(childRecords ? childRecords.slice() : []);\r\n if (currentRecord.status === RecordStatus.add) {\r\n if (ds.length) {\r\n ds.forEach(record => (record.status = RecordStatus.add));\r\n }\r\n else if (ds.props.autoCreate) {\r\n ds.create();\r\n }\r\n }\r\n currentRecord.dataSetSnapshot[childName] = ds.snapshot();\r\n return true;\r\n }\r\n if (!onlyClient) {\r\n const oldSnapshot = ds.snapshot();\r\n ds.read(1).then(resp => {\r\n const { current } = this;\r\n if (current !== currentRecord) {\r\n ds = new DataSet().restore(oldSnapshot);\r\n }\r\n ds.clearCachedSelected();\r\n currentRecord.dataSetSnapshot[childName] = ds.loadDataFromResponse(resp).snapshot();\r\n });\r\n }\r\n return false;\r\n }\r\n checkReadable(parent) {\r\n if (parent) {\r\n const { current } = parent;\r\n if (!current || current.status === RecordStatus.add) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n generatePageQueryString(page) {\r\n const { paging, pageSize } = this;\r\n if (paging === true) {\r\n return { page, pagesize: pageSize };\r\n }\r\n return {};\r\n }\r\n generateOrderQueryString() {\r\n const { fields } = this;\r\n const orderField = getOrderFields(fields)[0];\r\n if (orderField) {\r\n const param = { sortname: orderField.name, sortorder: orderField.order };\r\n if (orderField.type === FieldType.object) {\r\n const bindField = findBindFieldBy(orderField, this.fields, 'valueField');\r\n if (bindField) {\r\n param.sortname = bindField.name;\r\n }\r\n }\r\n return param;\r\n }\r\n return {};\r\n }\r\n generateQueryString(page) {\r\n const order = this.generateOrderQueryString();\r\n const pageQuery = this.generatePageQueryString(page);\r\n const generatePageQuery = getConfig('generatePageQuery');\r\n if (typeof generatePageQuery === 'function') {\r\n return generatePageQuery({\r\n sortName: order.sortname,\r\n sortOrder: order.sortorder,\r\n pageSize: pageQuery.pagesize,\r\n page: pageQuery.page,\r\n });\r\n }\r\n return { ...pageQuery, ...order };\r\n }\r\n async generateQueryParameter() {\r\n const { parent, queryDataSet } = this;\r\n let parentParam = {};\r\n if (parent) {\r\n const { props: { primaryKey }, current, } = parent;\r\n if (current) {\r\n if (primaryKey) {\r\n parentParam[primaryKey] = current.get(primaryKey);\r\n }\r\n else {\r\n parentParam = current.toData();\r\n }\r\n }\r\n }\r\n if (queryDataSet) {\r\n await queryDataSet.ready();\r\n if (!(await queryDataSet.validate())) {\r\n throw new Error($l('DataSet', 'invalid_query_dataset'));\r\n }\r\n }\r\n let data = {};\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n data = current.toJSONData();\r\n delete data.__dirty;\r\n delete data.__id;\r\n delete data[getConfig('statusKey')];\r\n }\r\n }\r\n data = {\r\n ...data,\r\n ...this.queryParameter,\r\n ...parentParam,\r\n };\r\n return Object.keys(data).reduce((p, key) => {\r\n const value = data[key];\r\n if (!isEmpty(value)) {\r\n p[key] = value;\r\n }\r\n return p;\r\n }, {});\r\n }\r\n}\r\nDataSet.defaultProps = {\r\n autoCreate: false,\r\n autoQuery: false,\r\n autoQueryAfterSubmit: true,\r\n autoLocateFirst: true,\r\n selection: DataSetSelection.multiple,\r\n modifiedCheck: true,\r\n pageSize: 10,\r\n paging: true,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"name\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"records\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"fields\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"props\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"pageSize\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"totalCount\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"status\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"currentPage\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"selection\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DataSet.prototype, \"cachedSelected\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"axios\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"dataKey\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"totalKey\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"lang\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"queryUrl\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"submitUrl\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"tlsUrl\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"validateUrl\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"exportUrl\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"transport\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"feedback\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"data\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"dirtyRecords\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"created\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"updated\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"destroyed\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"selected\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"currentSelected\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"totalPage\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"currentIndex\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"length\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"treeRecords\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"treeData\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"paging\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"current\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"uniqueKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"cacheSelectionKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSet.prototype, \"all\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"restore\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"reset\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"remove\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"removeAll\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"deleteAll\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"push\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"unshift\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"pop\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"shift\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"splice\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"reverse\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"sort\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"select\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"unSelect\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"selectAll\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"unSelectAll\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"setCachedSelected\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"addField\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"commitData\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"loadData\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"storeSelected\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"releaseCachedSelected\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"changeStatus\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"changeSubmitStatus\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DataSet.prototype, \"syncChild\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport { computed } from 'mobx';\r\nimport ViewComponent from '../core/ViewComponent';\r\nexport default class DataSetComponent extends ViewComponent {\r\n get dataSet() {\r\n return this.observableProps.dataSet;\r\n }\r\n get lang() {\r\n const { dataSet } = this;\r\n if (dataSet && dataSet.lang) {\r\n return dataSet.lang;\r\n }\r\n return super.lang;\r\n }\r\n getObservableProps(props, _context) {\r\n return {\r\n dataSet: props.dataSet,\r\n };\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['dataSet']);\r\n }\r\n}\r\nDataSetComponent.propTypes = {\r\n dataSet: PropTypes.object,\r\n ...ViewComponent.propTypes,\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], DataSetComponent.prototype, \"dataSet\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DataSetComponent.prototype, \"lang\", null);\r\n","export default class DataSetRequestError extends Error {\r\n constructor(error) {\r\n super(error.message);\r\n this.name = error.name;\r\n this.stack = error.stack;\r\n }\r\n}\r\n","export default class DataSetSnapshot {\r\n constructor({ records, originalData, totalCount, currentPage, pageSize, cachedSelected, }) {\r\n this.records = records;\r\n this.originalData = originalData;\r\n this.totalCount = totalCount;\r\n this.currentPage = currentPage;\r\n this.pageSize = pageSize;\r\n this.cachedSelected = cachedSelected;\r\n }\r\n}\r\n","import message from '../message';\r\nimport exception from '../_util/exception';\r\nimport { $l } from '../locale-context';\r\nconst defaultFeedback = {\r\n loadSuccess(_result) { },\r\n loadFailed(error) {\r\n message.error(exception(error, $l('DataSet', 'query_failure')));\r\n },\r\n submitSuccess(_result) {\r\n message.success($l('DataSet', 'submit_success'));\r\n },\r\n submitFailed(error) {\r\n message.error(exception(error, $l('DataSet', 'submit_failure')));\r\n },\r\n};\r\nexport default defaultFeedback;\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, computed, get, observable, runInAction, set, toJS } from 'mobx';\r\nimport isEqual from 'lodash/isEqual';\r\nimport isObject from 'lodash/isObject';\r\nimport merge from 'lodash/merge';\r\nimport defer from 'lodash/defer';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport Validator from '../validator/Validator';\r\nimport { DataSetEvents, FieldTrim, FieldType } from './enum';\r\nimport lookupStore from '../stores/LookupCodeStore';\r\nimport lovCodeStore from '../stores/LovCodeStore';\r\nimport localeContext from '../locale-context';\r\nimport { findBindFields, getLimit, processValue } from './utils';\r\nimport isSame from '../_util/isSame';\r\nimport PromiseQueue from '../_util/PromiseQueue';\r\nimport isSameLike from '../_util/isSameLike';\r\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\r\nimport { buildURLWithAxiosConfig } from '../axios/utils';\r\nimport { getDateFormatByField } from 'choerodon-ui/pro/lib/field/utils';\r\nexport default class Field {\r\n constructor(props = {}, dataSet, record) {\r\n this.validator = new Validator(this);\r\n this.pending = new PromiseQueue();\r\n this.lastDynamicProps = {};\r\n this.isDynamicPropsComputing = false;\r\n runInAction(() => {\r\n this.dataSet = dataSet;\r\n this.record = record;\r\n this.pristineProps = props;\r\n this.props = props;\r\n this.fetchLookup();\r\n this.fetchLovConfig();\r\n });\r\n }\r\n get lookup() {\r\n const lookup = this.get('lookup');\r\n if (lookup) {\r\n const lookupData = this.get('lookupData') || [];\r\n return lookup.concat(lookupData);\r\n }\r\n return undefined;\r\n }\r\n get intlFields() {\r\n const { record, type, name } = this;\r\n const tlsKey = getConfig('tlsKey');\r\n if (type === FieldType.intl && record && record.get(tlsKey)) {\r\n return Object.keys(localeContext.supports).reduce((arr, lang) => {\r\n const field = record.getField(`${tlsKey}.${name}.${lang}`);\r\n if (field) {\r\n arr.push(field);\r\n }\r\n return arr;\r\n }, []);\r\n }\r\n return [];\r\n }\r\n get dirty() {\r\n const { record, name, intlFields } = this;\r\n if (intlFields.length) {\r\n return intlFields.some(langField => langField.dirty);\r\n }\r\n if (record) {\r\n const pristineValue = toJS(record.getPristineValue(name));\r\n const value = toJS(record.get(name));\r\n if (isObject(pristineValue) && isObject(value)) {\r\n if (isEqual(pristineValue, value)) {\r\n return false;\r\n }\r\n try {\r\n const fields = findBindFields(this, record.fields, true);\r\n if (fields.length) {\r\n return fields.some(({ dirty }) => dirty);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n return true;\r\n }\r\n }\r\n return !isSame(pristineValue, value);\r\n }\r\n return false;\r\n }\r\n get name() {\r\n return this.props.name;\r\n }\r\n get order() {\r\n return this.get('order');\r\n }\r\n set order(order) {\r\n this.set('order', order);\r\n }\r\n get valid() {\r\n const { intlFields, validator: { validity: { valid }, }, } = this;\r\n if (valid && intlFields.length) {\r\n return intlFields.every(field => field.valid);\r\n }\r\n return valid;\r\n }\r\n get validationMessage() {\r\n return this.validator.validationMessage;\r\n }\r\n /**\r\n * 获取所有属性\r\n * @return 属性对象\r\n */\r\n getProps() {\r\n const dsField = this.findDataSetField();\r\n return merge({ lookupUrl: getConfig('lookupUrl') }, Field.defaultProps, dsField && dsField.props, this.props);\r\n }\r\n /**\r\n * 根据属性名获取属性值\r\n * @param propsName 属性名\r\n * @return {any}\r\n */\r\n get(propsName) {\r\n if (propsName === 'textField' || propsName === 'valueField') {\r\n const lovCode = this.get('lovCode');\r\n if (lovCode) {\r\n const config = lovCodeStore.getConfig(lovCode);\r\n if (config && config[propsName]) {\r\n return config[propsName];\r\n }\r\n }\r\n }\r\n if (propsName !== 'dynamicProps') {\r\n const dynamicProps = this.get('dynamicProps');\r\n if (dynamicProps) {\r\n if (typeof dynamicProps === 'function') {\r\n warning(false, `\nThe dynamicProps hook will be deprecated. Please use dynamicProps map.\nFor e.g,\nBad case:\ndynamicProps({ record }) {\n return {\n bind: record.get('xx'),\n label: record.get('yy'),\n }\n}\nGood case:\ndynamicProps = {\n bind({ record }) {\n return record.get('xx')\n },\n label({ record }) {\n return record.get('yy'),\n }\n}`);\r\n const props = this.executeDynamicProps(dynamicProps);\r\n if (props && propsName in props) {\r\n const prop = props[propsName];\r\n this.checkDynamicProp(propsName, prop);\r\n return prop;\r\n }\r\n }\r\n else {\r\n const dynamicProp = dynamicProps[propsName];\r\n if (typeof dynamicProp === 'function') {\r\n const prop = this.executeDynamicProps(dynamicProp);\r\n if (prop !== undefined) {\r\n this.checkDynamicProp(propsName, prop);\r\n return prop;\r\n }\r\n }\r\n }\r\n this.checkDynamicProp(propsName, undefined);\r\n }\r\n }\r\n const value = get(this.props, propsName);\r\n if (value !== undefined) {\r\n return value;\r\n }\r\n const dsField = this.findDataSetField();\r\n if (dsField) {\r\n const dsValue = dsField.get(propsName);\r\n if (dsValue !== undefined) {\r\n return dsValue;\r\n }\r\n }\r\n if (propsName === 'lookupUrl') {\r\n return getConfig(propsName);\r\n }\r\n return Field.defaultProps[propsName];\r\n }\r\n /**\r\n * 设置属性值\r\n * @param propsName 属性名\r\n * @param value 属性值\r\n * @return {any}\r\n */\r\n set(propsName, value) {\r\n const oldValue = this.get(propsName);\r\n if (oldValue !== value) {\r\n set(this.props, propsName, value);\r\n const { record, dataSet, name } = this;\r\n if (record) {\r\n if (propsName === 'type') {\r\n record.set(name, processValue(record.get(name), this));\r\n }\r\n }\r\n if (dataSet) {\r\n dataSet.fireEvent(DataSetEvents.fieldChange, {\r\n dataSet,\r\n record,\r\n name,\r\n field: this,\r\n propsName,\r\n value,\r\n oldValue,\r\n });\r\n }\r\n this.handlePropChange(propsName, value, oldValue);\r\n }\r\n }\r\n /**\r\n * 根据lookup值获取lookup对象\r\n * @param value lookup值\r\n * @return {object}\r\n */\r\n getLookupData(value = this.getValue()) {\r\n const valueField = this.get('valueField');\r\n const data = {};\r\n if (this.lookup) {\r\n return this.lookup.find(obj => isSameLike(get(obj, valueField), value)) || data;\r\n }\r\n return data;\r\n }\r\n getValue() {\r\n const { dataSet, name } = this;\r\n const record = this.record || (dataSet && dataSet.current);\r\n if (record) {\r\n return record.get(name);\r\n }\r\n }\r\n /**\r\n * 根据lookup值获取lookup含义\r\n * @param value lookup值\r\n * @param boolean showValueIfNotFound\r\n * @return {string}\r\n */\r\n getText(value = this.getValue(), showValueIfNotFound) {\r\n const textField = this.get('textField');\r\n const valueField = this.get('valueField');\r\n const { lookup } = this;\r\n if (lookup) {\r\n const found = lookup.find(obj => isSameLike(get(obj, valueField), value));\r\n if (found) {\r\n return get(found, textField);\r\n }\r\n if (showValueIfNotFound) {\r\n return value;\r\n }\r\n return undefined;\r\n }\r\n const options = this.getOptions();\r\n if (options) {\r\n const found = options.find(record => record.get(valueField) === value);\r\n if (found) {\r\n return found.get(textField);\r\n }\r\n }\r\n if (textField && isObject(value)) {\r\n return get(value, textField);\r\n }\r\n return value;\r\n }\r\n setOptions(options) {\r\n this.set('options', options);\r\n }\r\n getOptions() {\r\n return this.get('options');\r\n }\r\n /**\r\n * 重置设置的属性\r\n */\r\n reset() {\r\n this.props = this.pristineProps;\r\n }\r\n commit() {\r\n this.validator.reset();\r\n }\r\n /**\r\n * 是否必选\r\n * @return true | false\r\n */\r\n get required() {\r\n return this.get('required');\r\n }\r\n /**\r\n * 设置是否必选\r\n * @param required 是否必选\r\n */\r\n set required(required) {\r\n this.set('required', required);\r\n }\r\n /**\r\n * 是否只读\r\n * @return true | false\r\n */\r\n get readOnly() {\r\n return this.get('readOnly');\r\n }\r\n /**\r\n * 设置是否只读\r\n * @param readOnly 是否只读\r\n */\r\n set readOnly(readOnly) {\r\n this.set('readOnly', readOnly);\r\n }\r\n /**\r\n * 获取字段类型\r\n * @return 获取字段类型\r\n */\r\n get type() {\r\n return this.get('type');\r\n }\r\n /**\r\n * 设置字段类型\r\n * @param type 字段类型\r\n */\r\n set type(type) {\r\n this.set('type', type);\r\n }\r\n /**\r\n * 设置Lov的查询参数\r\n * @param {String} name\r\n * @param {Object} value\r\n */\r\n setLovPara(name, value) {\r\n const p = toJS(this.get('lovPara')) || {};\r\n if (value === null) {\r\n delete p[name];\r\n }\r\n else {\r\n p[name] = value;\r\n }\r\n this.set('lovPara', p);\r\n }\r\n getValidatorProps() {\r\n const { record, dataSet, name, type, required } = this;\r\n if (record) {\r\n const customValidator = this.get('validator');\r\n const max = this.get('max');\r\n const min = this.get('min');\r\n const format = this.get('format') || getDateFormatByField(this, this.type);\r\n const pattern = this.get('pattern');\r\n const step = this.get('step');\r\n const minLength = this.get('minLength');\r\n const maxLength = this.get('maxLength');\r\n const label = this.get('label');\r\n const range = this.get('range');\r\n const multiple = this.get('multiple');\r\n const unique = this.get('unique');\r\n const defaultValidationMessages = this.get('defaultValidationMessages');\r\n return {\r\n type,\r\n required,\r\n record,\r\n dataSet,\r\n name,\r\n unique,\r\n customValidator,\r\n pattern,\r\n max: getLimit(max, record),\r\n min: getLimit(min, record),\r\n step,\r\n minLength,\r\n maxLength,\r\n label,\r\n range,\r\n multiple,\r\n format,\r\n defaultValidationMessages,\r\n };\r\n }\r\n }\r\n /**\r\n * 校验字段值\r\n * 只有通过record.getField()获取的field才能校验\r\n * @return true | false\r\n */\r\n async checkValidity() {\r\n let valid = true;\r\n const { record, validator, name } = this;\r\n if (record) {\r\n validator.reset();\r\n const value = record.get(name);\r\n valid = await validator.checkValidity(value);\r\n }\r\n return valid;\r\n }\r\n /**\r\n * 请求lookup值, 如有缓存值直接获得。\r\n * @return Promise<object[]>\r\n */\r\n async fetchLookup() {\r\n const axiosConfig = lookupStore.getAxiosConfig(this);\r\n const dsField = this.findDataSetField();\r\n if (dsField) {\r\n const dsConfig = lookupStore.getAxiosConfig(dsField);\r\n if (dsConfig.url &&\r\n buildURLWithAxiosConfig(dsConfig) === buildURLWithAxiosConfig(axiosConfig)) {\r\n this.set('lookup', undefined);\r\n return dsField.get('lookup');\r\n }\r\n }\r\n if (axiosConfig.url) {\r\n const result = await this.pending.add(lookupStore.fetchLookupData(axiosConfig));\r\n if (result) {\r\n runInAction(() => {\r\n const { lookup } = this;\r\n this.set('lookup', result);\r\n const value = this.getValue();\r\n const valueField = this.get('valueField');\r\n if (value && valueField && lookup) {\r\n this.set('lookupData', [].concat(value).reduce((lookupData, v) => {\r\n const found = lookup.find(item => isSameLike(item[valueField], v));\r\n if (found) {\r\n lookupData.push(found);\r\n }\r\n return lookupData;\r\n }, []));\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n }\r\n fetchLovConfig() {\r\n const lovCode = this.get('lovCode');\r\n if (lovCode) {\r\n this.pending.add(lovCodeStore.fetchConfig(lovCode, this));\r\n }\r\n }\r\n isValid() {\r\n return this.valid;\r\n }\r\n getValidationMessage() {\r\n return this.validator.validationMessage;\r\n }\r\n getValidityState() {\r\n return this.validator.validity;\r\n }\r\n getValidationErrorValues() {\r\n return this.validator.validationResults;\r\n }\r\n ready() {\r\n const options = this.getOptions();\r\n return Promise.all([this.pending.ready(), options && options.ready()]);\r\n }\r\n findDataSetField() {\r\n const { dataSet, name, record } = this;\r\n if (record && dataSet && name) {\r\n return dataSet.getField(name);\r\n }\r\n }\r\n checkDynamicProp(propsName, newProp) {\r\n // if (propsName in this.lastDynamicProps) {\r\n const oldProp = this.lastDynamicProps[propsName];\r\n if (oldProp !== newProp) {\r\n defer(action(() => {\r\n if (propsName in this.validator.props || propsName === 'validator') {\r\n this.validator.reset();\r\n // this.checkValidity();\r\n }\r\n this.handlePropChange(propsName, newProp, oldProp);\r\n }));\r\n }\r\n // }\r\n this.lastDynamicProps[propsName] = newProp;\r\n }\r\n handlePropChange(propsName, newProp, oldProp) {\r\n if (propsName === 'bind' && this.type !== FieldType.intl) {\r\n const { record } = this;\r\n if (record && !this.dirty) {\r\n if (newProp) {\r\n record.init(newProp, ObjectChainValue.get(record.data, oldProp || this.name));\r\n }\r\n if (oldProp) {\r\n record.init(oldProp, undefined);\r\n }\r\n }\r\n return;\r\n }\r\n if ([\r\n 'type',\r\n 'lookupUrl',\r\n 'lookupCode',\r\n 'lookupAxiosConfig',\r\n 'lovCode',\r\n 'lovQueryAxiosConfig',\r\n 'lovPara',\r\n 'cascadeMap',\r\n 'lovQueryUrl',\r\n ].includes(propsName)) {\r\n this.fetchLookup();\r\n }\r\n if (['lovCode', 'lovDefineAxiosConfig', 'lovDefineUrl'].includes(propsName)) {\r\n this.fetchLovConfig();\r\n }\r\n }\r\n executeDynamicProps(dynamicProps) {\r\n const { dataSet, name, record } = this;\r\n if (this.isDynamicPropsComputing) {\r\n warning(false, `Cycle dynamicProps execution of field<${name}>.`);\r\n }\r\n else if (dataSet && record) {\r\n this.isDynamicPropsComputing = true;\r\n const props = dynamicProps({ dataSet, record, name });\r\n this.isDynamicPropsComputing = false;\r\n return props;\r\n }\r\n }\r\n}\r\nField.defaultProps = {\r\n type: FieldType.auto,\r\n required: false,\r\n readOnly: false,\r\n group: false,\r\n textField: 'meaning',\r\n valueField: 'value',\r\n trueValue: true,\r\n falseValue: false,\r\n trim: FieldTrim.both,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], Field.prototype, \"props\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Field.prototype, \"lookup\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Field.prototype, \"intlFields\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Field.prototype, \"dirty\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Field.prototype, \"valid\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Field.prototype, \"validationMessage\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Field.prototype, \"set\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Field.prototype, \"reset\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Field.prototype, \"commit\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Field.prototype, \"setLovPara\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Field.prototype, \"checkValidity\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, computed, isArrayLike, isObservableArray, observable, runInAction, set, toJS, } from 'mobx';\r\nimport isNil from 'lodash/isNil';\r\nimport isString from 'lodash/isString';\r\nimport isNumber from 'lodash/isNumber';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport DataSet from './DataSet';\r\nimport Field from './Field';\r\nimport { axiosConfigAdapter, checkFieldType, childrenInfoForDelete, findBindFields, generateResponseData, getRecordValue, processIntlField, processToJSON, processValue, } from './utils';\r\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\r\nimport localeContext from '../locale-context';\r\nimport { BooleanValue, DataSetEvents, FieldIgnore, FieldType, RecordStatus } from './enum';\r\nimport isSame from '../_util/isSame';\r\n/**\r\n * 记录ID生成器\r\n */\r\nconst IDGen = (function* (start) {\r\n while (true) {\r\n yield ++start;\r\n }\r\n})(1000);\r\nexport default class Record {\r\n constructor(data = {}, dataSet) {\r\n this.dataSetSnapshot = {};\r\n this.cascadeRecordsMap = {};\r\n runInAction(() => {\r\n const initData = toJS(data);\r\n this.fields = observable.map();\r\n this.status = RecordStatus.add;\r\n this.selectable = true;\r\n this.isSelected = false;\r\n this.isCurrent = false;\r\n this.isCached = false;\r\n this.id = IDGen.next().value;\r\n this.data = initData;\r\n if (dataSet) {\r\n this.dataSet = dataSet;\r\n const { fields } = dataSet;\r\n if (fields) {\r\n this.initFields(fields);\r\n }\r\n }\r\n const d = this.processData(initData);\r\n this.pristineData = d;\r\n this.data = d;\r\n });\r\n }\r\n get key() {\r\n if (this.status !== RecordStatus.add) {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { primaryKey } = dataSet.props;\r\n if (primaryKey) {\r\n const key = this.get(primaryKey);\r\n if (isString(key) || isNumber(key)) {\r\n return key;\r\n }\r\n }\r\n }\r\n }\r\n return this.id;\r\n }\r\n get index() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n return dataSet.indexOf(this);\r\n }\r\n return -1;\r\n }\r\n get isRemoved() {\r\n return this.status === RecordStatus.delete;\r\n }\r\n get isIndeterminate() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { checkField } = dataSet.props;\r\n if (checkField) {\r\n const field = this.getField(checkField);\r\n const trueValue = field ? field.get(BooleanValue.trueValue) : true;\r\n const { children } = this;\r\n if (children) {\r\n let checkedLength = 0;\r\n return (children.some(record => {\r\n if (record.isIndeterminate) {\r\n return true;\r\n }\r\n if (record.get(checkField) === trueValue) {\r\n checkedLength += 1;\r\n }\r\n return false;\r\n }) ||\r\n (checkedLength > 0 && checkedLength !== children.length));\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n get isExpanded() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { expandField } = dataSet.props;\r\n if (expandField) {\r\n const expanded = this.get(expandField);\r\n const field = this.getField(expandField);\r\n return expanded === (field ? field.get(BooleanValue.trueValue) : true);\r\n }\r\n }\r\n return false;\r\n }\r\n set isExpanded(expand) {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { expandField } = dataSet.props;\r\n if (expandField) {\r\n const field = this.getField(expandField);\r\n this.set(expandField, field\r\n ? expand\r\n ? field.get(BooleanValue.trueValue)\r\n : field.get(BooleanValue.falseValue)\r\n : expand);\r\n }\r\n }\r\n }\r\n get previousRecord() {\r\n const { parent, dataSet } = this;\r\n let children;\r\n if (parent) {\r\n children = parent.children;\r\n }\r\n else if (dataSet) {\r\n children = dataSet.treeData;\r\n }\r\n if (children) {\r\n return children[children.indexOf(this) - 1];\r\n }\r\n return undefined;\r\n }\r\n get nextRecord() {\r\n const { parent, dataSet } = this;\r\n let children;\r\n if (parent) {\r\n children = parent.children;\r\n }\r\n else if (dataSet) {\r\n children = dataSet.treeData;\r\n }\r\n if (children) {\r\n return children[children.indexOf(this) + 1];\r\n }\r\n return undefined;\r\n }\r\n get children() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { parentField, idField } = dataSet.props;\r\n if (parentField && idField) {\r\n const children = dataSet.records.filter(record => {\r\n const childParentId = record.get(parentField);\r\n const id = this.get(idField);\r\n return !isNil(childParentId) && !isNil(id) && childParentId === id;\r\n });\r\n return children.length > 0 ? children : undefined;\r\n }\r\n }\r\n return undefined;\r\n }\r\n get parent() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { parentField, idField } = dataSet.props;\r\n if (parentField && idField) {\r\n return dataSet.records.find(record => {\r\n const parentId = this.get(parentField);\r\n const id = record.get(idField);\r\n return !isNil(parentId) && !isNil(id) && parentId === id;\r\n });\r\n }\r\n }\r\n return undefined;\r\n }\r\n get level() {\r\n const { parent } = this;\r\n if (parent) {\r\n return parent.level + 1;\r\n }\r\n return 0;\r\n }\r\n get dirty() {\r\n const { fields, status } = this;\r\n return status === RecordStatus.update || [...fields.values()].some(({ dirty }) => dirty);\r\n }\r\n get cascadeParent() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { parent } = dataSet;\r\n if (parent) {\r\n const { children } = parent;\r\n const name = Object.keys(children).find(key => children[key] === dataSet);\r\n if (name) {\r\n return parent.find(record => (record.getCascadeRecords(name) || []).indexOf(this) !== -1);\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n toData() {\r\n const json = this.normalizeData();\r\n this.normalizeCascadeData(json, true);\r\n return json;\r\n }\r\n toJSONData(noCascade, isCascadeSelect) {\r\n const { status } = this;\r\n let dirty = status !== RecordStatus.sync;\r\n const json = this.normalizeData(true);\r\n if (!noCascade && this.normalizeCascadeData(json, false, isCascadeSelect)) {\r\n dirty = true;\r\n }\r\n return {\r\n ...json,\r\n __id: this.id,\r\n [getConfig('statusKey')]: getConfig('status')[status === RecordStatus.sync ? RecordStatus.update : status],\r\n __dirty: dirty,\r\n };\r\n }\r\n validate(all, noCascade) {\r\n const { dataSetSnapshot, isCurrent, dataSet, status, fields } = this;\r\n return Promise.all([\r\n ...[...fields.values()].map(field => all || status !== RecordStatus.sync ? field.checkValidity() : true),\r\n ...(noCascade\r\n ? []\r\n : Object.keys(dataSetSnapshot).map(key => (isCurrent && dataSet\r\n ? dataSet.children[key]\r\n : new DataSet().restore(dataSetSnapshot[key])).validate(all))),\r\n ]).then(results => results.every(result => result));\r\n }\r\n getField(fieldName) {\r\n if (fieldName) {\r\n return this.fields.get(fieldName);\r\n }\r\n }\r\n getCascadeRecords(fieldName) {\r\n const { dataSet } = this;\r\n if (fieldName && dataSet) {\r\n const childDataSet = dataSet.children[fieldName];\r\n if (childDataSet) {\r\n if (dataSet.current === this) {\r\n return childDataSet.slice();\r\n }\r\n const snapshot = this.dataSetSnapshot[fieldName];\r\n if (snapshot) {\r\n return snapshot.records.slice();\r\n }\r\n const cascadeRecords = this.cascadeRecordsMap[fieldName];\r\n if (cascadeRecords) {\r\n return cascadeRecords;\r\n }\r\n const data = this.get(fieldName);\r\n if (isObservableArray(data)) {\r\n const records = dataSet.processData(data);\r\n this.cascadeRecordsMap[fieldName] = records;\r\n return records;\r\n }\r\n }\r\n }\r\n }\r\n get(fieldName) {\r\n return getRecordValue.call(this, this.data, (child, checkField) => child.get(checkField), fieldName);\r\n }\r\n set(item, value) {\r\n if (isString(item)) {\r\n let fieldName = item;\r\n const oldName = fieldName;\r\n const field = this.getField(fieldName) || this.addField(fieldName);\r\n checkFieldType(value, field);\r\n const bind = field.get('bind');\r\n if (bind) {\r\n fieldName = bind;\r\n }\r\n const oldValue = toJS(this.get(fieldName));\r\n const newValue = processValue(value, field);\r\n if (!isSame(newValue, oldValue)) {\r\n const { fields } = this;\r\n ObjectChainValue.set(this.data, fieldName, newValue, fields);\r\n const pristineValue = this.getPristineValue(fieldName);\r\n if (isSame(pristineValue, newValue)) {\r\n if (this.status === RecordStatus.update && [...fields.values()].every(f => !f.dirty)) {\r\n this.status = RecordStatus.sync;\r\n }\r\n }\r\n else if (this.status === RecordStatus.sync) {\r\n this.status = RecordStatus.update;\r\n }\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n dataSet.fireEvent(DataSetEvents.update, {\r\n dataSet,\r\n record: this,\r\n name: oldName,\r\n value: newValue,\r\n oldValue,\r\n });\r\n const { checkField } = dataSet.props;\r\n if (checkField && (checkField === fieldName || checkField === oldName)) {\r\n const { children } = this;\r\n if (children) {\r\n children.forEach(record => record.set(fieldName, value));\r\n }\r\n }\r\n }\r\n }\r\n findBindFields(field, this.fields).forEach(oneField => {\r\n // oneField.dirty = field.dirty,\r\n oneField.validator.reset();\r\n oneField.checkValidity();\r\n });\r\n }\r\n else if (isPlainObject(item)) {\r\n Object.keys(item).forEach(key => this.set(key, item[key]));\r\n }\r\n return this;\r\n }\r\n getPristineValue(fieldName) {\r\n return getRecordValue.call(this, this.pristineData, (child, checkField) => child.getPristineValue(checkField), fieldName);\r\n }\r\n init(item, value) {\r\n const { fields, pristineData, data } = this;\r\n if (isString(item)) {\r\n let fieldName = item;\r\n const field = this.getField(fieldName) || this.addField(fieldName);\r\n const bind = field.get('bind');\r\n if (bind) {\r\n fieldName = bind;\r\n }\r\n ObjectChainValue.set(pristineData, fieldName, value, fields);\r\n ObjectChainValue.set(data, fieldName, value, fields);\r\n field.commit();\r\n }\r\n else if (isPlainObject(item)) {\r\n Object.keys(item).forEach(key => this.init(key, item[key]));\r\n }\r\n return this;\r\n }\r\n clone() {\r\n const { dataSet } = this;\r\n const cloneData = this.toData();\r\n if (dataSet) {\r\n const { primaryKey } = dataSet.props;\r\n if (primaryKey) {\r\n delete cloneData[primaryKey];\r\n }\r\n return new Record(cloneData, dataSet);\r\n }\r\n return new Record(cloneData);\r\n }\r\n ready() {\r\n return Promise.all([...this.fields.values()].map(field => field.ready()));\r\n }\r\n async tls(name) {\r\n const tlsKey = getConfig('tlsKey');\r\n const { dataSet } = this;\r\n if (dataSet && name) {\r\n const tlsData = this.get(tlsKey) || {};\r\n if (!(name in tlsData)) {\r\n const { axios, lang } = dataSet;\r\n const { primaryKey } = dataSet.props;\r\n const newConfig = axiosConfigAdapter('tls', dataSet, {}, primaryKey && { key: this.get(primaryKey) }, { name, record: this });\r\n if (newConfig.url && this.status !== RecordStatus.add) {\r\n const result = await axios(newConfig);\r\n if (result) {\r\n const dataKey = getConfig('dataKey');\r\n this.commitTls(generateResponseData(result, dataKey)[0], name);\r\n }\r\n }\r\n else {\r\n this.commitTls([...this.fields.entries()].reduce((data, [key, field]) => {\r\n if (field.type === FieldType.intl) {\r\n data[key] = {\r\n [lang]: this.get(key),\r\n };\r\n }\r\n return data;\r\n }, {}), name);\r\n }\r\n }\r\n }\r\n }\r\n reset() {\r\n const { status, fields, dataSet, dirty } = this;\r\n [...fields.values()].forEach(field => field.commit());\r\n if (status === RecordStatus.update || status === RecordStatus.delete) {\r\n this.status = RecordStatus.sync;\r\n }\r\n if (status === RecordStatus.delete || dirty) {\r\n this.data = toJS(this.pristineData);\r\n this.memo = undefined;\r\n if (dataSet && !dataSet.resetInBatch) {\r\n dataSet.fireEvent(DataSetEvents.reset, { records: [this], dataSet });\r\n }\r\n }\r\n return this;\r\n }\r\n save() {\r\n this.memo = toJS(this.data);\r\n return this;\r\n }\r\n restore() {\r\n const { memo } = this;\r\n if (memo) {\r\n this.set(memo);\r\n this.memo = undefined;\r\n }\r\n return this;\r\n }\r\n clear() {\r\n return this.set([...this.fields.keys()].reduce((obj, key) => {\r\n obj[key] = null;\r\n return obj;\r\n }, {}));\r\n }\r\n commit(data, dataSet) {\r\n const { dataSetSnapshot, fields, status } = this;\r\n if (dataSet) {\r\n const { records } = dataSet;\r\n if (status === RecordStatus.delete) {\r\n const index = records.indexOf(this);\r\n if (index !== -1) {\r\n dataSet.totalCount -= 1;\r\n records.splice(index, 1);\r\n }\r\n return this;\r\n }\r\n if (status === RecordStatus.add) {\r\n const index = records.indexOf(this);\r\n if (index !== -1) {\r\n dataSet.totalCount += 1;\r\n }\r\n }\r\n if (data) {\r\n const newData = this.processData(data);\r\n this.pristineData = newData;\r\n Object.keys(newData).forEach(key => {\r\n const newValue = newData[key];\r\n if (this.get(key) !== newValue) {\r\n set(this.data, key, newData[key]);\r\n }\r\n });\r\n const snapShorts = Object.keys(dataSetSnapshot);\r\n if (snapShorts.length) {\r\n const isCurrent = dataSet.current === this;\r\n const ds = new DataSet();\r\n snapShorts.forEach(key => (dataSetSnapshot[key] = (isCurrent\r\n ? dataSet.children[key]\r\n : ds.restore(dataSetSnapshot[key]))\r\n .commitData(data[key] || [])\r\n .snapshot()));\r\n }\r\n }\r\n }\r\n [...fields.values()].forEach(field => field.commit());\r\n this.status = RecordStatus.sync;\r\n return this;\r\n }\r\n commitTls(data = {}, name) {\r\n const { dataSet } = this;\r\n const lang = dataSet ? dataSet.lang : localeContext.locale.lang;\r\n const tlsKey = getConfig('tlsKey');\r\n const values = {};\r\n if (!(name in data)) {\r\n data[name] = {};\r\n }\r\n Object.keys(data).forEach(key => {\r\n const value = data[key];\r\n const field = this.getField(key);\r\n if (field && field.dirty) {\r\n values[`${tlsKey}.${key}.${lang}`] = this.get(key);\r\n }\r\n this.init(`${tlsKey}.${key}`, value);\r\n });\r\n this.set(values);\r\n }\r\n initFields(fields) {\r\n [...fields.keys()].forEach(key => this.addField(key));\r\n }\r\n addField(name, fieldProps = {}) {\r\n const { dataSet } = this;\r\n return processIntlField(name, fieldProps, (langName, langProps) => {\r\n const field = new Field({ ...langProps, name: langName }, dataSet, this);\r\n this.fields.set(langName, field);\r\n return field;\r\n }, dataSet);\r\n }\r\n processData(data = {}) {\r\n const { fields } = this;\r\n [...fields.entries()].forEach(([fieldName, field]) => {\r\n let value = ObjectChainValue.get(data, fieldName);\r\n const bind = field.get('bind');\r\n const type = field.get('type');\r\n const transformResponse = field.get('transformResponse');\r\n if (bind) {\r\n fieldName = bind;\r\n const bindValue = ObjectChainValue.get(data, fieldName);\r\n if (isNil(value) && !isNil(bindValue)) {\r\n value = bindValue;\r\n }\r\n }\r\n if (value === undefined && type === FieldType.boolean) {\r\n value = false;\r\n }\r\n if (transformResponse) {\r\n value = transformResponse(value);\r\n }\r\n value = processValue(value, field);\r\n if (value === null) {\r\n value = undefined;\r\n }\r\n ObjectChainValue.set(data, fieldName, value, fields);\r\n });\r\n return data;\r\n }\r\n normalizeData(needIgnore) {\r\n const { fields } = this;\r\n const json = toJS(this.data);\r\n [...fields.keys()].forEach(key => {\r\n let value = ObjectChainValue.get(json, key);\r\n const field = this.getField(key);\r\n if (field) {\r\n const ignore = field.get('ignore');\r\n if (needIgnore &&\r\n (ignore === FieldIgnore.always || (ignore === FieldIgnore.clean && !field.dirty))) {\r\n delete json[key];\r\n return;\r\n }\r\n const bind = field.get('bind');\r\n const multiple = field.get('multiple');\r\n const type = field.get('type');\r\n const transformRequest = field.get('transformRequest');\r\n if (bind) {\r\n value = this.get(bind);\r\n }\r\n if (type === FieldType.object) {\r\n return;\r\n }\r\n if (isString(multiple) && isArrayLike(value)) {\r\n value = value.map(processToJSON).join(multiple);\r\n }\r\n if (transformRequest) {\r\n value = transformRequest(value);\r\n }\r\n }\r\n if (value !== undefined) {\r\n ObjectChainValue.set(json, key, processToJSON(value), fields);\r\n }\r\n else {\r\n ObjectChainValue.remove(json, key);\r\n }\r\n });\r\n return json;\r\n }\r\n normalizeCascadeData(json, all, isSelect) {\r\n const { dataSetSnapshot, dataSet, isCurrent, status, fields } = this;\r\n const isDelete = status === RecordStatus.delete;\r\n if (dataSet) {\r\n let dirty = false;\r\n const { children } = dataSet;\r\n if (isDelete) {\r\n childrenInfoForDelete(json, children);\r\n }\r\n else {\r\n const keys = Object.keys(children);\r\n if (keys) {\r\n keys.forEach(name => {\r\n const snapshot = dataSetSnapshot[name];\r\n const child = isCurrent ? children[name] : snapshot && new DataSet().restore(snapshot);\r\n if (child) {\r\n const jsonArray = all ? child.toData() : child.toJSONData(isSelect);\r\n if (jsonArray.length > 0) {\r\n dirty = true;\r\n }\r\n ObjectChainValue.set(json, name, jsonArray, fields);\r\n }\r\n });\r\n }\r\n }\r\n return dirty;\r\n }\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"fields\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"pristineData\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"data\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"status\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"selectable\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"isSelected\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"isCurrent\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"isCached\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Record.prototype, \"editing\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"key\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"index\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"isRemoved\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"isIndeterminate\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"isExpanded\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"previousRecord\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"nextRecord\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"children\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"parent\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"level\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"dirty\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Record.prototype, \"cascadeParent\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"set\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"init\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"tls\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"reset\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"save\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"restore\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"clear\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"commit\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"commitTls\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Record.prototype, \"addField\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport { computed, observable, runInAction } from 'mobx';\r\nexport default class Transport {\r\n constructor(props = {}, dataSet) {\r\n runInAction(() => {\r\n this.props = props;\r\n this.dataSet = dataSet;\r\n });\r\n }\r\n set create(create) {\r\n runInAction(() => {\r\n this.props.create = create;\r\n });\r\n }\r\n get create() {\r\n return this.props.create;\r\n }\r\n set read(read) {\r\n runInAction(() => {\r\n this.props.read = read;\r\n });\r\n }\r\n get read() {\r\n return this.props.read || this.dataSet.queryUrl;\r\n }\r\n set update(update) {\r\n runInAction(() => {\r\n this.props.update = update;\r\n });\r\n }\r\n get update() {\r\n return this.props.update;\r\n }\r\n set destroy(destroy) {\r\n runInAction(() => {\r\n this.props.destroy = destroy;\r\n });\r\n }\r\n get destroy() {\r\n return this.props.destroy;\r\n }\r\n set validate(validate) {\r\n runInAction(() => {\r\n this.props.validate = validate;\r\n });\r\n }\r\n get validate() {\r\n return this.props.validate || this.dataSet.validateUrl;\r\n }\r\n set submit(submit) {\r\n runInAction(() => {\r\n this.props.submit = submit;\r\n });\r\n }\r\n get submit() {\r\n return this.props.submit || this.dataSet.submitUrl;\r\n }\r\n set exports(exports) {\r\n runInAction(() => {\r\n this.props.exports = exports;\r\n });\r\n }\r\n get exports() {\r\n return this.props.exports || this.dataSet.exportUrl;\r\n }\r\n set tls(tls) {\r\n runInAction(() => {\r\n this.props.tls = tls;\r\n });\r\n }\r\n get tls() {\r\n return this.props.tls || this.dataSet.tlsUrl;\r\n }\r\n set adapter(adapter) {\r\n runInAction(() => {\r\n this.props.adapter = adapter;\r\n });\r\n }\r\n get adapter() {\r\n return this.props.adapter;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], Transport.prototype, \"props\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"create\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"read\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"update\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"destroy\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"validate\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"submit\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"exports\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"tls\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Transport.prototype, \"adapter\", null);\r\n","export var DataSetEvents;\r\n(function (DataSetEvents) {\r\n DataSetEvents[\"query\"] = \"query\";\r\n DataSetEvents[\"beforeLoad\"] = \"beforeLoad\";\r\n DataSetEvents[\"load\"] = \"load\";\r\n DataSetEvents[\"loadFailed\"] = \"loadFailed\";\r\n DataSetEvents[\"submit\"] = \"submit\";\r\n DataSetEvents[\"submitSuccess\"] = \"submitSuccess\";\r\n DataSetEvents[\"submitFailed\"] = \"submitFailed\";\r\n DataSetEvents[\"select\"] = \"select\";\r\n DataSetEvents[\"unSelect\"] = \"unSelect\";\r\n DataSetEvents[\"selectAll\"] = \"selectAll\";\r\n DataSetEvents[\"unSelectAll\"] = \"unSelectAll\";\r\n DataSetEvents[\"indexChange\"] = \"indexChange\";\r\n DataSetEvents[\"update\"] = \"update\";\r\n DataSetEvents[\"fieldChange\"] = \"fieldChange\";\r\n DataSetEvents[\"export\"] = \"export\";\r\n DataSetEvents[\"create\"] = \"create\";\r\n DataSetEvents[\"beforeDelete\"] = \"beforeDelete\";\r\n DataSetEvents[\"reset\"] = \"reset\";\r\n})(DataSetEvents || (DataSetEvents = {}));\r\nexport var DataSetSelection;\r\n(function (DataSetSelection) {\r\n DataSetSelection[\"single\"] = \"single\";\r\n DataSetSelection[\"multiple\"] = \"multiple\";\r\n})(DataSetSelection || (DataSetSelection = {}));\r\nexport var DataSetStatus;\r\n(function (DataSetStatus) {\r\n DataSetStatus[\"loading\"] = \"loading\";\r\n DataSetStatus[\"submitting\"] = \"submitting\";\r\n DataSetStatus[\"ready\"] = \"ready\";\r\n})(DataSetStatus || (DataSetStatus = {}));\r\nexport var RecordStatus;\r\n(function (RecordStatus) {\r\n RecordStatus[\"delete\"] = \"delete\";\r\n RecordStatus[\"update\"] = \"update\";\r\n RecordStatus[\"add\"] = \"add\";\r\n RecordStatus[\"sync\"] = \"sync\";\r\n})(RecordStatus || (RecordStatus = {}));\r\nexport var FieldType;\r\n(function (FieldType) {\r\n FieldType[\"auto\"] = \"auto\";\r\n FieldType[\"boolean\"] = \"boolean\";\r\n FieldType[\"number\"] = \"number\";\r\n FieldType[\"currency\"] = \"currency\";\r\n FieldType[\"string\"] = \"string\";\r\n FieldType[\"date\"] = \"date\";\r\n FieldType[\"dateTime\"] = \"dateTime\";\r\n FieldType[\"week\"] = \"week\";\r\n FieldType[\"month\"] = \"month\";\r\n FieldType[\"year\"] = \"year\";\r\n FieldType[\"time\"] = \"time\";\r\n FieldType[\"object\"] = \"object\";\r\n FieldType[\"intl\"] = \"intl\";\r\n FieldType[\"email\"] = \"email\";\r\n FieldType[\"url\"] = \"url\";\r\n FieldType[\"color\"] = \"color\";\r\n FieldType[\"reactNode\"] = \"reactNode\";\r\n})(FieldType || (FieldType = {}));\r\nexport var SortOrder;\r\n(function (SortOrder) {\r\n SortOrder[\"asc\"] = \"asc\";\r\n SortOrder[\"desc\"] = \"desc\";\r\n})(SortOrder || (SortOrder = {}));\r\nexport var BooleanValue;\r\n(function (BooleanValue) {\r\n BooleanValue[\"trueValue\"] = \"trueValue\";\r\n BooleanValue[\"falseValue\"] = \"falseValue\";\r\n})(BooleanValue || (BooleanValue = {}));\r\nexport var FieldIgnore;\r\n(function (FieldIgnore) {\r\n FieldIgnore[\"always\"] = \"always\";\r\n FieldIgnore[\"clean\"] = \"clean\";\r\n FieldIgnore[\"never\"] = \"never\";\r\n})(FieldIgnore || (FieldIgnore = {}));\r\nexport var FieldTrim;\r\n(function (FieldTrim) {\r\n FieldTrim[\"both\"] = \"both\";\r\n FieldTrim[\"left\"] = \"left\";\r\n FieldTrim[\"right\"] = \"right\";\r\n FieldTrim[\"none\"] = \"none\";\r\n})(FieldTrim || (FieldTrim = {}));\r\nexport var FieldFormat;\r\n(function (FieldFormat) {\r\n FieldFormat[\"uppercase\"] = \"uppercase\";\r\n FieldFormat[\"lowercase\"] = \"lowercase\";\r\n FieldFormat[\"capitalize\"] = \"capitalize\";\r\n})(FieldFormat || (FieldFormat = {}));\r\n","import DataSet from './DataSet';\r\nexport default DataSet;\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/style/index.less';\r\n// style dependencies\r\nimport '../../modal-container/style';\r\nimport '../../message/style';\r\n","import queryString from 'querystringify';\r\nimport moment, { isDate, isMoment } from 'moment';\r\nimport { isArrayLike } from 'mobx';\r\nimport isBoolean from 'lodash/isBoolean';\r\nimport isObject from 'lodash/isObject';\r\nimport isString from 'lodash/isString';\r\nimport isArray from 'lodash/isArray';\r\nimport isNumber from 'lodash/isNumber';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport { BooleanValue, FieldType, RecordStatus, SortOrder } from './enum';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\r\nimport localeContext, { $l } from '../locale-context';\r\nimport formatString from '../formatter/formatString';\r\nimport formatNumber from '../formatter/formatNumber';\r\nimport formatCurrency from '../formatter/formatCurrency';\r\nexport function append(url, suffix) {\r\n if (suffix) {\r\n return url + queryString.stringify(suffix, url.indexOf('?') === -1);\r\n }\r\n return url;\r\n}\r\nexport function getOrderFields(fields) {\r\n return [...fields.values()].filter(({ order }) => order);\r\n}\r\nexport function processToJSON(value) {\r\n if (isDate(value)) {\r\n value = moment(value);\r\n }\r\n if (isMoment(value)) {\r\n const { jsonDate } = getConfig('formatter');\r\n value = jsonDate ? value.format(jsonDate) : +value;\r\n }\r\n return value;\r\n}\r\nfunction processOne(value, field, checkRange = true) {\r\n if (!isEmpty(value)) {\r\n const range = field.get('range');\r\n if (range && checkRange) {\r\n if (isArrayLike(range)) {\r\n if (isObject(value)) {\r\n const [start, end] = range;\r\n value[start] = processOne(value[start], field, false);\r\n value[end] = processOne(value[end], field, false);\r\n }\r\n }\r\n else if (isArrayLike(value)) {\r\n value[0] = processOne(value[0], field, false);\r\n value[1] = processOne(value[1], field, false);\r\n }\r\n }\r\n else if (value instanceof Date) {\r\n value = moment(value);\r\n }\r\n else if (!isObject(value)) {\r\n value = formatString(value, {\r\n trim: field.get('trim'),\r\n format: field.get('format'),\r\n });\r\n switch (field.type) {\r\n case FieldType.boolean: {\r\n const trueValue = field.get(BooleanValue.trueValue);\r\n const falseValue = field.get(BooleanValue.falseValue);\r\n if (value !== trueValue) {\r\n value = falseValue;\r\n }\r\n break;\r\n }\r\n case FieldType.number:\r\n case FieldType.currency:\r\n if (!isNaN(value)) {\r\n value = Number(value);\r\n }\r\n else {\r\n value = undefined;\r\n }\r\n break;\r\n case FieldType.string:\r\n case FieldType.intl:\r\n case FieldType.email:\r\n case FieldType.url:\r\n value = String(value);\r\n break;\r\n case FieldType.date:\r\n case FieldType.dateTime:\r\n case FieldType.time:\r\n case FieldType.week:\r\n case FieldType.month:\r\n case FieldType.year: {\r\n const { jsonDate } = getConfig('formatter');\r\n value = jsonDate ? moment(value, jsonDate) : moment(value);\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nexport function processValue(value, field) {\r\n if (field) {\r\n const multiple = field.get('multiple');\r\n const range = field.get('range');\r\n if (multiple) {\r\n if (isEmpty(value)) {\r\n value = [];\r\n }\r\n else if (!isArray(value)) {\r\n if (isString(multiple) && isString(value)) {\r\n value = value.split(multiple);\r\n }\r\n else {\r\n value = [value];\r\n }\r\n }\r\n }\r\n if (isArray(value) && (multiple || !range)) {\r\n return value.map(item => processOne(item, field));\r\n }\r\n return processOne(value, field);\r\n }\r\n return value;\r\n}\r\nexport function childrenInfoForDelete(json, children) {\r\n return Object.keys(children).reduce((data, name) => {\r\n const child = children[name];\r\n if (child) {\r\n data[name] = [childrenInfoForDelete({}, child.children)];\r\n }\r\n return data;\r\n }, json);\r\n}\r\nexport function sortTree(children, orderField) {\r\n if (orderField && children.length > 0) {\r\n const { name, order } = orderField;\r\n const m = Number.MIN_SAFE_INTEGER;\r\n children.sort((record1, record2) => {\r\n const a = record1.get(name) || m;\r\n const b = record2.get(name) || m;\r\n if (isString(a) || isString(b)) {\r\n return order === SortOrder.asc\r\n ? String(a).localeCompare(String(b))\r\n : String(b).localeCompare(String(a));\r\n }\r\n return order === SortOrder.asc ? a - b : b - a;\r\n });\r\n }\r\n return children;\r\n}\r\nexport function checkParentByInsert({ parent }) {\r\n if (parent && !parent.current) {\r\n throw new Error($l('DataSet', 'cannot_add_record_when_head_no_current'));\r\n }\r\n}\r\nfunction getValueType(value) {\r\n return isBoolean(value)\r\n ? FieldType.boolean\r\n : isNumber(value)\r\n ? FieldType.number\r\n : isString(value)\r\n ? FieldType.string\r\n : isMoment(value)\r\n ? FieldType.date\r\n : isObject(value)\r\n ? FieldType.object\r\n : FieldType.auto;\r\n}\r\nfunction getBaseType(type) {\r\n switch (type) {\r\n case FieldType.number:\r\n case FieldType.currency:\r\n return FieldType.number;\r\n case FieldType.dateTime:\r\n case FieldType.time:\r\n case FieldType.week:\r\n case FieldType.month:\r\n case FieldType.year:\r\n return FieldType.date;\r\n case FieldType.intl:\r\n case FieldType.url:\r\n case FieldType.email:\r\n return FieldType.string;\r\n default:\r\n return type;\r\n }\r\n}\r\nexport function checkFieldType(value, field) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!isEmpty(value)) {\r\n if (isArrayLike(value)) {\r\n return value.every(item => checkFieldType(item, field));\r\n }\r\n const fieldType = getBaseType(field.type);\r\n const valueType = field.type === FieldType.boolean &&\r\n [field.get(BooleanValue.trueValue), field.get(BooleanValue.falseValue)].includes(value)\r\n ? FieldType.boolean\r\n : getValueType(value);\r\n if (fieldType !== FieldType.auto &&\r\n fieldType !== FieldType.reactNode &&\r\n fieldType !== valueType) {\r\n warning(false, `Value type error: The value<${value}>'s type is ${valueType}, but the field<${field.name}>'s type is ${fieldType}.`);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\nlet iframe;\r\nexport function doExport(url, data, method = 'post') {\r\n if (!iframe) {\r\n iframe = document.createElement('iframe');\r\n iframe.id = '_export_window';\r\n iframe.name = '_export_window';\r\n iframe.style.cssText =\r\n 'position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;display:none';\r\n document.body.appendChild(iframe);\r\n }\r\n const form = document.createElement('form');\r\n form.target = '_export_window';\r\n form.method = method;\r\n form.action = url;\r\n const s = document.createElement('input');\r\n s.id = '_request_data';\r\n s.type = 'hidden';\r\n s.name = '_request_data';\r\n s.value = JSON.stringify(data);\r\n form.appendChild(s);\r\n document.body.appendChild(form);\r\n form.submit();\r\n document.body.removeChild(form);\r\n}\r\nexport function findBindFields(myField, fields, excludeSelf) {\r\n const { name } = myField;\r\n return [...fields.values()].filter(field => {\r\n if (field !== myField) {\r\n const bind = field.get('bind');\r\n return isString(bind) && bind.startsWith(`${name}.`);\r\n }\r\n return !excludeSelf;\r\n });\r\n}\r\nexport function findBindField(myField, fields, callback) {\r\n const name = isString(myField) ? myField : myField.name;\r\n return [...fields.values()].find(field => {\r\n if (field.name !== name) {\r\n const bind = field.get('bind');\r\n return isString(bind) && bind.startsWith(`${name}.`) && (!callback || callback(field));\r\n }\r\n return false;\r\n });\r\n}\r\nfunction numberSorter(a, b) {\r\n return a - b;\r\n}\r\nfunction stringSorter(a, b) {\r\n return String(a || '').localeCompare(String(b || ''));\r\n}\r\nexport function getFieldSorter(field) {\r\n const { name } = field;\r\n switch (field.type) {\r\n case FieldType.number:\r\n case FieldType.currency:\r\n case FieldType.date:\r\n case FieldType.dateTime:\r\n case FieldType.week:\r\n case FieldType.month:\r\n case FieldType.year:\r\n case FieldType.time:\r\n return field.order === SortOrder.asc\r\n ? (a, b) => numberSorter(a.get(name), b.get(name))\r\n : (a, b) => numberSorter(b.get(name), a.get(name));\r\n default:\r\n return field.order === SortOrder.asc\r\n ? (a, b) => stringSorter(a.get(name), b.get(name))\r\n : (a, b) => stringSorter(b.get(name), a.get(name));\r\n }\r\n}\r\nexport function generateJSONData(array, record, isSelect, noCascade) {\r\n const json = record.toJSONData(noCascade);\r\n if (json.__dirty || isSelect) {\r\n delete json.__dirty;\r\n array.push(json);\r\n }\r\n}\r\nexport function prepareSubmitData(records, isSelect, noCascade) {\r\n const created = [];\r\n const updated = [];\r\n const destroyed = [];\r\n function storeWith(status) {\r\n switch (status) {\r\n case RecordStatus.add:\r\n return created;\r\n case RecordStatus.delete:\r\n return destroyed;\r\n default:\r\n return updated;\r\n }\r\n }\r\n records.forEach(record => (noCascade && record.status === RecordStatus.sync) ||\r\n generateJSONData(storeWith(record.status), record, isSelect, noCascade));\r\n return [created, updated, destroyed];\r\n}\r\nfunction defaultAxiosConfigAdapter(config) {\r\n return config;\r\n}\r\nfunction generateConfig(config, dataSet, data, params, options) {\r\n if (isString(config)) {\r\n return {\r\n url: config,\r\n };\r\n }\r\n if (typeof config === 'function') {\r\n return config({ ...options, data, dataSet, params });\r\n }\r\n return config;\r\n}\r\nexport function axiosConfigAdapter(type, dataSet, data, params, options) {\r\n const newConfig = {\r\n data,\r\n params,\r\n method: 'post',\r\n };\r\n const { [type]: globalConfig, adapter: globalAdapter = defaultAxiosConfigAdapter } = getConfig('transport') || {};\r\n const { [type]: config, adapter } = dataSet.transport;\r\n if (globalConfig) {\r\n Object.assign(newConfig, generateConfig(globalConfig, dataSet, data, params, options));\r\n }\r\n if (config) {\r\n Object.assign(newConfig, generateConfig(config, dataSet, data, params, options));\r\n }\r\n if (newConfig.data && newConfig.method && newConfig.method.toLowerCase() === 'get') {\r\n newConfig.params = {\r\n ...newConfig.params,\r\n ...newConfig.data,\r\n };\r\n }\r\n return (adapter || globalAdapter)(newConfig, type) || newConfig;\r\n}\r\nexport function prepareForSubmit(type, data, configs, dataSet) {\r\n if (data.length) {\r\n const newConfig = axiosConfigAdapter(type, dataSet, data);\r\n if (newConfig.url) {\r\n configs.push(newConfig);\r\n }\r\n else {\r\n return data;\r\n }\r\n }\r\n return [];\r\n}\r\nexport function generateResponseData(item, dataKey) {\r\n if (item) {\r\n if (isArray(item)) {\r\n return item;\r\n }\r\n if (isObject(item)) {\r\n if (dataKey) {\r\n const result = ObjectChainValue.get(item, dataKey);\r\n if (result === undefined) {\r\n return [item];\r\n }\r\n if (isArray(result)) {\r\n return result;\r\n }\r\n if (isObject(result)) {\r\n return [result];\r\n }\r\n }\r\n else {\r\n return [item];\r\n }\r\n }\r\n }\r\n return [];\r\n}\r\nexport function getRecordValue(data, cb, fieldName) {\r\n if (fieldName) {\r\n const field = this.getField(fieldName);\r\n if (field) {\r\n const bind = field.get('bind');\r\n if (bind) {\r\n fieldName = bind;\r\n }\r\n }\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n const { checkField } = dataSet.props;\r\n if (checkField && checkField === fieldName) {\r\n const trueValue = field ? field.get(BooleanValue.trueValue) : true;\r\n const falseValue = field ? field.get(BooleanValue.falseValue) : false;\r\n const { children } = this;\r\n if (children) {\r\n return children.every(child => cb(child, checkField) === trueValue)\r\n ? trueValue\r\n : falseValue;\r\n }\r\n }\r\n }\r\n return ObjectChainValue.get(data, fieldName);\r\n }\r\n}\r\nfunction tlsBind(props, name, lang, tlsKey) {\r\n const tls = props.record.get(tlsKey) || {};\r\n if (name in tls) {\r\n return `${tlsKey}.${name}.${lang}`;\r\n }\r\n}\r\nexport function processIntlField(name, fieldProps, callback, dataSet) {\r\n const tlsKey = getConfig('tlsKey');\r\n const { supports } = localeContext;\r\n const languages = Object.keys(supports);\r\n const { type, dynamicProps } = fieldProps;\r\n if (type === FieldType.intl) {\r\n languages.forEach(language => callback(`${tlsKey}.${name}.${language}`, {\r\n type: FieldType.string,\r\n label: `${supports[language]}`,\r\n }));\r\n const { lang = localeContext.locale.lang } = dataSet || {};\r\n const newDynamicProps = typeof dynamicProps === 'function'\r\n ? props => {\r\n return {\r\n ...dynamicProps(props),\r\n bind: tlsBind(props, name, lang, tlsKey),\r\n };\r\n }\r\n : {\r\n ...dynamicProps,\r\n bind: props => {\r\n return tlsBind(props, name, lang, tlsKey);\r\n },\r\n };\r\n return callback(name, {\r\n ...fieldProps,\r\n dynamicProps: newDynamicProps,\r\n });\r\n }\r\n return callback(name, fieldProps);\r\n}\r\nexport function findBindFieldBy(myField, fields, prop) {\r\n const value = myField.get(prop);\r\n const myName = myField.name;\r\n return [...fields.values()].find(field => {\r\n const bind = field.get('bind');\r\n return bind && bind === `${myName}.${value}`;\r\n });\r\n}\r\nexport function processFieldValue(value, field, lang, showValueIfNotFound) {\r\n const { type } = field;\r\n if (type === FieldType.number) {\r\n return formatNumber(value, lang);\r\n }\r\n if (type === FieldType.currency) {\r\n return formatCurrency(value, lang, {\r\n currency: field.get('currency'),\r\n });\r\n }\r\n return field.getText(value, showValueIfNotFound);\r\n}\r\nexport function getLimit(limit, record) {\r\n if (isString(limit) && record.getField(limit)) {\r\n return record.get(limit);\r\n }\r\n return limit;\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport { createElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment, { isMoment } from 'moment';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport isString from 'lodash/isString';\r\nimport isNil from 'lodash/isNil';\r\nimport omit from 'lodash/omit';\r\nimport noop from 'lodash/noop';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport TriggerField from '../trigger-field/TriggerField';\r\nimport DaysView from './DaysView';\r\nimport DateTimesView from './DateTimesView';\r\nimport WeeksView from './WeeksView';\r\nimport TimesView from './TimesView';\r\nimport MonthsView from './MonthsView';\r\nimport YearsView from './YearsView';\r\nimport DecadeYearsView from './DecadeYearsView';\r\nimport autobind from '../_util/autobind';\r\nimport { ViewMode } from './enum';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport { $l } from '../locale-context';\r\nconst viewComponents = {\r\n [ViewMode.decade]: DecadeYearsView,\r\n [ViewMode.year]: YearsView,\r\n [ViewMode.month]: MonthsView,\r\n [ViewMode.date]: DaysView,\r\n [ViewMode.dateTime]: DateTimesView,\r\n [ViewMode.week]: WeeksView,\r\n [ViewMode.time]: TimesView,\r\n};\r\nlet DatePicker = class DatePicker extends TriggerField {\r\n get value() {\r\n const { value } = this.observableProps;\r\n const { range } = this;\r\n if (isArrayLike(value)) {\r\n return value.map(item => {\r\n if (isArrayLike(item)) {\r\n return item.map(this.checkMoment, this);\r\n }\r\n return this.checkMoment(item);\r\n });\r\n }\r\n if (isArrayLike(range)) {\r\n if (isPlainObject(value)) {\r\n const [start, end] = range;\r\n return {\r\n [start]: this.checkMoment(value[start]),\r\n [end]: this.checkMoment(value[end]),\r\n };\r\n }\r\n }\r\n return this.checkMoment(value);\r\n }\r\n set value(value) {\r\n runInAction(() => {\r\n this.observableProps.value = value;\r\n });\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('DatePicker', label ? 'value_missing' : 'value_missing_no_label', {\r\n label,\r\n }),\r\n };\r\n }\r\n get editable() {\r\n return true;\r\n }\r\n get min() {\r\n return this.getLimit('min');\r\n }\r\n get max() {\r\n return this.getLimit('max');\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['mode', 'filter', 'cellRenderer']);\r\n }\r\n getDefaultViewMode() {\r\n const { mode } = this.props;\r\n if (mode === ViewMode.decade || mode === undefined) {\r\n return ViewMode.date;\r\n }\r\n return mode;\r\n }\r\n getPopupContent() {\r\n const mode = this.getViewMode();\r\n return createElement(viewComponents[mode], {\r\n ref: node => (this.view = node),\r\n date: this.getSelectedDate(),\r\n mode: this.getDefaultViewMode(),\r\n renderer: this.getCellRenderer(mode),\r\n onSelect: this.handleSelect,\r\n onSelectedDateChange: this.handleSelectedDateChange,\r\n onViewModeChange: this.handelViewModeChange,\r\n isValidDate: this.isValidDate,\r\n });\r\n }\r\n getCellRenderer(mode) {\r\n const { cellRenderer = noop } = this.props;\r\n return cellRenderer(mode);\r\n }\r\n getTriggerIconFont() {\r\n return 'date_range';\r\n }\r\n getFieldType() {\r\n return viewComponents[this.getDefaultViewMode()].type;\r\n }\r\n getViewMode() {\r\n const { mode = this.getDefaultViewMode() } = this;\r\n return mode;\r\n }\r\n checkMoment(item) {\r\n if (!isNil(item) && !isMoment(item)) {\r\n warning(false, `DatePicker: The value of DatePicker is not moment.`);\r\n const format = this.getDateFormat();\r\n if (item instanceof Date) {\r\n item = moment(item).format(format);\r\n }\r\n return moment(item, format);\r\n }\r\n return item;\r\n }\r\n // processValue(value: any): ReactNode {\r\n // return super.processValue(this.checkMoment(value));\r\n // }\r\n getSelectedDate() {\r\n const { range, multiple, rangeTarget, rangeValue } = this;\r\n const selectedDate = this.selectedDate ||\r\n (range && !multiple && rangeTarget !== undefined && rangeValue && rangeValue[rangeTarget]) ||\r\n (!multiple && this.getValue());\r\n if (isMoment(selectedDate) && selectedDate.isValid()) {\r\n return selectedDate.clone();\r\n }\r\n return this.getValidDate(moment().startOf('d'));\r\n }\r\n getLimit(minOrMax) {\r\n const limit = this.getProp(minOrMax);\r\n if (limit !== undefined) {\r\n const { record } = this;\r\n if (record && isString(limit) && record.getField(limit)) {\r\n return record.get(limit);\r\n }\r\n return this.getLimitWithType(moment(limit), minOrMax);\r\n }\r\n }\r\n getLimitWithType(limit, minOrMax) {\r\n if (minOrMax === 'min') {\r\n return limit.startOf('d');\r\n }\r\n return limit.endOf('d');\r\n }\r\n getPopupStyleFromAlign() {\r\n return undefined;\r\n }\r\n handleSelectedDateChange(selectedDate, mode) {\r\n if (this.isUnderRange(selectedDate, mode)) {\r\n this.changeSelectedDate(selectedDate);\r\n }\r\n }\r\n handelViewModeChange(mode) {\r\n runInAction(() => {\r\n this.mode = mode;\r\n });\r\n }\r\n handlePopupAnimateAppear() { }\r\n handlePopupAnimateEnd(key, exists) {\r\n if (!exists && key === 'align') {\r\n runInAction(() => {\r\n this.selectedDate = undefined;\r\n this.mode = undefined;\r\n });\r\n }\r\n }\r\n handleSelect(date) {\r\n if (this.multiple && this.isSelected(date)) {\r\n this.unChoose(date);\r\n }\r\n else {\r\n this.choose(date);\r\n }\r\n }\r\n handleKeyDown(e) {\r\n if (!this.isDisabled() && !this.isReadOnly()) {\r\n const el = this.popup ? this.view || this : this;\r\n switch (e.keyCode) {\r\n case KeyCode.RIGHT:\r\n el.handleKeyDownRight(e);\r\n break;\r\n case KeyCode.LEFT:\r\n el.handleKeyDownLeft(e);\r\n break;\r\n case KeyCode.DOWN:\r\n el.handleKeyDownDown(e);\r\n break;\r\n case KeyCode.UP:\r\n el.handleKeyDownUp(e);\r\n break;\r\n case KeyCode.END:\r\n el.handleKeyDownEnd(e);\r\n break;\r\n case KeyCode.HOME:\r\n el.handleKeyDownHome(e);\r\n break;\r\n case KeyCode.PAGE_UP:\r\n el.handleKeyDownPageUp(e);\r\n break;\r\n case KeyCode.PAGE_DOWN:\r\n el.handleKeyDownPageDown(e);\r\n break;\r\n case KeyCode.ENTER:\r\n el.handleKeyDownEnter(e);\r\n break;\r\n case KeyCode.TAB:\r\n this.handleKeyDownTab();\r\n break;\r\n case KeyCode.ESC:\r\n this.handleKeyDownEsc(e);\r\n break;\r\n case KeyCode.SPACE:\r\n this.handleKeyDownSpace(e);\r\n break;\r\n default:\r\n }\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleKeyDownHome(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().startOf('M'));\r\n }\r\n }\r\n handleKeyDownEnd(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().endOf('M'));\r\n }\r\n }\r\n handleKeyDownLeft(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().subtract(1, 'd'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().add(1, 'd'));\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().subtract(1, 'w'));\r\n }\r\n }\r\n handleKeyDownDown(e) {\r\n if (this.multiple) {\r\n this.expand();\r\n }\r\n else if (!this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().add(1, 'w'));\r\n }\r\n }\r\n handleKeyDownPageUp(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().subtract(1, e.altKey ? 'y' : 'M'));\r\n }\r\n }\r\n handleKeyDownPageDown(e) {\r\n if (!this.multiple && !this.editable) {\r\n stopEvent(e);\r\n this.choose(this.getSelectedDate().add(1, e.altKey ? 'y' : 'M'));\r\n }\r\n }\r\n handleKeyDownEnter(_e) {\r\n if (!this.multiple && !this.editable) {\r\n this.choose(this.getSelectedDate());\r\n }\r\n }\r\n handleKeyDownEsc(e) {\r\n if (this.popup) {\r\n e.preventDefault();\r\n this.collapse();\r\n }\r\n }\r\n handleKeyDownTab() {\r\n // this.collapse();\r\n }\r\n handleKeyDownSpace(e) {\r\n e.preventDefault();\r\n if (!this.popup) {\r\n this.expand();\r\n }\r\n }\r\n handleEnterDown(e) {\r\n super.handleEnterDown(e);\r\n if (this.multiple && this.range) {\r\n this.beginRange();\r\n }\r\n }\r\n syncValueOnBlur(value) {\r\n if (value) {\r\n if (!this.range) {\r\n this.addValue(this.checkMoment(value));\r\n }\r\n }\r\n else if (!this.multiple) {\r\n this.setValue(this.emptyValue);\r\n }\r\n }\r\n getValueKey(v) {\r\n if (isArrayLike(v)) {\r\n return v.map(this.getValueKey, this).join(',');\r\n }\r\n if (isMoment(v)) {\r\n return v.format();\r\n }\r\n return v;\r\n }\r\n changeSelectedDate(selectedDate) {\r\n this.selectedDate = this.getValidDate(selectedDate);\r\n }\r\n isSelected(date) {\r\n return this.getValues().some(value => date.isSame(value));\r\n }\r\n unChoose(date) {\r\n this.removeValue(date, -1);\r\n }\r\n choose(date) {\r\n date = this.getValidDate(date);\r\n this.prepareSetValue(date);\r\n this.changeSelectedDate(date);\r\n if (this.range ? this.rangeTarget === 1 : !this.multiple) {\r\n this.collapse();\r\n }\r\n if (this.range && this.rangeTarget === 0 && this.popup) {\r\n this.setRangeTarget(1);\r\n }\r\n }\r\n setRangeTarget(target) {\r\n if (target !== undefined && target !== this.rangeTarget) {\r\n this.expand();\r\n }\r\n this.selectedDate = undefined;\r\n super.setRangeTarget(target);\r\n }\r\n getValidDate(date) {\r\n const { min, max } = this;\r\n if (min && date.isBefore(min)) {\r\n date = min;\r\n }\r\n else if (max && date.isAfter(max)) {\r\n date = max;\r\n }\r\n return date;\r\n }\r\n isLowerRange(m1, m2) {\r\n return m1.isBefore(m2);\r\n }\r\n isUnderRange(date, mode) {\r\n const { min, max } = this;\r\n if (min || max) {\r\n let start = (min || date).clone();\r\n let end = (max || date).clone();\r\n switch (mode || this.getViewMode()) {\r\n case ViewMode.month:\r\n start = start.startOf('M');\r\n end = end.endOf('M');\r\n break;\r\n case ViewMode.year:\r\n start = start.startOf('y');\r\n end = end.endOf('y');\r\n break;\r\n case ViewMode.decade:\r\n start = start\r\n .startOf('y')\r\n .subtract(start.year() % 10, 'y')\r\n .startOf('d');\r\n end = end\r\n .endOf('y')\r\n .add(9 - (end.year() % 10), 'y')\r\n .endOf('d');\r\n break;\r\n case ViewMode.dateTime:\r\n start = start.startOf('d');\r\n end = end.endOf('d');\r\n break;\r\n default:\r\n }\r\n return date.isBetween(start, end, undefined, '[]');\r\n }\r\n return true;\r\n }\r\n isValidDate(currentDate, selected) {\r\n const { filter } = this.props;\r\n const isValid = this.isUnderRange(currentDate);\r\n if (isValid && filter) {\r\n return filter(currentDate, selected);\r\n }\r\n return isValid;\r\n }\r\n getValidatorProps() {\r\n const { min, max } = this;\r\n return {\r\n ...super.getValidatorProps(),\r\n min,\r\n max,\r\n format: this.getDateFormat(),\r\n };\r\n }\r\n};\r\nDatePicker.displayName = 'DatePicker';\r\nDatePicker.propTypes = {\r\n /**\r\n * 日期格式,如 `YYYY-MM-DD HH:mm:ss`\r\n */\r\n format: PropTypes.string,\r\n /**\r\n * 显示模式date|dateTime|time|year|month|week\r\n */\r\n mode: PropTypes.string,\r\n /**\r\n * 单元格渲染\r\n */\r\n cellRenderer: PropTypes.func,\r\n /**\r\n * 日期过滤\r\n */\r\n filter: PropTypes.func,\r\n /**\r\n * 最小日期\r\n */\r\n min: PropTypes.any,\r\n /**\r\n * 最大日期\r\n */\r\n max: PropTypes.any,\r\n ...TriggerField.propTypes,\r\n};\r\nDatePicker.defaultProps = {\r\n ...TriggerField.defaultProps,\r\n suffixCls: 'calendar-picker',\r\n mode: ViewMode.date,\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], DatePicker.prototype, \"value\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DatePicker.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DatePicker.prototype, \"editable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DatePicker.prototype, \"min\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], DatePicker.prototype, \"max\", null);\r\ntslib_1.__decorate([\r\n observable\r\n], DatePicker.prototype, \"selectedDate\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], DatePicker.prototype, \"mode\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"handleSelectedDateChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"handelViewModeChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"handlePopupAnimateEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"handleSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DatePicker.prototype, \"changeSelectedDate\", null);\r\ntslib_1.__decorate([\r\n action\r\n], DatePicker.prototype, \"setRangeTarget\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"isUnderRange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DatePicker.prototype, \"isValidDate\", null);\r\nDatePicker = tslib_1.__decorate([\r\n observer\r\n], DatePicker);\r\nexport default DatePicker;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport moment from 'moment';\r\nimport DaysView from './DaysView';\r\nimport TimesView from './TimesView';\r\nimport autobind from '../_util/autobind';\r\nimport { ViewMode } from './enum';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { $l } from '../locale-context';\r\nimport { getDateFormatByFieldType } from '../field/utils';\r\nexport default class DateTimesView extends DaysView {\r\n handleTimeSelect() {\r\n this.changeViewMode(ViewMode.time);\r\n }\r\n handleKeyDownRight(e) {\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.time);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'd'));\r\n }\r\n }\r\n getFirstDay(date) {\r\n const firstDay = date.clone().subtract(1, 'M');\r\n const hour = firstDay.hour();\r\n const minute = firstDay.minute();\r\n const second = firstDay.second();\r\n firstDay.date(firstDay.daysInMonth()).startOf('w');\r\n firstDay.hour(hour);\r\n firstDay.minute(minute);\r\n firstDay.second(second);\r\n return firstDay;\r\n }\r\n renderFooter() {\r\n const { prefixCls, props: { date }, } = this;\r\n return (<div className={`${prefixCls}-footer`}>\n <a className={`${prefixCls}-footer-now-btn`} onClick={this.choose.bind(this, moment())}>\n {$l('DatePicker', 'now')}\n </a>\n <a className={`${prefixCls}-footer-view-select`} onClick={this.handleTimeSelect}>\n {date.format(getDateFormatByFieldType(TimesView.type))}\n </a>\n </div>);\r\n }\r\n}\r\nDateTimesView.displayName = 'DateTimesView';\r\nDateTimesView.type = FieldType.dateTime;\r\ntslib_1.__decorate([\r\n autobind\r\n], DateTimesView.prototype, \"handleTimeSelect\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport classNames from 'classnames';\r\nimport noop from 'lodash/noop';\r\nimport ViewComponent from '../core/ViewComponent';\r\nimport autobind from '../_util/autobind';\r\nimport Icon from '../icon';\r\nimport { ViewMode } from './enum';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { $l } from '../locale-context';\r\nimport { stopEvent } from '../_util/EventManager';\r\nexport function alwaysValidDate() {\r\n return true;\r\n}\r\nexport default class DaysView extends ViewComponent {\r\n render() {\r\n const { prefixCls, props: { className }, } = this;\r\n const classString = classNames(`${prefixCls}-view`, className);\r\n return (<div className={classString}>\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </div>);\r\n }\r\n handlePrevYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'y'), ViewMode.year);\r\n }\r\n handlePrevMonthClick() {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'), ViewMode.month);\r\n }\r\n handleMonthSelect() {\r\n this.changeViewMode(ViewMode.month);\r\n }\r\n handleYearSelect() {\r\n this.changeViewMode(ViewMode.year);\r\n }\r\n handleNextYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'y'), ViewMode.year);\r\n }\r\n handleNextMonthClick() {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'), ViewMode.month);\r\n }\r\n handleKeyDownHome(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().startOf('M'));\r\n }\r\n handleKeyDownEnd(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().endOf('M'));\r\n }\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.month);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'd'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (!e.altKey) {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'd'));\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'w'));\r\n }\r\n handleKeyDownDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'w'));\r\n }\r\n handleKeyDownPageUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, e.altKey ? 'y' : 'M'));\r\n }\r\n handleKeyDownPageDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(1, e.altKey ? 'y' : 'M'));\r\n }\r\n handleKeyDownEnter(e) {\r\n e.preventDefault();\r\n this.choose(this.props.date);\r\n }\r\n handleCellClick(date) {\r\n this.choose(date);\r\n }\r\n choose(date) {\r\n const { onSelect = noop } = this.props;\r\n onSelect(date);\r\n }\r\n changeSelectedDate(selectedDate, mode) {\r\n const { onSelectedDateChange = noop } = this.props;\r\n onSelectedDateChange(selectedDate, mode);\r\n }\r\n changeViewMode(mode) {\r\n const { onViewModeChange = noop } = this.props;\r\n onViewModeChange(mode);\r\n }\r\n renderHeader() {\r\n const { prefixCls, props: { date }, } = this;\r\n return (<div className={`${prefixCls}-header`}>\n <a className={`${prefixCls}-prev-year`} onClick={this.handlePrevYearClick}>\n <Icon type=\"first_page\"/>\n </a>\n <a className={`${prefixCls}-prev-month`} onClick={this.handlePrevMonthClick}>\n <Icon type=\"navigate_before\"/>\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleMonthSelect}>\n {date.localeData().monthsShort(date)}\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleYearSelect}>\n {date.year()}\n </a>\n <a className={`${prefixCls}-next-year`}>\n <Icon type=\"last_page\" onClick={this.handleNextYearClick}/>\n </a>\n <a className={`${prefixCls}-next-month`} onClick={this.handleNextMonthClick}>\n <Icon type=\"navigate_next\"/>\n </a>\n </div>);\r\n }\r\n renderBody() {\r\n return <div className={`${this.prefixCls}-body`}>{this.renderPanel()}</div>;\r\n }\r\n renderPanel() {\r\n return (<table className={this.getPanelClass()} cellSpacing={0}>\n {this.renderPanelHead()}\n <tbody>{this.renderPanelBody()}</tbody>\n </table>);\r\n }\r\n renderPanelHead() {\r\n return (<thead>\n <tr>{this.getDaysOfWeek()}</tr>\n </thead>);\r\n }\r\n renderFooter() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-footer`}>\n <a onClick={this.choose.bind(this, moment().startOf('d'))}>{$l('DatePicker', 'today')}</a>\n </div>);\r\n }\r\n renderCell(props) {\r\n return <td {...props}/>;\r\n }\r\n renderInner(text) {\r\n const { prefixCls } = this;\r\n return <div className={`${prefixCls}-cell-inner`}>{text}</div>;\r\n }\r\n getFirstDay(date) {\r\n const firstDay = date.clone().subtract(1, 'M');\r\n return firstDay.date(firstDay.daysInMonth()).startOf('w');\r\n }\r\n renderPanelBody() {\r\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\r\n const selected = date.clone();\r\n const prevMonth = this.getFirstDay(date);\r\n const currentYear = date.year();\r\n const currentMonth = date.month();\r\n const lastDay = prevMonth.clone().add(42, 'd');\r\n const rows = [];\r\n let cells = [];\r\n while (prevMonth.isBefore(lastDay)) {\r\n const currentDate = prevMonth.clone();\r\n const isDisabled = !isValidDate(currentDate, selected);\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-old`]: prevMonth.year() < currentYear ||\r\n (prevMonth.year() === currentYear && prevMonth.month() < currentMonth),\r\n [`${prefixCls}-new`]: prevMonth.year() > currentYear ||\r\n (prevMonth.year() === currentYear && prevMonth.month() > currentMonth),\r\n [`${prefixCls}-selected`]: prevMonth.isSame(selected, 'd'),\r\n [`${prefixCls}-today`]: prevMonth.isSame(moment(), 'd'),\r\n [`${prefixCls}-disabled`]: isDisabled,\r\n });\r\n const text = String(currentDate.date());\r\n const dayProps = {\r\n key: prevMonth.format('M_D'),\r\n className,\r\n children: this.renderInner(text),\r\n };\r\n if (!isDisabled) {\r\n dayProps.onClick = this.handleCellClick.bind(this, currentDate);\r\n }\r\n cells.push(renderer(dayProps, text, currentDate, selected));\r\n if (cells.length === 7) {\r\n rows.push(<tr key={prevMonth.format('M_D')}>{cells}</tr>);\r\n cells = [];\r\n }\r\n prevMonth.add(1, 'd');\r\n }\r\n return rows;\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-day-panel`;\r\n }\r\n getDaysOfWeek() {\r\n const locale = this.props.date.localeData();\r\n const days = locale.weekdaysMin();\r\n const first = locale.firstDayOfWeek();\r\n const dow = [];\r\n let i = 0;\r\n days.forEach(day => {\r\n dow[(7 + i++ - first) % 7] = (<th key={day} title={day}>\n {day}\n </th>);\r\n });\r\n return dow;\r\n }\r\n getCloneDate() {\r\n return this.props.date.clone();\r\n }\r\n}\r\nDaysView.displayName = 'DaysView';\r\nDaysView.propTypes = {\r\n date: PropTypes.object,\r\n renderer: PropTypes.func,\r\n isValidDate: PropTypes.func,\r\n onSelect: PropTypes.func,\r\n onSelectedDateChange: PropTypes.func,\r\n onViewModeChange: PropTypes.func,\r\n ...ViewComponent.propTypes,\r\n};\r\nDaysView.defaultProps = {\r\n suffixCls: 'calendar',\r\n};\r\nDaysView.type = FieldType.date;\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handlePrevYearClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handlePrevMonthClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handleMonthSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handleYearSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handleNextYearClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"handleNextMonthClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DaysView.prototype, \"renderCell\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport classNames from 'classnames';\r\nimport autobind from '../_util/autobind';\r\nimport Icon from '../icon';\r\nimport DaysView, { alwaysValidDate } from './DaysView';\r\nimport { ViewMode } from './enum';\r\nimport { stopEvent } from '../_util/EventManager';\r\nexport default class DecadeYearsView extends DaysView {\r\n handlePrevYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().subtract(100, 'y'));\r\n }\r\n handleNextYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().add(100, 'y'));\r\n }\r\n handleKeyDownHome(e) {\r\n stopEvent(e);\r\n const date = this.getCloneDate();\r\n this.changeSelectedDate(date.subtract(date.year() % 100, 'y'));\r\n }\r\n handleKeyDownEnd(e) {\r\n stopEvent(e);\r\n const date = this.getCloneDate();\r\n this.changeSelectedDate(date.add(90 - (date.year() % 100), 'y'));\r\n }\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (!e.altKey) {\r\n this.changeSelectedDate(this.getCloneDate().subtract(10, 'y'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.year);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().add(10, 'y'));\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(30, 'y'));\r\n }\r\n handleKeyDownDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(30, 'y'));\r\n }\r\n handleKeyDownPageUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(100, 'y'));\r\n }\r\n handleKeyDownPageDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(100, 'y'));\r\n }\r\n renderHeader() {\r\n const { prefixCls, props: { date }, } = this;\r\n const year = date.year() % 100;\r\n const from = date.clone().subtract(year, 'y');\r\n const to = from.clone().add(99, 'y');\r\n return (<div className={`${prefixCls}-header`}>\n <a className={`${prefixCls}-prev-year`} onClick={this.handlePrevYearClick}>\n <Icon type=\"first_page\"/>\n </a>\n <span className={`${prefixCls}-view-select`}>\n {from.year()} - {to.year()}\n </span>\n <a className={`${prefixCls}-next-year`}>\n <Icon type=\"last_page\" onClick={this.handleNextYearClick}/>\n </a>\n </div>);\r\n }\r\n renderPanelHead() {\r\n return undefined;\r\n }\r\n renderPanelBody() {\r\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\r\n const selected = date.clone().subtract(date.year() % 10, 'y');\r\n const from = date\r\n .clone()\r\n .startOf('y')\r\n .subtract(date.year() % 100, 'y');\r\n const to = from.clone().add(100, 'y');\r\n const prevYear = from.clone().subtract(10, 'y');\r\n const lastYear = to.clone().add(10, 'y');\r\n const rows = [];\r\n let cells = [];\r\n while (prevYear.isBefore(lastYear)) {\r\n const currentYear = prevYear.clone();\r\n const isDisabled = !isValidDate(currentYear, selected);\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-old`]: currentYear.isBefore(from, 'y'),\r\n [`${prefixCls}-new`]: currentYear.isSame(to, 'y'),\r\n [`${prefixCls}-selected`]: prevYear.isSame(selected, 'y'),\r\n [`${prefixCls}-disabled`]: isDisabled,\r\n });\r\n const text = `${prevYear.year()}-${prevYear\r\n .clone()\r\n .add(9, 'y')\r\n .year()}`;\r\n const decadeProps = {\r\n key: text,\r\n className,\r\n };\r\n if (!isDisabled) {\r\n decadeProps.onClick = this.handleCellClick.bind(this, currentYear);\r\n }\r\n cells.push(renderer(decadeProps, text, currentYear, selected));\r\n if (cells.length === 3) {\r\n rows.push(<tr key={text}>{cells}</tr>);\r\n cells = [];\r\n }\r\n prevYear.add(10, 'y');\r\n }\r\n return rows;\r\n }\r\n renderFooter() {\r\n return undefined;\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-year-panel`;\r\n }\r\n choose(date) {\r\n this.changeSelectedDate(date);\r\n this.changeViewMode(ViewMode.year);\r\n }\r\n}\r\nDecadeYearsView.displayName = 'DecadeYearView';\r\ntslib_1.__decorate([\r\n autobind\r\n], DecadeYearsView.prototype, \"handlePrevYearClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], DecadeYearsView.prototype, \"handleNextYearClick\", null);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport Icon from '../icon';\r\nimport DaysView, { alwaysValidDate } from './DaysView';\r\nimport { ViewMode } from './enum';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { stopEvent } from '../_util/EventManager';\r\nexport default class MonthsView extends DaysView {\r\n handleKeyDownHome(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().startOf('y'));\r\n }\r\n handleKeyDownEnd(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().endOf('y'));\r\n }\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.year);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.month) {\r\n this.changeViewMode(mode);\r\n }\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'));\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(3, 'M'));\r\n }\r\n handleKeyDownDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(3, 'M'));\r\n }\r\n handleKeyDownPageUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(e.altKey ? 10 : 1, 'y'));\r\n }\r\n handleKeyDownPageDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(e.altKey ? 10 : 1, 'y'));\r\n }\r\n renderHeader() {\r\n const { prefixCls, props: { date }, } = this;\r\n return (<div className={`${prefixCls}-header`}>\n <a className={`${prefixCls}-prev-year`} onClick={this.handlePrevYearClick}>\n <Icon type=\"first_page\"/>\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleYearSelect}>\n {date.year()}\n </a>\n <a className={`${prefixCls}-next-year`}>\n <Icon type=\"last_page\" onClick={this.handleNextYearClick}/>\n </a>\n </div>);\r\n }\r\n renderPanelHead() {\r\n return undefined;\r\n }\r\n renderPanelBody() {\r\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\r\n const selected = date.clone();\r\n const prevMonth = date.clone().startOf('y');\r\n const lastMonth = prevMonth.clone().add(12, 'M');\r\n const rows = [];\r\n let cells = [];\r\n while (prevMonth.isBefore(lastMonth)) {\r\n const currentMonth = prevMonth.clone();\r\n const isDisabled = !isValidDate(currentMonth, selected);\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-selected`]: prevMonth.isSame(selected, 'M'),\r\n [`${prefixCls}-disabled`]: isDisabled,\r\n });\r\n const text = prevMonth.localeData().monthsShort(prevMonth);\r\n const monthProps = {\r\n key: text,\r\n className,\r\n children: this.renderInner(text),\r\n };\r\n if (!isDisabled) {\r\n monthProps.onClick = this.handleCellClick.bind(this, currentMonth);\r\n }\r\n cells.push(renderer(monthProps, text, currentMonth, selected));\r\n if (cells.length === 3) {\r\n rows.push(<tr key={text}>{cells}</tr>);\r\n cells = [];\r\n }\r\n prevMonth.add(1, 'M');\r\n }\r\n return rows;\r\n }\r\n renderFooter() {\r\n return undefined;\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-month-panel`;\r\n }\r\n choose(date) {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.month) {\r\n this.changeSelectedDate(date);\r\n this.changeViewMode(mode);\r\n }\r\n else {\r\n super.choose(date);\r\n }\r\n }\r\n}\r\nMonthsView.displayName = 'MonthsView';\r\nMonthsView.type = FieldType.month;\r\n","var TimesView_1;\r\nimport * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport moment from 'moment';\r\nimport classNames from 'classnames';\r\nimport { action, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport autobind from '../_util/autobind';\r\nimport { TimeUnit, ViewMode } from './enum';\r\nimport DaysView, { alwaysValidDate } from './DaysView';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { $l } from '../locale-context';\r\nimport { getDateFormatByFieldType } from '../field/utils';\r\nimport { stopEvent } from '../_util/EventManager';\r\nconst TimeUnitQueue = [TimeUnit.hour, TimeUnit.minute, TimeUnit.second];\r\nlet TimesView = TimesView_1 = class TimesView extends DaysView {\r\n handleDateTimeSelect() {\r\n this.changeViewMode(ViewMode.dateTime);\r\n }\r\n handleKeyDownHome(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().set(this.getCurrentUnit(), 0));\r\n }\r\n handleKeyDownEnd(e) {\r\n stopEvent(e);\r\n const unit = this.getCurrentUnit();\r\n const size = unit === TimeUnit.hour ? 24 : 60;\r\n this.changeSelectedDate(this.getCloneDate().set(unit, size - 1));\r\n }\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n if (this.props.mode !== ViewMode.time) {\r\n this.changeViewMode(ViewMode.dateTime);\r\n }\r\n }\r\n else {\r\n this.changeUnit(this.getPrevUnit());\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (!e.altKey) {\r\n this.changeUnit(this.getNextUnit());\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, this.getCurrentUnit()));\r\n }\r\n handleKeyDownDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(1, this.getCurrentUnit()));\r\n }\r\n handleKeyDownPageUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().set(this.getCurrentUnit(), 0));\r\n }\r\n handleKeyDownPageDown(e) {\r\n stopEvent(e);\r\n const unit = this.getCurrentUnit();\r\n const size = unit === TimeUnit.hour ? 24 : 60;\r\n this.changeSelectedDate(this.getCloneDate().set(unit, size - 1));\r\n }\r\n handleTimeCellClick(date, unit) {\r\n this.changeUnit(unit);\r\n this.changeSelectedDate(date);\r\n }\r\n async handleWheel(e) {\r\n e.preventDefault();\r\n if (e.deltaY > 0) {\r\n await this.changeSelectedDate(this.getCloneDate().add(1, this.getCurrentUnit()));\r\n }\r\n else if (e.deltaY < 0) {\r\n await this.changeSelectedDate(this.getCloneDate().subtract(1, this.getCurrentUnit()));\r\n }\r\n }\r\n renderHeader() {\r\n const { prefixCls, props: { date, mode }, } = this;\r\n if (mode === ViewMode.time) {\r\n return (<div className={`${prefixCls}-header`}>\n <span className={`${prefixCls}-view-select`}>\n {date.format(getDateFormatByFieldType(TimesView_1.type))}\n </span>\n </div>);\r\n }\r\n return (<div className={`${prefixCls}-header`}>\n <a className={`${prefixCls}-view-select`} onClick={this.handleMonthSelect}>\n {date.localeData().monthsShort(date)}\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleDateTimeSelect}>\n {date.date()}\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleYearSelect}>\n {date.year()}\n </a>\n </div>);\r\n }\r\n renderFooter() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-footer`}>\n <a className={`${prefixCls}-footer-now-btn`} onClick={this.choose.bind(this, moment())}>\n {$l('DatePicker', 'now')}\n </a>\n <a className={`${prefixCls}-footer-view-select`} onClick={this.choose.bind(this, this.props.date)}>\n {$l('DatePicker', 'ok')}\n </a>\n </div>);\r\n }\r\n renderPanel() {\r\n const className = this.getPanelClass();\r\n return (<div className={`${className} ${this.prefixCls}-${this.getCurrentUnit()}`} onWheel={this.handleWheel}>\n <div className={`${className}-inner`}>{this.renderPanelBody()}</div>\n </div>);\r\n }\r\n renderPanelBody() {\r\n return [\r\n this.getTimeBar(TimeUnit.hour),\r\n this.getTimeBar(TimeUnit.minute),\r\n this.getTimeBar(TimeUnit.second),\r\n <div key=\"active\" className={`${this.prefixCls}-time-focus-active`}/>,\r\n ];\r\n }\r\n renderCell(props) {\r\n return <li {...props}/>;\r\n }\r\n getTimeBar(unit) {\r\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\r\n const size = unit === TimeUnit.hour ? 24 : 60;\r\n const selected = date.clone();\r\n const pre = date.clone().set(unit, 0);\r\n const last = pre.clone().add(size, unit);\r\n const items = [];\r\n while (pre.isBefore(last)) {\r\n const current = pre.clone();\r\n const isDisabled = !isValidDate(current, selected);\r\n const text = String(pre.get(unit));\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-selected`]: pre.isSame(selected, unit),\r\n [`${prefixCls}-disabled`]: isDisabled,\r\n });\r\n const props = {\r\n key: text,\r\n className,\r\n children: <div className={`${prefixCls}-cell-inner`}>{text}</div>,\r\n };\r\n if (!isDisabled) {\r\n props.onClick = this.handleTimeCellClick.bind(this, current, unit);\r\n }\r\n items.push(renderer(props, text, current, selected));\r\n pre.add(1, unit);\r\n }\r\n return (<div key={unit} className={`${prefixCls}-time-list`} onMouseEnter={this.changeUnit.bind(this, unit)}>\n <ul style={{ top: `${(-selected.get(unit) + 4.5) * 100}%` }}>{items}</ul>\n <div className={`${prefixCls}-time-focus`}/>\n </div>);\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-time-panel`;\r\n }\r\n getCurrentUnit() {\r\n const { currentUnit = TimeUnit.hour } = this;\r\n return currentUnit;\r\n }\r\n getPrevUnit() {\r\n return TimeUnitQueue[TimeUnitQueue.indexOf(this.getCurrentUnit()) - 1];\r\n }\r\n getNextUnit() {\r\n return TimeUnitQueue[TimeUnitQueue.indexOf(this.getCurrentUnit()) + 1];\r\n }\r\n changeUnit(unit) {\r\n if (unit !== undefined && unit !== this.currentUnit) {\r\n this.currentUnit = unit;\r\n }\r\n }\r\n choose(date) {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.time) {\r\n this.changeSelectedDate(date);\r\n this.changeViewMode(mode);\r\n }\r\n else {\r\n super.choose(date);\r\n }\r\n }\r\n};\r\nTimesView.displayName = 'TimesView';\r\nTimesView.type = FieldType.time;\r\ntslib_1.__decorate([\r\n observable\r\n], TimesView.prototype, \"currentUnit\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], TimesView.prototype, \"handleDateTimeSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TimesView.prototype, \"handleWheel\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TimesView.prototype, \"renderCell\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TimesView.prototype, \"changeUnit\", null);\r\nTimesView = TimesView_1 = tslib_1.__decorate([\r\n observer\r\n], TimesView);\r\nexport default TimesView;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport classNames from 'classnames';\r\nimport DaysView from './DaysView';\r\nimport { ViewMode } from './enum';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { $l } from '../locale-context';\r\nimport { stopEvent } from '../_util/EventManager';\r\nexport default class WeeksView extends DaysView {\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.month);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (!e.altKey) {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'));\r\n }\r\n }\r\n renderPanelBody() {\r\n const { prefixCls, props: { date, renderer = this.renderCell }, } = this;\r\n const selected = date.clone();\r\n const firstDay = this.getFirstDay(date);\r\n const lastDay = firstDay.clone().add(42, 'd');\r\n const rows = [];\r\n let cells = [];\r\n while (firstDay.isBefore(lastDay)) {\r\n const currentDate = firstDay.clone();\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-selected`]: firstDay.isSame(selected, 'w'),\r\n });\r\n const text = String(currentDate.date());\r\n const dayProps = {\r\n key: firstDay.format('M_D'),\r\n className,\r\n children: this.renderInner(text),\r\n };\r\n if (cells.length === 0) {\r\n const weekProps = {\r\n key: firstDay.format('Wo'),\r\n className: `${className} ${prefixCls}-week-cell`,\r\n };\r\n cells.push(this.getWeekCell(weekProps, firstDay.week()));\r\n }\r\n cells.push(renderer(dayProps, text, currentDate, selected));\r\n if (cells.length === 8) {\r\n rows.push(<tr onClick={this.handleCellClick.bind(this, currentDate)} key={firstDay.format('M_D')}>\n {cells}\n </tr>);\r\n cells = [];\r\n }\r\n firstDay.add(1, 'd');\r\n }\r\n return rows;\r\n }\r\n choose(date) {\r\n super.choose(date.startOf('W'));\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-week-panel`;\r\n }\r\n renderFooter() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-footer`}>\n <a onClick={this.choose.bind(this, moment())}>{$l('DatePicker', 'this_week')}</a>\n </div>);\r\n }\r\n getWeekCell(props, text) {\r\n const { prefixCls } = this;\r\n return (<td {...props}>\n <div className={`${prefixCls}-cell-inner`}>W{text}</div>\n </td>);\r\n }\r\n getDaysOfWeek() {\r\n return [<th key=\"null\">&nbsp;</th>, ...super.getDaysOfWeek()];\r\n }\r\n}\r\nWeeksView.displayName = 'WeeksView';\r\nWeeksView.type = FieldType.week;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport classNames from 'classnames';\r\nimport autobind from '../_util/autobind';\r\nimport Icon from '../icon';\r\nimport { ViewMode } from './enum';\r\nimport DaysView, { alwaysValidDate } from './DaysView';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { stopEvent } from '../_util/EventManager';\r\nexport default class YearsView extends DaysView {\r\n handlePrevYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().subtract(10, 'y'));\r\n }\r\n handleYearSelect() {\r\n this.changeViewMode(ViewMode.decade);\r\n }\r\n handleNextYearClick() {\r\n this.changeSelectedDate(this.getCloneDate().add(10, 'y'));\r\n }\r\n handleKeyDownHome(e) {\r\n stopEvent(e);\r\n const date = this.getCloneDate();\r\n this.changeSelectedDate(date.subtract(date.year() % 10, 'y'));\r\n }\r\n handleKeyDownEnd(e) {\r\n stopEvent(e);\r\n const date = this.getCloneDate();\r\n this.changeSelectedDate(date.add(9 - (date.year() % 10), 'y'));\r\n }\r\n handleKeyDownLeft(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n this.changeViewMode(ViewMode.decade);\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'y'));\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n stopEvent(e);\r\n if (e.altKey) {\r\n if (this.props.mode !== ViewMode.year) {\r\n this.changeViewMode(ViewMode.month);\r\n }\r\n }\r\n else {\r\n this.changeSelectedDate(this.getCloneDate().add(1, 'y'));\r\n }\r\n }\r\n handleKeyDownUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(3, 'y'));\r\n }\r\n handleKeyDownDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(3, 'y'));\r\n }\r\n handleKeyDownPageUp(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().subtract(e.altKey ? 100 : 10, 'y'));\r\n }\r\n handleKeyDownPageDown(e) {\r\n stopEvent(e);\r\n this.changeSelectedDate(this.getCloneDate().add(e.altKey ? 100 : 10, 'y'));\r\n }\r\n renderHeader() {\r\n const { prefixCls, props: { date }, } = this;\r\n const year = date.year() % 10;\r\n const from = date.clone().subtract(year, 'y');\r\n const to = from.clone().add(9, 'y');\r\n return (<div className={`${prefixCls}-header`}>\n <a className={`${prefixCls}-prev-year`} onClick={this.handlePrevYearClick}>\n <Icon type=\"first_page\"/>\n </a>\n <a className={`${prefixCls}-view-select`} onClick={this.handleYearSelect}>\n {from.year()} - {to.year()}\n </a>\n <a className={`${prefixCls}-next-year`}>\n <Icon type=\"last_page\" onClick={this.handleNextYearClick}/>\n </a>\n </div>);\r\n }\r\n renderPanelHead() {\r\n return undefined;\r\n }\r\n renderPanelBody() {\r\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\r\n const selected = date.clone();\r\n const from = date\r\n .clone()\r\n .startOf('y')\r\n .subtract(date.year() % 10, 'y');\r\n const to = from.clone().add(10, 'y');\r\n const prevYear = from.clone().subtract(1, 'y');\r\n const lastYear = to.clone().add(1, 'y');\r\n const rows = [];\r\n let cells = [];\r\n while (prevYear.isBefore(lastYear)) {\r\n const currentYear = prevYear.clone();\r\n const isDisabled = !isValidDate(currentYear, selected);\r\n const className = classNames(`${prefixCls}-cell`, {\r\n [`${prefixCls}-old`]: currentYear.isBefore(from, 'y'),\r\n [`${prefixCls}-new`]: currentYear.isSame(to, 'y'),\r\n [`${prefixCls}-selected`]: prevYear.isSame(selected, 'y'),\r\n [`${prefixCls}-disabled`]: isDisabled,\r\n });\r\n const text = String(prevYear.year());\r\n const yearProps = {\r\n key: text,\r\n className,\r\n children: this.renderInner(text),\r\n };\r\n if (!isDisabled) {\r\n yearProps.onClick = this.handleCellClick.bind(this, currentYear);\r\n }\r\n cells.push(renderer(yearProps, text, currentYear, selected));\r\n if (cells.length === 3) {\r\n rows.push(<tr key={text}>{cells}</tr>);\r\n cells = [];\r\n }\r\n prevYear.add(1, 'y');\r\n }\r\n return rows;\r\n }\r\n renderFooter() {\r\n return undefined;\r\n }\r\n getPanelClass() {\r\n return `${this.prefixCls}-year-panel`;\r\n }\r\n choose(date) {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.year) {\r\n this.changeSelectedDate(date);\r\n this.changeViewMode(ViewMode.month);\r\n }\r\n else {\r\n super.choose(date);\r\n }\r\n }\r\n}\r\nYearsView.displayName = 'YearsView';\r\nYearsView.type = FieldType.year;\r\ntslib_1.__decorate([\r\n autobind\r\n], YearsView.prototype, \"handlePrevYearClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], YearsView.prototype, \"handleYearSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], YearsView.prototype, \"handleNextYearClick\", null);\r\n","export var ViewMode;\r\n(function (ViewMode) {\r\n ViewMode[\"time\"] = \"time\";\r\n ViewMode[\"dateTime\"] = \"dateTime\";\r\n ViewMode[\"week\"] = \"week\";\r\n ViewMode[\"date\"] = \"date\";\r\n ViewMode[\"month\"] = \"month\";\r\n ViewMode[\"year\"] = \"year\";\r\n ViewMode[\"decade\"] = \"decade\";\r\n})(ViewMode || (ViewMode = {}));\r\nexport var TimeUnit;\r\n(function (TimeUnit) {\r\n TimeUnit[\"hour\"] = \"h\";\r\n TimeUnit[\"minute\"] = \"m\";\r\n TimeUnit[\"second\"] = \"s\";\r\n})(TimeUnit || (TimeUnit = {}));\r\n","import DatePicker from './DatePicker';\r\nexport default DatePicker;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../trigger-field/style';\r\n","import DatePicker from '../date-picker/DatePicker';\r\nimport { ViewMode } from '../date-picker/enum';\r\nexport default class DateTimePicker extends DatePicker {\r\n getLimitWithType(limit, _minOrMax) {\r\n return limit;\r\n }\r\n}\r\nDateTimePicker.displayName = 'DateTimePicker';\r\nDateTimePicker.defaultProps = {\r\n ...DatePicker.defaultProps,\r\n mode: ViewMode.dateTime,\r\n};\r\n","import DateTimePicker from './DateTimePicker';\r\nexport default DateTimePicker;\r\n","// style dependencies\r\nimport '../../date-picker/style';\r\n","import React, { cloneElement, isValidElement, PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport Trigger from '../trigger/Trigger';\r\nimport { Action } from '../trigger/enum';\r\nimport { Placements } from './enum';\r\nimport builtinPlacements from './placements';\r\nconst popupStyle = { whiteSpace: 'nowrap' };\r\nexport default class Dropdown extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n /**\r\n * 调用传入的onHiddenChange方法\r\n *\r\n * @param {boolean} hidden\r\n */\r\n this.handlePopupHiddenChange = (hidden) => {\r\n const { onHiddenChange, onVisibleChange, hidden: propsHidden, visible: propsVisible, } = this.props;\r\n if (propsHidden === undefined && propsVisible === undefined) {\r\n this.setState({\r\n hidden,\r\n });\r\n }\r\n if (onHiddenChange) {\r\n onHiddenChange(hidden);\r\n }\r\n if (onVisibleChange) {\r\n onVisibleChange(!hidden);\r\n }\r\n };\r\n this.handleClick = e => {\r\n const { onOverlayClick, overlay, hidden, visible } = this.props;\r\n const { onClick } = ((isValidElement(overlay) && overlay.props) || {});\r\n if (onOverlayClick) {\r\n onOverlayClick(e);\r\n }\r\n if (onClick) {\r\n onClick(e);\r\n }\r\n if (hidden === undefined && visible === undefined) {\r\n this.setState({\r\n hidden: true,\r\n });\r\n }\r\n };\r\n if ('hidden' in props) {\r\n this.state = {\r\n hidden: props.hidden,\r\n };\r\n }\r\n else if ('visible' in props) {\r\n this.state = {\r\n hidden: !props.visible,\r\n };\r\n }\r\n else if ('defaultHidden' in props) {\r\n this.state = {\r\n hidden: props.defaultHidden,\r\n };\r\n }\r\n else {\r\n this.state = {\r\n hidden: !props.defaultVisible,\r\n };\r\n }\r\n }\r\n get triggerAction() {\r\n const { trigger } = this.props;\r\n return trigger;\r\n }\r\n get transitionName() {\r\n const { placement } = this.props;\r\n let result = 'slide-up';\r\n if (placement && placement.startsWith('top')) {\r\n result = 'slide-down';\r\n }\r\n return result;\r\n }\r\n get prefixCls() {\r\n const { suffixCls, prefixCls } = this.props;\r\n return getProPrefixCls(suffixCls, prefixCls);\r\n }\r\n getMenuElement() {\r\n const { overlay } = this.props;\r\n if (isValidElement(overlay)) {\r\n return cloneElement(overlay, {\r\n onClick: this.handleClick,\r\n });\r\n }\r\n }\r\n componentWillReceiveProps({ hidden, visible }) {\r\n if (hidden !== undefined) {\r\n this.setState({\r\n hidden,\r\n });\r\n }\r\n else if (visible !== undefined) {\r\n this.setState({\r\n hidden: !visible,\r\n });\r\n }\r\n }\r\n render() {\r\n const { prefixCls, state: { hidden }, props: { children, placement }, } = this;\r\n return (<Trigger prefixCls={prefixCls} action={this.triggerAction} builtinPlacements={builtinPlacements} popupPlacement={placement} popupContent={this.getMenuElement()} popupStyle={popupStyle} onPopupHiddenChange={this.handlePopupHiddenChange} popupHidden={hidden}>\n {children}\n </Trigger>);\r\n }\r\n}\r\nDropdown.displayName = 'Dropdown';\r\nDropdown.propTypes = {\r\n trigger: PropTypes.arrayOf(PropTypes.oneOf([Action.focus, Action.hover, Action.click, Action.contextMenu])),\r\n overlay: PropTypes.any,\r\n placement: PropTypes.oneOf([\r\n Placements.bottomLeft,\r\n Placements.bottomCenter,\r\n Placements.bottomRight,\r\n Placements.topLeft,\r\n Placements.topCenter,\r\n Placements.topRight,\r\n ]),\r\n hidden: PropTypes.bool,\r\n visible: PropTypes.bool,\r\n onHiddenChange: PropTypes.func,\r\n onVisibleChange: PropTypes.func,\r\n onOverlayClick: PropTypes.func,\r\n suffixCls: PropTypes.string,\r\n prefixCls: PropTypes.string,\r\n defaultHidden: PropTypes.bool,\r\n defaultVisible: PropTypes.bool,\r\n};\r\nDropdown.defaultProps = {\r\n suffixCls: 'dropdown',\r\n placement: Placements.bottomLeft,\r\n trigger: [Action.hover, Action.focus],\r\n defaultHidden: true,\r\n};\r\n","export var Placements;\r\n(function (Placements) {\r\n Placements[\"bottomLeft\"] = \"bottomLeft\";\r\n Placements[\"bottomCenter\"] = \"bottomCenter\";\r\n Placements[\"bottomRight\"] = \"bottomRight\";\r\n Placements[\"topLeft\"] = \"topLeft\";\r\n Placements[\"topCenter\"] = \"topCenter\";\r\n Placements[\"topRight\"] = \"topRight\";\r\n})(Placements || (Placements = {}));\r\n","import Dropdown from './Dropdown';\r\nexport default Dropdown;\r\n","const autoAdjustOverflow = {\r\n adjustX: 1,\r\n adjustY: 1,\r\n};\r\nconst targetOffset = [0, 0];\r\nexport const placements = {\r\n topLeft: {\r\n points: ['bl', 'tl'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, -4],\r\n targetOffset,\r\n },\r\n topCenter: {\r\n points: ['bc', 'tc'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, -4],\r\n targetOffset,\r\n },\r\n topRight: {\r\n points: ['br', 'tr'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, -4],\r\n targetOffset,\r\n },\r\n bottomLeft: {\r\n points: ['tl', 'bl'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, 4],\r\n targetOffset,\r\n },\r\n bottomCenter: {\r\n points: ['tc', 'bc'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, 4],\r\n targetOffset,\r\n },\r\n bottomRight: {\r\n points: ['tr', 'br'],\r\n overflow: autoAdjustOverflow,\r\n offset: [0, 4],\r\n targetOffset,\r\n },\r\n};\r\nexport default placements;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../trigger/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { observer } from 'mobx-react';\r\nimport { computed } from 'mobx';\r\nimport { TextField } from '../text-field/TextField';\r\nimport { $l } from '../locale-context';\r\nimport { FieldType } from '../data-set/enum';\r\nlet EmailField = class EmailField extends TextField {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'email';\r\n }\r\n getFieldType() {\r\n return FieldType.email;\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('EmailField', label ? 'value_missing' : 'value_missing_no_label', { label }),\r\n typeMismatch: $l('EmailField', 'type_mismatch'),\r\n };\r\n }\r\n};\r\nEmailField.displayName = 'EmailField';\r\ntslib_1.__decorate([\r\n computed\r\n], EmailField.prototype, \"defaultValidationMessages\", null);\r\nEmailField = tslib_1.__decorate([\r\n observer\r\n], EmailField);\r\nexport default EmailField;\r\n","import EmailField from './EmailField';\r\nexport default EmailField;\r\n","import '../../text-field/style';\r\n","import React, { PureComponent } from 'react';\r\nimport Icon from '../icon';\r\nimport { stopEvent, stopPropagation } from '../_util/EventManager';\r\nexport default class CloseButton extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.handleClick = (e) => {\r\n stopEvent(e);\r\n const { onClose, value, index } = this.props;\r\n onClose(e, value, index);\r\n };\r\n }\r\n render() {\r\n return (<Icon type=\"cancel\" onClick={this.handleClick} onFocus={stopPropagation} onMouseDown={stopEvent} tabIndex={-1}/>);\r\n }\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport Map from 'core-js/library/fn/map';\r\nimport React, { cloneElement, isValidElement, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, computed, isArrayLike, observable, runInAction, toJS } from 'mobx';\r\nimport classNames from 'classnames';\r\nimport omit from 'lodash/omit';\r\nimport isNumber from 'lodash/isNumber';\r\nimport isString from 'lodash/isString';\r\nimport isNil from 'lodash/isNil';\r\nimport defaultTo from 'lodash/defaultTo';\r\nimport { isMoment } from 'moment';\r\nimport { observer } from 'mobx-react';\r\nimport noop from 'lodash/noop';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport autobind from '../_util/autobind';\r\nimport Validator from '../validator/Validator';\r\nimport FormContext from '../form/FormContext';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nimport Icon from '../icon';\r\nimport Tooltip from '../tooltip';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport { FieldTrim, FieldType } from '../data-set/enum';\r\nimport { ShowHelp } from './enum';\r\nimport { FIELD_SUFFIX } from '../form/utils';\r\nimport { LabelLayout } from '../form/enum';\r\nimport Animate from '../animate';\r\nimport CloseButton from './CloseButton';\r\nimport { fromRangeValue, getDateFormatByField, toMultipleValue, toRangeValue } from './utils';\r\nimport isSame from '../_util/isSame';\r\nimport formatString from '../formatter/formatString';\r\nconst map = {};\r\nexport function getFieldsById(id) {\r\n if (!map[id]) {\r\n map[id] = [];\r\n }\r\n return map[id];\r\n}\r\nexport class FormField extends DataSetComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.emptyValue = null;\r\n }\r\n get validator() {\r\n const { field } = this;\r\n if (field) {\r\n return field.validator;\r\n }\r\n return new Validator(undefined, this);\r\n }\r\n get name() {\r\n return this.observableProps.name;\r\n }\r\n get value() {\r\n return this.observableProps.value;\r\n }\r\n set value(value) {\r\n runInAction(() => {\r\n this.observableProps.value = value;\r\n });\r\n }\r\n get labelLayout() {\r\n return this.props.labelLayout || this.context.labelLayout;\r\n }\r\n get hasFloatLabel() {\r\n const { labelLayout } = this;\r\n return labelLayout === LabelLayout.float;\r\n }\r\n get isControlled() {\r\n return this.props.value !== undefined;\r\n }\r\n get pristine() {\r\n return this.props.pristine || this.context.pristine;\r\n }\r\n get defaultValidationMessages() {\r\n return {};\r\n }\r\n get editable() {\r\n return !this.isReadOnly();\r\n }\r\n get dataSet() {\r\n const { record } = this;\r\n if (record) {\r\n return record.dataSet;\r\n }\r\n return this.observableProps.dataSet;\r\n }\r\n get record() {\r\n const { record, dataSet, dataIndex } = this.observableProps;\r\n if (record) {\r\n return record;\r\n }\r\n if (dataSet) {\r\n if (isNumber(dataIndex)) {\r\n return dataSet.get(dataIndex);\r\n }\r\n return dataSet.current;\r\n }\r\n return undefined;\r\n }\r\n get field() {\r\n const { record, dataSet, name } = this;\r\n const { displayName } = this.constructor;\r\n warning(dataSet && displayName !== 'Output' ? !!name : true, `${displayName} with binding DataSet need property name.`);\r\n if (name) {\r\n const recordField = record ? record.getField(name) : undefined;\r\n const dsField = dataSet ? dataSet.getField(name) : undefined;\r\n if (recordField) {\r\n return recordField;\r\n }\r\n return dsField;\r\n }\r\n return undefined;\r\n }\r\n get isValid() {\r\n return this.pristine || (this.field ? this.field.valid : this.validator.validity.valid);\r\n }\r\n get multiple() {\r\n return this.getProp('multiple');\r\n }\r\n get trim() {\r\n return this.getProp('trim');\r\n }\r\n get format() {\r\n return this.getProp('format');\r\n }\r\n get range() {\r\n return this.getProp('range');\r\n }\r\n defaultRenderer({ text, repeat, maxTagTextLength }) {\r\n return repeat !== undefined &&\r\n maxTagTextLength &&\r\n isString(text) &&\r\n text.length > maxTagTextLength\r\n ? `${text.slice(0, maxTagTextLength)}...`\r\n : text;\r\n }\r\n /**\r\n * 判断是否应该显示验证信息, 作为属性传给Tooltip\r\n *\r\n * @readonly\r\n * @type {(undefined | boolean)}\r\n * @memberof FormField\r\n */\r\n isValidationMessageHidden(message) {\r\n const { hidden, noValidate } = this.props;\r\n if (hidden || this.pristine || (!this.record && noValidate) || !message) {\r\n return true;\r\n }\r\n }\r\n isEmpty() {\r\n const value = this.getValue();\r\n return isArrayLike(value) ? !value.length : isEmpty(value);\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n name: props.name,\r\n record: 'record' in props ? props.record : context.record,\r\n dataSet: 'dataSet' in props ? props.dataSet : context.dataSet,\r\n dataIndex: defaultTo(props.dataIndex, context.dataIndex),\r\n value: this.observableProps || 'value' in props ? props.value : props.defaultValue,\r\n };\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'record',\r\n 'defaultValue',\r\n 'dataIndex',\r\n 'onEnterDown',\r\n 'onClear',\r\n 'readOnly',\r\n 'validator',\r\n 'validationRenderer',\r\n 'help',\r\n 'showHelp',\r\n 'renderer',\r\n 'maxTagPlaceholder',\r\n 'maxTagCount',\r\n 'maxTagTextLength',\r\n 'rowIndex',\r\n 'colIndex',\r\n 'labelLayout',\r\n 'labelWidth',\r\n 'pristine',\r\n 'range',\r\n 'trim',\r\n ]);\r\n otherProps.onChange = !this.isDisabled() && !this.isReadOnly() ? this.handleChange : noop;\r\n otherProps.onKeyDown = this.handleKeyDown;\r\n return otherProps;\r\n }\r\n getWrapperClassNames(...args) {\r\n const { prefixCls } = this;\r\n return super.getWrapperClassNames({\r\n [`${prefixCls}-invalid`]: !this.isValid,\r\n [`${prefixCls}-float-label`]: this.hasFloatLabel,\r\n [`${prefixCls}-required`]: this.getProp('required'),\r\n }, ...args);\r\n }\r\n renderWrapper() {\r\n return undefined;\r\n }\r\n renderHelpMessage() {\r\n const { showHelp } = this.props;\r\n const help = this.getProp('help');\r\n if (showHelp === ShowHelp.newLine && help) {\r\n return (<div key=\"help\" className={`${getProPrefixCls(FIELD_SUFFIX)}-help`}>\n {help}\n </div>);\r\n }\r\n }\r\n getLabel() {\r\n return this.getProp('label');\r\n }\r\n renderFloatLabel() {\r\n if (this.hasFloatLabel) {\r\n const label = this.getLabel();\r\n if (label) {\r\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\r\n const required = this.getProp('required');\r\n const classString = classNames(`${prefixCls}-label`, {\r\n [`${prefixCls}-required`]: required,\r\n });\r\n return (<div className={`${prefixCls}-label-wrapper`}>\n <div className={classString}>{label}</div>\n </div>);\r\n }\r\n }\r\n }\r\n componentDidMount() {\r\n this.addToForm(this.props, this.context);\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n super.componentWillReceiveProps(nextProps, nextContext);\r\n this.removeFromForm(this.props, this.context);\r\n this.addToForm(nextProps, nextContext);\r\n if (!this.record && this.props.value !== nextProps.value) {\r\n this.validate(nextProps.value);\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.removeFromForm(this.props, this.context);\r\n }\r\n addToForm(props, context) {\r\n const { form } = props;\r\n const { formNode } = context;\r\n if (form) {\r\n let fields = map[form];\r\n if (!fields) {\r\n fields = [];\r\n map[form] = fields;\r\n }\r\n fields.push(this);\r\n }\r\n else if (formNode) {\r\n formNode.addField(this);\r\n }\r\n }\r\n removeFromForm(props, context) {\r\n const { form } = props;\r\n const { formNode } = context;\r\n if (form) {\r\n const fields = map[form];\r\n if (fields) {\r\n const index = fields.indexOf(this);\r\n if (index !== -1) {\r\n fields.splice(index, 1);\r\n }\r\n }\r\n }\r\n else if (formNode) {\r\n formNode.removeField(this);\r\n }\r\n }\r\n renderValidationMessage(validationResult) {\r\n const validationMessage = this.getValidationMessage(validationResult);\r\n if (validationMessage) {\r\n return (<div className={getProPrefixCls('validation-message')}>\n {this.context.labelLayout !== LabelLayout.float && <Icon type=\"error\"/>}\n <span>{validationMessage}</span>\n </div>);\r\n }\r\n }\r\n getValidatorProps() {\r\n const { name, range, multiple, defaultValidationMessages } = this;\r\n const type = this.getFieldType();\r\n const required = this.getProp('required');\r\n const customValidator = this.getProp('validator');\r\n const label = this.getProp('label');\r\n return {\r\n type,\r\n required,\r\n customValidator,\r\n name,\r\n label,\r\n range,\r\n multiple,\r\n defaultValidationMessages,\r\n form: this.context.formNode,\r\n };\r\n }\r\n getValidationMessage(validationResult = this.validator.currentValidationResult) {\r\n const { validator, props: { validationRenderer }, } = this;\r\n if (validationResult) {\r\n if (validationRenderer) {\r\n const validationMessage = validationRenderer(validationResult, validator.props);\r\n if (validationMessage) {\r\n return validationMessage;\r\n }\r\n }\r\n return validationResult.validationMessage;\r\n }\r\n }\r\n handleFocus(e) {\r\n super.handleFocus(e);\r\n if (this.range) {\r\n this.beginRange();\r\n }\r\n }\r\n handleBlur(e) {\r\n super.handleBlur(e);\r\n if (this.range) {\r\n this.endRange();\r\n }\r\n }\r\n handleChange(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n handleKeyDown(e) {\r\n const { onKeyDown = noop, onEnterDown = noop } = this.props;\r\n onKeyDown(e);\r\n if (!e.isDefaultPrevented()) {\r\n switch (e.keyCode) {\r\n case KeyCode.ENTER:\r\n this.handleEnterDown(e);\r\n onEnterDown(e);\r\n break;\r\n case KeyCode.ESC:\r\n this.blur();\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n handleEnterDown(e) {\r\n if (this.multiple) {\r\n if (this.range) {\r\n this.endRange();\r\n e.preventDefault();\r\n }\r\n else {\r\n const { value } = e.target;\r\n if (value !== '') {\r\n this.syncValueOnBlur(value);\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n else {\r\n this.blur();\r\n }\r\n }\r\n syncValueOnBlur(value) {\r\n this.prepareSetValue(value);\r\n }\r\n handleMutipleValueRemove(e, value, index) {\r\n this.removeValue(value, index);\r\n e.stopPropagation();\r\n }\r\n getDateFormat() {\r\n return getDateFormatByField(this.field, this.getFieldType());\r\n }\r\n processValue(value) {\r\n if (!isNil(value)) {\r\n if (isMoment(value)) {\r\n return value.format(this.getDateFormat());\r\n }\r\n return value.toString();\r\n }\r\n return '';\r\n }\r\n isReadOnly() {\r\n return (this.getProp('readOnly') ||\r\n this.pristine ||\r\n (this.isControlled && !this.props.onChange));\r\n }\r\n getDataSetValue() {\r\n const { record, pristine, name } = this;\r\n if (record) {\r\n return pristine ? record.getPristineValue(name) : record.get(name);\r\n }\r\n }\r\n getTextNode() {\r\n const text = this.isFocused && this.editable\r\n ? this.processValue(this.getValue())\r\n : this.processRenderer(this.getValue());\r\n return text;\r\n }\r\n getText(value) {\r\n return this.processValue(value);\r\n }\r\n processText(value) {\r\n return value;\r\n }\r\n processRenderer(value, repeat) {\r\n const { record, dataSet, props: { renderer = this.defaultRenderer, name, maxTagTextLength }, } = this;\r\n const text = this.processText(this.getText(value));\r\n return renderer\r\n ? renderer({\r\n value,\r\n text,\r\n record,\r\n dataSet,\r\n name,\r\n repeat,\r\n maxTagTextLength,\r\n })\r\n : text;\r\n }\r\n processRangeValue(value, repeat) {\r\n if (repeat === undefined) {\r\n value = this.rangeValue;\r\n }\r\n if (value === undefined && !this.multiple) {\r\n value = toRangeValue(this.getValue(), this.range);\r\n }\r\n return (value || []).map(item => this.processRenderer(item, repeat));\r\n }\r\n getOldValue() {\r\n return this.getValue();\r\n }\r\n getValue() {\r\n const { name } = this;\r\n if (this.dataSet && name) {\r\n return this.getDataSetValue();\r\n }\r\n return this.value;\r\n }\r\n getValues() {\r\n return toMultipleValue(this.getValue(), this.range);\r\n }\r\n addValue(...values) {\r\n if (this.multiple) {\r\n const oldValues = this.getValues();\r\n if (values.length) {\r\n this.setValue([...oldValues, ...values]);\r\n }\r\n else if (!oldValues.length) {\r\n this.setValue(this.emptyValue);\r\n }\r\n }\r\n else {\r\n this.setValue(values.pop());\r\n }\r\n }\r\n isLowerRange(_value1, _value2) {\r\n return false;\r\n }\r\n prepareSetValue(...value) {\r\n const { rangeTarget, range, rangeValue } = this;\r\n const values = value.filter(item => !isEmpty(item));\r\n if (range) {\r\n if (rangeTarget !== undefined && rangeValue) {\r\n const [start, end] = rangeValue;\r\n const newValue = values.pop();\r\n rangeValue[rangeTarget] = newValue;\r\n if (rangeTarget === 0 && newValue && end && this.isLowerRange(end, newValue)) {\r\n rangeValue[rangeTarget] = end;\r\n rangeValue[1] = newValue;\r\n }\r\n if (rangeTarget === 1 && newValue && start && this.isLowerRange(newValue, start)) {\r\n rangeValue[rangeTarget] = start;\r\n rangeValue[0] = newValue;\r\n }\r\n }\r\n }\r\n else {\r\n this.addValue(...values);\r\n }\r\n }\r\n removeValues(values, index = 0) {\r\n let repeat;\r\n this.setValue(values.reduce((oldValues, value) => {\r\n repeat = 0;\r\n return oldValues.filter(v => {\r\n if (this.getValueKey(v) === this.getValueKey(value)) {\r\n if (index === -1 || repeat === index) {\r\n this.afterRemoveValue(value, repeat++);\r\n return false;\r\n }\r\n repeat++;\r\n }\r\n return true;\r\n });\r\n }, this.getValues()));\r\n }\r\n removeValue(value, index = 0) {\r\n this.removeValues([value], index);\r\n }\r\n afterRemoveValue(_value, _repeat) { }\r\n beginRange() {\r\n this.setRangeTarget(0);\r\n this.rangeValue = this.multiple\r\n ? [undefined, undefined]\r\n : toRangeValue(this.getValue(), this.range);\r\n }\r\n endRange() {\r\n if (this.rangeValue) {\r\n const values = this.rangeValue.slice();\r\n // if (this.multiple) {\r\n this.rangeValue = undefined;\r\n // }\r\n if (!values.every(isNil)) {\r\n this.addValue(fromRangeValue(values, this.range));\r\n }\r\n }\r\n }\r\n setRangeTarget(target) {\r\n this.rangeTarget = target;\r\n }\r\n setValue(value) {\r\n if (!this.isReadOnly()) {\r\n if (this.multiple || this.range\r\n ? isArrayLike(value) && !value.length\r\n : isNil(value) || value === '') {\r\n value = this.emptyValue;\r\n }\r\n const { name, dataSet, trim, format, observableProps: { dataIndex }, } = this;\r\n const { onChange = noop } = this.props;\r\n const { formNode } = this.context;\r\n const old = this.getOldValue();\r\n if (dataSet && name) {\r\n (this.record || dataSet.create({}, dataIndex)).set(name, value);\r\n }\r\n else {\r\n value = formatString(value, {\r\n trim,\r\n format,\r\n });\r\n this.validate(value);\r\n }\r\n if (!isSame(old, value)) {\r\n onChange(value, toJS(old), formNode);\r\n }\r\n this.value = value;\r\n }\r\n }\r\n renderRangeValue(readOnly, value, repeat) {\r\n const rangeValue = this.processRangeValue(value, repeat);\r\n if (readOnly) {\r\n if (rangeValue.length) {\r\n return (<>\n {rangeValue[0]}~{rangeValue[1]}\n </>);\r\n }\r\n }\r\n }\r\n getValueKey(v) {\r\n if (isArrayLike(v)) {\r\n return v.join(',');\r\n }\r\n return v;\r\n }\r\n renderMultipleValues(readOnly) {\r\n const values = this.getValues();\r\n const valueLength = values.length;\r\n const { prefixCls, range, props: { maxTagCount = valueLength, maxTagPlaceholder }, } = this;\r\n const { validationResults } = this.validator;\r\n const repeats = new Map();\r\n const blockClassName = classNames({\r\n [`${prefixCls}-multiple-block-disabled`]: this.isDisabled(),\r\n }, `${prefixCls}-multiple-block`);\r\n const tags = values.slice(0, maxTagCount).map(v => {\r\n const key = this.getValueKey(v);\r\n const repeat = repeats.get(key) || 0;\r\n const text = range ? this.renderRangeValue(true, v, repeat) : this.processRenderer(v, repeat);\r\n repeats.set(key, repeat + 1);\r\n if (!isNil(text)) {\r\n const validationResult = validationResults.find(error => error.value === v);\r\n const className = classNames({\r\n [`${prefixCls}-multiple-block-invalid`]: validationResult,\r\n }, blockClassName);\r\n const validationMessage = validationResult && this.renderValidationMessage(validationResult);\r\n const closeBtn = !this.isDisabled() && !this.isReadOnly() && (<CloseButton onClose={this.handleMutipleValueRemove} value={v} index={repeat}/>);\r\n const inner = readOnly ? (<span className={className}>{text}</span>) : (<li className={className}>\n <div>{text}</div>\n {closeBtn}\n </li>);\r\n return (<Tooltip key={`${key}-${repeat}`} title={validationMessage} theme=\"light\" placement=\"bottomLeft\" hidden={this.isValidationMessageHidden(validationMessage)}>\n {inner}\n </Tooltip>);\r\n }\r\n return undefined;\r\n });\r\n if (valueLength > maxTagCount) {\r\n let content = `+ ${valueLength - maxTagCount} ...`;\r\n if (maxTagPlaceholder) {\r\n const omittedValues = values.slice(maxTagCount, valueLength);\r\n content =\r\n typeof maxTagPlaceholder === 'function'\r\n ? maxTagPlaceholder(omittedValues)\r\n : maxTagPlaceholder;\r\n }\r\n tags.push(<li key=\"maxTagPlaceholder\" className={blockClassName}>\n <div>{content}</div>\n </li>);\r\n }\r\n return tags;\r\n }\r\n clear() {\r\n const { onClear = noop } = this.props;\r\n this.setValue(this.emptyValue);\r\n this.rangeValue = this.isFocused ? [undefined, undefined] : undefined;\r\n onClear();\r\n }\r\n async checkValidity() {\r\n const { name } = this;\r\n const valid = await this.validate();\r\n const { onInvalid = noop } = this.props;\r\n if (!valid) {\r\n const { validationResults, validity } = this.validator;\r\n onInvalid(validationResults, validity, name);\r\n }\r\n return valid;\r\n }\r\n async validate(value) {\r\n let invalid = false;\r\n if (!this.props.noValidate) {\r\n if (value === undefined) {\r\n value = this.multiple ? this.getValues() : this.getValue();\r\n }\r\n const { validator } = this;\r\n validator.reset();\r\n invalid = !(await validator.checkValidity(value));\r\n }\r\n return !invalid;\r\n }\r\n isDisabled() {\r\n const { disabled } = this.context;\r\n const { field, record } = this;\r\n if (disabled) {\r\n return disabled;\r\n }\r\n if (field) {\r\n const cascadeMap = field.get('cascadeMap');\r\n if (cascadeMap &&\r\n (!record || Object.keys(cascadeMap).some(cascade => !record.get(cascadeMap[cascade])))) {\r\n return true;\r\n }\r\n }\r\n return super.isDisabled();\r\n }\r\n reset() {\r\n if (!this.isControlled && !this.dataSet) {\r\n this.setValue(this.props.defaultValue);\r\n }\r\n this.validator.reset();\r\n }\r\n getFieldType() {\r\n const { field } = this;\r\n return (field && field.get('type')) || FieldType.string;\r\n }\r\n getProp(propName) {\r\n const { field } = this;\r\n return defaultTo(field && field.get(propName), this.props[propName]);\r\n }\r\n render() {\r\n const validationMessage = this.renderValidationMessage();\r\n const wrapper = this.renderWrapper();\r\n const help = this.renderHelpMessage();\r\n return this.hasFloatLabel ? ([\r\n isValidElement(wrapper) && cloneElement(wrapper, { key: 'wrapper' }),\r\n <Animate transitionName=\"show-error\" component=\"\" transitionAppear key=\"validation-message\">\n {validationMessage}\n </Animate>,\r\n help,\r\n ]) : (<Tooltip title={!!(this.multiple && this.getValues().length) ||\r\n this.isValidationMessageHidden(validationMessage)\r\n ? null\r\n : validationMessage} theme=\"light\" placement=\"bottomLeft\">\n {wrapper}\n {help}\n </Tooltip>);\r\n }\r\n}\r\nFormField.contextType = FormContext;\r\nFormField.propTypes = {\r\n type: PropTypes.string,\r\n /**\r\n * 字段名\r\n */\r\n name: PropTypes.string,\r\n /**\r\n * <受控>当前值\r\n */\r\n value: PropTypes.any,\r\n /**\r\n * 默认值\r\n */\r\n defaultValue: PropTypes.any,\r\n /**\r\n * 是否必输\r\n */\r\n required: PropTypes.bool,\r\n /**\r\n * 是否只读\r\n */\r\n readOnly: PropTypes.bool,\r\n /**\r\n * 对照表单id\r\n */\r\n form: PropTypes.string,\r\n /**\r\n * 对照record在DataSet中的index\r\n * @default dataSet.currentIndex\r\n */\r\n dataIndex: PropTypes.number,\r\n /**\r\n * 是否是多值\r\n * @default false\r\n */\r\n multiple: PropTypes.bool,\r\n /**\r\n * 表单下控件跨越的行数\r\n */\r\n rowSpan: PropTypes.number,\r\n /**\r\n * 表单下控件跨越的列数\r\n */\r\n colSpan: PropTypes.number,\r\n /**\r\n * 校验器\r\n * (value: any, name?: string, form?: ReactInstance) => string | boolean | Promise<string | boolean>\r\n */\r\n validator: PropTypes.func,\r\n /**\r\n * 校验失败回调\r\n * (validationMessage: ReactNode, validity: Validity, name?: string) => void\r\n */\r\n onInvalid: PropTypes.func,\r\n /**\r\n * 额外信息,常用作提示\r\n */\r\n help: PropTypes.string,\r\n /**\r\n * 显示提示信息的方式\r\n */\r\n showHelp: PropTypes.oneOf([ShowHelp.tooltip, ShowHelp.newLine, ShowHelp.none]),\r\n /**\r\n * 渲染器\r\n */\r\n renderer: PropTypes.func,\r\n /**\r\n * 校验信息渲染器\r\n */\r\n validationRenderer: PropTypes.func,\r\n /**\r\n * 多值标签超出最大数量时的占位描述\r\n */\r\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\r\n /**\r\n * 多值标签最大数量\r\n */\r\n maxTagCount: PropTypes.number,\r\n /**\r\n * 多值标签文案最大长度\r\n */\r\n maxTagTextLength: PropTypes.number,\r\n /**\r\n * 显示原始值\r\n */\r\n pristine: PropTypes.bool,\r\n /**\r\n * 字符串值是否去掉首尾空格\r\n * 可选值: both left right none\r\n * @default: both\r\n */\r\n trim: PropTypes.oneOf([FieldTrim.both, FieldTrim.left, FieldTrim.right, FieldTrim.none]),\r\n /**\r\n * 值变化回调\r\n * (value: any, oldValue: any, form?: ReactInstance) => void\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * 输入回调\r\n */\r\n onInput: PropTypes.func,\r\n /**\r\n * 键盘回车回调\r\n */\r\n onEnterDown: PropTypes.func,\r\n ...DataSetComponent.propTypes,\r\n};\r\nFormField.defaultProps = {\r\n readOnly: false,\r\n noValidate: false,\r\n showHelp: 'newLine',\r\n trim: FieldTrim.both,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], FormField.prototype, \"rangeTarget\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], FormField.prototype, \"rangeValue\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"validator\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"name\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"value\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"editable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"dataSet\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"record\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"field\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"isValid\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"multiple\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"trim\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"format\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], FormField.prototype, \"range\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"defaultRenderer\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"handleFocus\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"handleBlur\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"handleChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"handleMutipleValueRemove\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"prepareSetValue\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"beginRange\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"endRange\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"setRangeTarget\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"setValue\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FormField.prototype, \"clear\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FormField.prototype, \"reset\", null);\r\nlet ObserverFormField = class ObserverFormField extends FormField {\r\n};\r\nObserverFormField.defaultProps = FormField.defaultProps;\r\nObserverFormField = tslib_1.__decorate([\r\n observer\r\n], ObserverFormField);\r\nexport default ObserverFormField;\r\n","export var ShowHelp;\r\n(function (ShowHelp) {\r\n ShowHelp[\"tooltip\"] = \"tooltip\";\r\n ShowHelp[\"newLine\"] = \"newLine\";\r\n ShowHelp[\"none\"] = \"none\";\r\n})(ShowHelp || (ShowHelp = {}));\r\n","import ObserverFormField from './FormField';\r\nexport default ObserverFormField;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../tooltip/style';\r\nimport '../../validator/style';\r\n","import isObject from 'lodash/isObject';\r\nimport isNil from 'lodash/isNil';\r\nimport { isArrayLike } from 'mobx';\r\nimport moment from 'moment';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport { FieldType } from '../data-set/enum';\r\nexport function toRangeValue(value, range) {\r\n if (isArrayLike(range)) {\r\n if (isObject(value)) {\r\n const [start, end] = range;\r\n return [value[start], value[end]];\r\n }\r\n }\r\n else if (isArrayLike(value)) {\r\n return value.slice(0, 2);\r\n }\r\n return [undefined, undefined];\r\n}\r\nexport function fromRangeValue(value, range) {\r\n if (isArrayLike(range)) {\r\n const [start, end] = range;\r\n return {\r\n [start]: value[0],\r\n [end]: value[1],\r\n };\r\n }\r\n return value;\r\n}\r\nexport function toMultipleValue(value, range) {\r\n if (!isNil(value)) {\r\n const multipleValue = isArrayLike(value) ? value.slice() : [value];\r\n if (range) {\r\n return multipleValue.map(item => toRangeValue(item, range));\r\n }\r\n return multipleValue;\r\n }\r\n return [];\r\n}\r\nexport function getDateFormatByFieldType(type) {\r\n const formatter = getConfig('formatter');\r\n switch (type) {\r\n case FieldType.date:\r\n return formatter.date;\r\n case FieldType.dateTime:\r\n return formatter.dateTime;\r\n case FieldType.week:\r\n return formatter.week;\r\n case FieldType.month:\r\n return formatter.month;\r\n case FieldType.year:\r\n return formatter.year;\r\n case FieldType.time:\r\n return formatter.time;\r\n default:\r\n return formatter.date;\r\n }\r\n}\r\nexport function getDateFormatByField(field, type) {\r\n if (field) {\r\n return field.get('format') || getDateFormatByFieldType(type || field.type);\r\n }\r\n if (type) {\r\n return getDateFormatByFieldType(type);\r\n }\r\n return getConfig('formatter').jsonDate || moment.defaultFormat;\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Children, createElement, isValidElement, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport { action as mobxAction, computed, isArrayLike, observable, runInAction } from 'mobx';\r\nimport omit from 'lodash/omit';\r\nimport isNumber from 'lodash/isNumber';\r\nimport isString from 'lodash/isString';\r\nimport noop from 'lodash/noop';\r\nimport defaultTo from 'lodash/defaultTo';\r\nimport Responsive from 'choerodon-ui/lib/responsive/Responsive';\r\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport axios from '../axios';\r\nimport autobind from '../_util/autobind';\r\nimport { getFieldsById } from '../field/FormField';\r\nimport FormContext from './FormContext';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nimport { LabelAlign, LabelLayout, ResponsiveKeys } from './enum';\r\nimport { defaultColumns, defaultLabelWidth, FIELD_SUFFIX, getProperty, normalizeLabelWidth, } from './utils';\r\n/**\r\n * 表单name生成器\r\n */\r\nconst NameGen = (function* (start) {\r\n while (true) {\r\n start += 1;\r\n yield `form-${start}`;\r\n }\r\n})(0);\r\nconst labelWidthPropTypes = PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.arrayOf(PropTypes.number),\r\n]);\r\nconst labelAlignPropTypes = PropTypes.oneOf([LabelAlign.left, LabelAlign.center, LabelAlign.right]);\r\nconst labelLayoutPropTypes = PropTypes.oneOf([\r\n LabelLayout.horizontal,\r\n LabelLayout.vertical,\r\n LabelLayout.placeholder,\r\n LabelLayout.float,\r\n]);\r\nlet Form = class Form extends DataSetComponent {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.fields = [];\r\n this.name = NameGen.next().value;\r\n runInAction(() => {\r\n this.responsiveItems = [];\r\n });\r\n }\r\n get axios() {\r\n return this.observableProps.axios || getConfig('axios') || axios;\r\n }\r\n get dataSet() {\r\n const { record } = this;\r\n if (record) {\r\n return record.dataSet;\r\n }\r\n return this.observableProps.dataSet;\r\n }\r\n get record() {\r\n const { record, dataSet, dataIndex } = this.observableProps;\r\n if (record) {\r\n return record;\r\n }\r\n if (dataSet) {\r\n if (isNumber(dataIndex)) {\r\n return dataSet.get(dataIndex);\r\n }\r\n return dataSet.current;\r\n }\r\n return undefined;\r\n }\r\n get dataIndex() {\r\n return this.observableProps.dataIndex;\r\n }\r\n get columns() {\r\n const { columns } = this.observableProps;\r\n if (isNumber(columns)) {\r\n return columns;\r\n }\r\n if (columns) {\r\n const responsiveColumns = this.responsiveItems[0];\r\n if (responsiveColumns) {\r\n return responsiveColumns;\r\n }\r\n }\r\n return defaultColumns;\r\n }\r\n get labelWidth() {\r\n const { labelWidth } = this.observableProps;\r\n if (isNumber(labelWidth) || isArrayLike(labelWidth)) {\r\n return labelWidth;\r\n }\r\n if (labelWidth) {\r\n const responsiveWidth = this.responsiveItems[1];\r\n if (responsiveWidth !== undefined) {\r\n return responsiveWidth;\r\n }\r\n }\r\n return defaultLabelWidth;\r\n }\r\n get labelAlign() {\r\n const { labelAlign } = this.observableProps;\r\n const defaultLabelAlign = this.labelLayout === LabelLayout.vertical ? LabelAlign.left : LabelAlign.right;\r\n if (isString(labelAlign)) {\r\n return labelAlign;\r\n }\r\n if (labelAlign) {\r\n const responsiveAlign = this.responsiveItems[2];\r\n if (responsiveAlign) {\r\n return responsiveAlign;\r\n }\r\n }\r\n return defaultLabelAlign;\r\n }\r\n get labelLayout() {\r\n const defaultLabelLayout = getConfig('labelLayout') || LabelLayout.horizontal;\r\n const { labelLayout } = this.observableProps;\r\n if (isString(labelLayout)) {\r\n return labelLayout;\r\n }\r\n if (labelLayout) {\r\n const responsiveLabelLayout = this.responsiveItems[3];\r\n if (responsiveLabelLayout) {\r\n return responsiveLabelLayout;\r\n }\r\n }\r\n return defaultLabelLayout;\r\n }\r\n get pristine() {\r\n return this.observableProps.pristine;\r\n }\r\n isDisabled() {\r\n return super.isDisabled() || this.context.disabled;\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n dataSet: 'dataSet' in props ? props.dataSet : context.dataSet,\r\n record: 'record' in props ? props.record : context.record,\r\n dataIndex: defaultTo(props.dataIndex, context.dataIndex),\r\n labelLayout: 'labelLayout' in props ? props.labelLayout : context.labelLayout,\r\n labelAlign: 'labelAlign' in props ? props.labelAlign : context.labelAlign,\r\n labelWidth: defaultTo(props.labelWidth, context.labelWidth),\r\n pristine: 'pristine' in props ? props.pristine : context.pristine,\r\n columns: props.columns,\r\n };\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'record',\r\n 'dataIndex',\r\n 'onSuccess',\r\n 'onError',\r\n 'processParams',\r\n 'labelWidth',\r\n 'labelAlign',\r\n 'labelLayout',\r\n 'columns',\r\n 'pristine',\r\n 'axios',\r\n ]);\r\n otherProps.onSubmit = this.handleSubmit;\r\n otherProps.onReset = this.handleReset;\r\n if (!otherProps.name) {\r\n otherProps.name = this.name;\r\n }\r\n return otherProps;\r\n }\r\n getHeader() {\r\n const { props: { header }, prefixCls, } = this;\r\n if (header) {\r\n return (<div key=\"form-header\" className={`${prefixCls}-header`}>\n {header}\n </div>);\r\n }\r\n }\r\n getClassName(...props) {\r\n const { prefixCls, labelLayout } = this;\r\n return super.getClassName({\r\n ...props,\r\n [`${prefixCls}-float-label`]: labelLayout === LabelLayout.float,\r\n });\r\n }\r\n rasterizedChildren() {\r\n const { dataSet, record, columns, labelLayout, labelAlign, props: { children }, } = this;\r\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\r\n const labelWidth = normalizeLabelWidth(this.labelWidth, columns);\r\n const rows = [];\r\n let cols = [];\r\n let rowIndex = 0;\r\n let colIndex = 0;\r\n const matrix = [[]];\r\n let noLabel = true;\r\n const childrenArray = [];\r\n Children.forEach(children, child => {\r\n if (isValidElement(child)) {\r\n if (noLabel === true &&\r\n labelLayout === LabelLayout.horizontal &&\r\n getProperty(child.props, 'label', dataSet, record)) {\r\n noLabel = false;\r\n }\r\n childrenArray.push(child);\r\n }\r\n });\r\n function completeLine() {\r\n if (cols.length) {\r\n rows.push(<tr key={`row-${rowIndex}`}>{cols}</tr>);\r\n cols = [];\r\n }\r\n rowIndex++;\r\n colIndex = 0;\r\n matrix[rowIndex] = matrix[rowIndex] || [];\r\n }\r\n for (let index = 0, len = childrenArray.length; index < len;) {\r\n const { props, key, type } = childrenArray[index];\r\n const label = getProperty(props, 'label', dataSet, record);\r\n const fieldLabelWidth = getProperty(props, 'labelWidth', dataSet, record);\r\n const required = getProperty(props, 'required', dataSet, record);\r\n const { rowSpan = 1, colSpan = 1, newLine, className, placeholder, ...otherProps } = props;\r\n let newColSpan = colSpan;\r\n const currentRow = matrix[rowIndex];\r\n if (newLine) {\r\n if (colIndex !== 0) {\r\n completeLine();\r\n continue;\r\n }\r\n }\r\n while (currentRow[colIndex]) {\r\n colIndex++;\r\n }\r\n if (colIndex >= columns) {\r\n completeLine();\r\n continue;\r\n }\r\n if (newColSpan + colIndex > columns) {\r\n newColSpan = columns - colIndex;\r\n }\r\n for (let i = colIndex, k = colIndex + newColSpan; i < k; i++) {\r\n if (currentRow[i]) {\r\n newColSpan = i - colIndex;\r\n break;\r\n }\r\n }\r\n for (let i = rowIndex; i < rowSpan + rowIndex; i++) {\r\n for (let j = colIndex, k = newColSpan + colIndex; j < k; j++) {\r\n if (!matrix[i]) {\r\n matrix[i] = [];\r\n }\r\n matrix[i][j] = true;\r\n }\r\n }\r\n const isOutput = labelLayout === LabelLayout.horizontal && type.displayName === 'Output';\r\n const labelClassName = classNames(`${prefixCls}-label`, `${prefixCls}-label-${labelAlign}`, {\r\n [`${prefixCls}-required`]: required,\r\n [`${prefixCls}-label-vertical`]: labelLayout === LabelLayout.vertical,\r\n [`${prefixCls}-label-output`]: isOutput,\r\n });\r\n const wrapperClassName = classNames(`${prefixCls}-wrapper`, {\r\n [`${prefixCls}-output`]: isOutput,\r\n });\r\n if (!noLabel) {\r\n if (!isNaN(fieldLabelWidth)) {\r\n labelWidth[colIndex] = Math.max(labelWidth[colIndex], fieldLabelWidth);\r\n }\r\n cols.push(<td key={`row-${rowIndex}-col-${colIndex}-label`} className={labelClassName} rowSpan={rowSpan}>\n <label>{label}</label>\n </td>);\r\n }\r\n const fieldElementProps = {\r\n key,\r\n className: classNames(prefixCls, className),\r\n placeholder: label && labelLayout === LabelLayout.placeholder ? label : placeholder,\r\n ...otherProps,\r\n };\r\n if (!isString(type)) {\r\n fieldElementProps.rowIndex = rowIndex;\r\n fieldElementProps.colIndex = colIndex;\r\n }\r\n cols.push(<td key={`row-${rowIndex}-col-${colIndex}-field`} colSpan={noLabel ? newColSpan : newColSpan * 2 - 1} rowSpan={rowSpan}>\n {labelLayout === LabelLayout.vertical && (<label className={labelClassName}>{label}</label>)}\n <div className={wrapperClassName}>{createElement(type, fieldElementProps)}</div>\n </td>);\r\n if (index === len - 1) {\r\n completeLine();\r\n }\r\n else {\r\n colIndex++;\r\n }\r\n index++;\r\n }\r\n cols = [];\r\n if (!noLabel) {\r\n for (let i = 0; i < columns; i++) {\r\n cols.push(<col key={`label-${i}`} style={{ width: pxToRem(labelWidth[i % columns]) }}/>, <col key={`wrapper-${i}`}/>);\r\n }\r\n }\r\n return [\r\n this.getHeader(),\r\n <table key=\"form-body\">\n {cols.length ? <colgroup>{cols}</colgroup> : undefined}\n <tbody>{rows}</tbody>\n </table>,\r\n ];\r\n }\r\n render() {\r\n const { labelWidth, labelAlign, labelLayout, pristine, dataSet, record, dataIndex, observableProps, } = this;\r\n const { formNode } = this.context;\r\n const value = {\r\n formNode: formNode || this,\r\n dataSet,\r\n dataIndex,\r\n record,\r\n labelWidth,\r\n labelAlign,\r\n labelLayout,\r\n pristine,\r\n disabled: this.isDisabled(),\r\n };\r\n let children = this.rasterizedChildren();\r\n if (!formNode) {\r\n children = (<form {...this.getMergedProps()} noValidate>\n {children}\n </form>);\r\n }\r\n return (<Responsive items={[\r\n observableProps.columns,\r\n observableProps.labelWidth,\r\n observableProps.labelAlign,\r\n observableProps.labelLayout,\r\n ]} onChange={this.handleResponsive}>\n <FormContext.Provider value={value}>{children}</FormContext.Provider>\n </Responsive>);\r\n }\r\n handleResponsive(items) {\r\n this.responsiveItems = items;\r\n }\r\n async handleSubmit(e) {\r\n e.preventDefault();\r\n e.persist();\r\n if (await this.checkValidity()) {\r\n const { target, action, dataSet, method, processParams = noop, onSuccess = noop, onError = noop, onSubmit = noop, } = this.props;\r\n onSubmit(e);\r\n try {\r\n if (dataSet) {\r\n onSuccess(await dataSet.submit());\r\n }\r\n else if (action) {\r\n if (target && this.element) {\r\n this.element.submit();\r\n }\r\n else {\r\n onSuccess(await this.axios[method || 'get'](action, processParams(e)));\r\n }\r\n }\r\n }\r\n catch (error) {\r\n onError(error);\r\n }\r\n }\r\n }\r\n handleReset(e) {\r\n const { onReset = noop } = this.props;\r\n const { record } = this;\r\n onReset(e);\r\n if (!e.isDefaultPrevented()) {\r\n if (record) {\r\n record.reset();\r\n }\r\n else {\r\n this.getFields().forEach(field => field.reset());\r\n }\r\n }\r\n }\r\n checkValidity() {\r\n const { dataSet } = this;\r\n if (dataSet) {\r\n if (!dataSet.length) {\r\n dataSet.create();\r\n }\r\n return dataSet.validate();\r\n }\r\n return Promise.all(this.getFields().map(field => field.checkValidity())).then(results => results.every(result => result));\r\n }\r\n getFields() {\r\n const { id } = this.props;\r\n if (id) {\r\n return [].concat(this.fields, getFieldsById(id));\r\n }\r\n return this.fields;\r\n }\r\n getField(name) {\r\n return this.getFields().find(field => field.props.name === name);\r\n }\r\n addField(field) {\r\n this.fields.push(field);\r\n }\r\n removeField(field) {\r\n const index = this.fields.indexOf(field);\r\n if (index !== -1) {\r\n this.fields.splice(index, 1);\r\n }\r\n }\r\n};\r\nForm.displayName = 'Form';\r\nForm.propTypes = {\r\n /**\r\n * 表单提交请求地址\r\n */\r\n action: PropTypes.string,\r\n /**\r\n * 表单提交的HTTP Method\r\n * 可选值:POST | GET\r\n * @default POST\r\n */\r\n method: PropTypes.string,\r\n /**\r\n * 表单提交的目标\r\n * 当表单设置了设置target且没有dataSet时作浏览器默认提交,否则作Ajax提交\r\n */\r\n target: PropTypes.string,\r\n /**\r\n * Ajax提交时的参数回调\r\n */\r\n processParams: PropTypes.func,\r\n /**\r\n * 内部控件的标签的宽度\r\n */\r\n labelWidth: PropTypes.oneOfType([\r\n labelWidthPropTypes,\r\n PropTypes.shape({\r\n [ResponsiveKeys.xs]: labelWidthPropTypes,\r\n [ResponsiveKeys.sm]: labelWidthPropTypes,\r\n [ResponsiveKeys.md]: labelWidthPropTypes,\r\n [ResponsiveKeys.lg]: labelWidthPropTypes,\r\n [ResponsiveKeys.xl]: labelWidthPropTypes,\r\n [ResponsiveKeys.xxl]: labelWidthPropTypes,\r\n }),\r\n ]),\r\n /**\r\n * 标签文字对齐方式\r\n * 可选值: 'left' | 'center' | 'right'\r\n */\r\n labelAlign: PropTypes.oneOfType([\r\n labelAlignPropTypes,\r\n PropTypes.shape({\r\n [ResponsiveKeys.xs]: labelAlignPropTypes,\r\n [ResponsiveKeys.sm]: labelAlignPropTypes,\r\n [ResponsiveKeys.md]: labelAlignPropTypes,\r\n [ResponsiveKeys.lg]: labelAlignPropTypes,\r\n [ResponsiveKeys.xl]: labelAlignPropTypes,\r\n [ResponsiveKeys.xxl]: labelAlignPropTypes,\r\n }),\r\n ]),\r\n /**\r\n * 标签位置\r\n * 可选值: 'horizontal' | 'vertical' | 'placeholder' | 'float' | 'none'\r\n */\r\n labelLayout: PropTypes.oneOfType([\r\n labelLayoutPropTypes,\r\n PropTypes.shape({\r\n [ResponsiveKeys.xs]: labelLayoutPropTypes,\r\n [ResponsiveKeys.sm]: labelLayoutPropTypes,\r\n [ResponsiveKeys.md]: labelLayoutPropTypes,\r\n [ResponsiveKeys.lg]: labelLayoutPropTypes,\r\n [ResponsiveKeys.xl]: labelLayoutPropTypes,\r\n [ResponsiveKeys.xxl]: labelLayoutPropTypes,\r\n }),\r\n ]),\r\n /**\r\n * 表单列数\r\n */\r\n columns: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.shape({\r\n [ResponsiveKeys.xs]: PropTypes.number,\r\n [ResponsiveKeys.sm]: PropTypes.number,\r\n [ResponsiveKeys.md]: PropTypes.number,\r\n [ResponsiveKeys.lg]: PropTypes.number,\r\n [ResponsiveKeys.xl]: PropTypes.number,\r\n [ResponsiveKeys.xxl]: PropTypes.number,\r\n }),\r\n ]),\r\n /**\r\n * 表单头\r\n */\r\n header: PropTypes.string,\r\n /**\r\n * 提交回调\r\n */\r\n onSubmit: PropTypes.func,\r\n /**\r\n * 重置回调\r\n */\r\n onReset: PropTypes.func,\r\n /**\r\n * 提交成功回调\r\n */\r\n onSuccess: PropTypes.func,\r\n /**\r\n * 提交失败回调\r\n */\r\n onError: PropTypes.func,\r\n ...DataSetComponent.propTypes,\r\n};\r\nForm.defaultProps = {\r\n suffixCls: 'form',\r\n columns: defaultColumns,\r\n labelWidth: defaultLabelWidth,\r\n};\r\nForm.contextType = FormContext;\r\ntslib_1.__decorate([\r\n observable\r\n], Form.prototype, \"responsiveItems\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"axios\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"dataSet\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"record\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"dataIndex\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"columns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"labelWidth\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"labelAlign\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"labelLayout\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Form.prototype, \"pristine\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n mobxAction\r\n], Form.prototype, \"handleResponsive\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Form.prototype, \"handleSubmit\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Form.prototype, \"handleReset\", null);\r\nForm = tslib_1.__decorate([\r\n observer\r\n], Form);\r\nexport default Form;\r\n","import React from 'react';\r\nexport default React.createContext({});\r\n","export var LabelAlign;\r\n(function (LabelAlign) {\r\n LabelAlign[\"left\"] = \"left\";\r\n LabelAlign[\"center\"] = \"center\";\r\n LabelAlign[\"right\"] = \"right\";\r\n})(LabelAlign || (LabelAlign = {}));\r\nexport var LabelLayout;\r\n(function (LabelLayout) {\r\n LabelLayout[\"horizontal\"] = \"horizontal\";\r\n LabelLayout[\"vertical\"] = \"vertical\";\r\n LabelLayout[\"placeholder\"] = \"placeholder\";\r\n LabelLayout[\"float\"] = \"float\";\r\n LabelLayout[\"none\"] = \"none\";\r\n})(LabelLayout || (LabelLayout = {}));\r\nexport var ResponsiveKeys;\r\n(function (ResponsiveKeys) {\r\n ResponsiveKeys[\"xs\"] = \"xs\";\r\n ResponsiveKeys[\"sm\"] = \"sm\";\r\n ResponsiveKeys[\"md\"] = \"md\";\r\n ResponsiveKeys[\"lg\"] = \"lg\";\r\n ResponsiveKeys[\"xl\"] = \"xl\";\r\n ResponsiveKeys[\"xxl\"] = \"xxl\";\r\n})(ResponsiveKeys || (ResponsiveKeys = {}));\r\n","import Form from './Form';\r\nexport default Form;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import isNumber from 'lodash/isNumber';\r\nimport { LabelLayout } from './enum';\r\nexport const defaultLabelWidth = 100;\r\nexport const defaultLabelLayout = LabelLayout.horizontal;\r\nexport const defaultColumns = 1;\r\nexport const FIELD_SUFFIX = 'field';\r\nexport function normalizeLabelWidth(labelWidth, columns) {\r\n if (isNumber(labelWidth)) {\r\n return new Array(columns).fill(labelWidth);\r\n }\r\n const labelWidths = new Array(columns).fill(defaultLabelWidth);\r\n labelWidth.slice(0, columns).forEach((width, index) => (labelWidths[index] = width));\r\n return labelWidths;\r\n}\r\nexport function getProperty(props, key, dataSet, record) {\r\n if (props[key]) {\r\n return props[key];\r\n }\r\n const { name } = props;\r\n const field = record ? record.getField(name) : dataSet && dataSet.getField(name);\r\n if (field) {\r\n const fieldProperty = field.get(key);\r\n if (fieldProperty) {\r\n return fieldProperty;\r\n }\r\n }\r\n}\r\n","import { getNumberFormatOptions, toLocaleStringPolyfill, toLocaleStringSupportsLocales, } from './utils';\r\nimport normalizeLanguage from '../_util/normalizeLanguage';\r\nimport { FieldType } from '../data-set/enum';\r\nexport default function formatCurrency(value, lang, options) {\r\n const v = parseFloat(value);\r\n if (!isNaN(v)) {\r\n if (toLocaleStringSupportsLocales()) {\r\n return v.toLocaleString(normalizeLanguage(lang), {\r\n ...getNumberFormatOptions(FieldType.currency, options),\r\n ...options,\r\n });\r\n }\r\n return toLocaleStringPolyfill(v, FieldType.currency, options);\r\n }\r\n return value;\r\n}\r\n","import { FieldType } from '../data-set/enum';\r\nimport normalizeLanguage from '../_util/normalizeLanguage';\r\nimport { getNumberFormatOptions, toLocaleStringPolyfill, toLocaleStringSupportsLocales, } from './utils';\r\nexport default function formatNumber(value, lang, options) {\r\n const v = parseFloat(value);\r\n if (!isNaN(v)) {\r\n if (toLocaleStringSupportsLocales()) {\r\n return v.toLocaleString(normalizeLanguage(lang), {\r\n ...getNumberFormatOptions(FieldType.number, options),\r\n ...options,\r\n });\r\n }\r\n return toLocaleStringPolyfill(v, FieldType.number, options);\r\n }\r\n return value;\r\n}\r\n","import { createElement, Fragment, isValidElement } from 'react';\r\nimport format from 'string-template';\r\nimport isString from 'lodash/isString';\r\nimport flatMap from 'lodash/flatMap';\r\nexport default function formatReactTemplate(template, map) {\r\n let result = [template];\r\n Object.keys(map).forEach(key => {\r\n const node = map[key];\r\n if (node) {\r\n result = flatMap(result, text => {\r\n if (isString(text)) {\r\n let stringText = text;\r\n if (isValidElement(node)) {\r\n const placeholder = `{${key}}`;\r\n const { length } = placeholder;\r\n const textArr = [];\r\n let index = stringText.indexOf(placeholder);\r\n while (index > -1) {\r\n if (index > 0) {\r\n textArr.push(stringText.slice(0, index));\r\n }\r\n textArr.push(node);\r\n stringText = stringText.slice(index + length);\r\n index = stringText.indexOf(placeholder);\r\n }\r\n if (stringText) {\r\n textArr.push(stringText);\r\n }\r\n return textArr;\r\n }\r\n return format(text, map);\r\n }\r\n return text;\r\n });\r\n }\r\n });\r\n if (result.every(isString)) {\r\n return result.join('');\r\n }\r\n return createElement(Fragment, {}, ...result);\r\n}\r\n","import isString from 'lodash/isString';\r\nimport { transformString, trimString } from './utils';\r\nexport default function formatString(value, { trim, format }) {\r\n if (isString(value)) {\r\n return transformString(trimString(value, trim), format);\r\n }\r\n return value;\r\n}\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/style/index.less';\r\n","import capitalize from 'lodash/capitalize';\r\nimport { FieldFormat, FieldTrim, FieldType } from '../data-set/enum';\r\nlet supportsLocales;\r\nexport function toLocaleStringSupportsLocales() {\r\n if (supportsLocales === undefined) {\r\n try {\r\n (0).toLocaleString('i');\r\n supportsLocales = false;\r\n }\r\n catch (e) {\r\n supportsLocales = e.name === 'RangeError';\r\n }\r\n }\r\n return supportsLocales;\r\n}\r\nexport function getNumberFormatOptions(type, options) {\r\n if (type === FieldType.number) {\r\n return { style: 'decimal' };\r\n }\r\n if (options && options.currency) {\r\n return { style: 'currency' };\r\n }\r\n return { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 };\r\n}\r\nexport function toLocaleStringPolyfill(value, type, options) {\r\n if (type === FieldType.number) {\r\n const fraction = String(value).split('.')[1];\r\n return value.toLocaleString().split('.')[0] + (fraction ? `.${fraction}` : '');\r\n }\r\n const currency = options && options.currency;\r\n return `${currency ? `${currency} ` : ''}${value.toLocaleString()}`;\r\n}\r\nexport function trimString(value, fieldTrim) {\r\n if (fieldTrim) {\r\n switch (fieldTrim) {\r\n case FieldTrim.both:\r\n return value.trim();\r\n case FieldTrim.left:\r\n return value.trimLeft();\r\n case FieldTrim.right:\r\n return value.trimRight();\r\n default:\r\n }\r\n }\r\n return value;\r\n}\r\nexport function transformString(value, format) {\r\n if (format) {\r\n switch (format) {\r\n case FieldFormat.uppercase:\r\n return value.toUpperCase();\r\n case FieldFormat.lowercase:\r\n return value.toLowerCase();\r\n case FieldFormat.capitalize:\r\n return capitalize(value);\r\n default:\r\n }\r\n }\r\n return value;\r\n}\r\n","import Row from 'choerodon-ui/lib/grid/row';\r\nimport Col from 'choerodon-ui/lib/grid/col';\r\nexport { Row, Col, };\r\n","import 'choerodon-ui/lib/grid/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\r\nimport { action, observable } from 'mobx';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport IconItem from './IconItem';\r\nimport Pagination from '../pagination/Pagination';\r\nimport autobind from '../_util/autobind';\r\nlet IconCategory = class IconCategory extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.setPage(props.page);\r\n }\r\n saveRef(node) {\r\n this.ul = node;\r\n }\r\n handlePageChange(page) {\r\n this.setPage(page);\r\n const { onPageChange, category } = this.props;\r\n if (onPageChange) {\r\n onPageChange(page, category);\r\n }\r\n }\r\n handleItemSelect(icon) {\r\n const { onSelect } = this.props;\r\n onSelect(icon);\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.page && nextProps.page !== this.page) {\r\n this.setPage(nextProps.page);\r\n }\r\n }\r\n componentDidMount() {\r\n this.syncItemPosition();\r\n }\r\n componentDidUpdate() {\r\n this.syncItemPosition();\r\n }\r\n syncItemPosition() {\r\n const { props: { value, prefixCls }, ul, } = this;\r\n if (value && ul) {\r\n const item = ul.querySelector(`li.${prefixCls}-item-selected`);\r\n if (item) {\r\n const { offsetHeight, scrollTop } = ul;\r\n const { offsetTop, offsetHeight: height } = item;\r\n if (offsetTop < scrollTop) {\r\n ul.scrollTo(0, offsetTop);\r\n }\r\n else if (offsetTop + height > scrollTop + offsetHeight) {\r\n ul.scrollTo(0, offsetTop + height - offsetHeight);\r\n }\r\n }\r\n }\r\n }\r\n setPage(page = 1) {\r\n this.page = page;\r\n }\r\n renderPagination() {\r\n const { page, props: { paging, pageSize, prefixCls, icons }, } = this;\r\n const total = icons.length;\r\n if (paging && total > pageSize) {\r\n return (<Pagination key=\"page\" className={`${prefixCls}-pagination`} total={total} page={page} pageSize={pageSize} showSizeChanger={false} onChange={this.handlePageChange} style={{ right: pxToRem(measureScrollbar()) }}/>);\r\n }\r\n }\r\n renderIcons() {\r\n const { value, prefixCls } = this.props;\r\n return this.getIcons().map(icon => (<IconItem key={icon} prefixCls={prefixCls} type={icon} onSelect={this.handleItemSelect} active={value === icon}/>));\r\n }\r\n getIcons() {\r\n const { page, props: { paging, pageSize, icons }, } = this;\r\n if (paging && icons.length > pageSize) {\r\n return icons.slice((page - 1) * pageSize, page * pageSize);\r\n }\r\n return icons;\r\n }\r\n render() {\r\n const { props: { prefixCls }, } = this;\r\n return (<div className={`${prefixCls}-category`}>\n {this.renderPagination()}\n <ul key=\"icon-items\" ref={this.saveRef}>\n {this.renderIcons()}\n </ul>\n </div>);\r\n }\r\n};\r\nIconCategory.displayName = 'IconCategory';\r\nIconCategory.propTypes = {\r\n prefixCls: PropTypes.string,\r\n icons: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.string).isRequired,\r\n value: PropTypes.string,\r\n onSelect: PropTypes.func.isRequired,\r\n onPageChange: PropTypes.func,\r\n pageSize: PropTypes.number,\r\n page: PropTypes.number,\r\n paging: PropTypes.bool,\r\n};\r\nIconCategory.defaultProps = {\r\n paging: true,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], IconCategory.prototype, \"page\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconCategory.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconCategory.prototype, \"handlePageChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconCategory.prototype, \"handleItemSelect\", null);\r\ntslib_1.__decorate([\r\n action\r\n], IconCategory.prototype, \"setPage\", null);\r\nIconCategory = tslib_1.__decorate([\r\n observer\r\n], IconCategory);\r\nexport default IconCategory;\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport Icon from '../icon';\r\nexport default class IconItem extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.handleClick = () => {\r\n const { onSelect, type } = this.props;\r\n onSelect(type);\r\n };\r\n }\r\n render() {\r\n const { prefixCls, type, active } = this.props;\r\n return (<li className={classNames({ [`${prefixCls}-item-selected`]: active })}>\n <div onClick={this.handleClick}>\n <Icon type={type}/>\n <p>{type}</p>\n </div>\n </li>);\r\n }\r\n}\r\nIconItem.displayName = 'IconItem';\r\nIconItem.propTypes = {\r\n prefixCls: PropTypes.string,\r\n active: PropTypes.bool.isRequired,\r\n type: PropTypes.string.isRequired,\r\n onSelect: PropTypes.func.isRequired,\r\n};\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport flatten from 'lodash/flatten';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport TriggerField from '../trigger-field/TriggerField';\r\nimport Icon from '../icon';\r\nimport Tabs from '../tabs';\r\nimport { $l } from '../locale-context';\r\nimport IconCategory from './IconCategory';\r\nimport autobind from '../_util/autobind';\r\nimport { stopEvent } from '../_util/EventManager';\r\nconst COLUMNS = 5;\r\nlet IconPicker = class IconPicker extends TriggerField {\r\n constructor(props, context) {\r\n super(props, context);\r\n runInAction(() => {\r\n this.categoryPages = {};\r\n this.activeCategory = this.categoryKeys[0];\r\n });\r\n }\r\n get categories() {\r\n const icons = getConfig('icons');\r\n return isArrayLike(icons) ? { default: icons } : icons;\r\n }\r\n get categoryKeys() {\r\n return Object.keys(this.categories);\r\n }\r\n get selectedIndex() {\r\n return this.categories[this.activeCategory].indexOf(this.selectedIcon);\r\n }\r\n get filteredIcons() {\r\n const { text, categories } = this;\r\n if (text) {\r\n return flatten(this.categoryKeys.map(category => categories[category].filter(icon => icon.startsWith(text))));\r\n }\r\n return [];\r\n }\r\n get selectedIcon() {\r\n const { categories } = this;\r\n return this.selected || this.getValue() || categories[this.activeCategory][0];\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['pageSize']);\r\n }\r\n setActiveCategory(category) {\r\n this.activeCategory = category;\r\n const page = this.categoryPages[category];\r\n this.changeSelected(this.categories[category][(page - 1) * this.props.pageSize]);\r\n }\r\n setCategoryPage(page, category) {\r\n this.categoryPages[category] = page;\r\n this.changeSelected(this.categories[category][(page - 1) * this.props.pageSize]);\r\n }\r\n handleTabsChange(category) {\r\n this.setActiveCategory(category);\r\n }\r\n handleItemSelect(icon) {\r\n this.choose(icon);\r\n }\r\n handlePageChange(page, category) {\r\n this.setCategoryPage(page, category);\r\n }\r\n handleKeyDown(e) {\r\n if (!this.isDisabled() && !this.isReadOnly()) {\r\n if (this.popup) {\r\n switch (e.keyCode) {\r\n case KeyCode.RIGHT:\r\n stopEvent(e);\r\n this.handleKeyDownRight();\r\n break;\r\n case KeyCode.LEFT:\r\n stopEvent(e);\r\n this.handleKeyDownLeft();\r\n break;\r\n case KeyCode.DOWN:\r\n stopEvent(e);\r\n this.handleKeyDownDown();\r\n break;\r\n case KeyCode.UP:\r\n stopEvent(e);\r\n this.handleKeyDownUp();\r\n break;\r\n case KeyCode.END:\r\n stopEvent(e);\r\n this.handleKeyDownEnd();\r\n break;\r\n case KeyCode.HOME:\r\n stopEvent(e);\r\n this.handleKeyDownHome();\r\n break;\r\n case KeyCode.PAGE_UP:\r\n stopEvent(e);\r\n this.handleKeyDownPageUp();\r\n break;\r\n case KeyCode.PAGE_DOWN:\r\n stopEvent(e);\r\n this.handleKeyDownPageDown();\r\n break;\r\n case KeyCode.ENTER:\r\n e.preventDefault();\r\n this.handleKeyDownEnter();\r\n break;\r\n case KeyCode.TAB:\r\n this.handleKeyDownTab();\r\n break;\r\n case KeyCode.ESC:\r\n e.preventDefault();\r\n this.handleKeyDownEsc();\r\n break;\r\n default:\r\n }\r\n }\r\n else if (e.keyCode === KeyCode.SPACE) {\r\n e.preventDefault();\r\n this.handleKeyDownSpace();\r\n }\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleKeyDownHome() {\r\n const { activeCategory, categoryPages, props: { pageSize }, } = this;\r\n const category = this.categories[activeCategory];\r\n const page = categoryPages[activeCategory] || 1;\r\n this.changeSelected(category[(page - 1) * pageSize]);\r\n }\r\n handleKeyDownEnd() {\r\n const { activeCategory, categoryPages, props: { pageSize }, } = this;\r\n const category = this.categories[activeCategory];\r\n const page = categoryPages[activeCategory] || 1;\r\n this.changeSelected(category[page * pageSize - 1] || category[category.length - 1]);\r\n }\r\n handleKeyDownLeftOrRight(isLeft) {\r\n const { activeCategory, selectedIndex, categoryPages, categories, categoryKeys, props: { pageSize }, } = this;\r\n const step = isLeft ? -1 : 1;\r\n let category = categories[activeCategory];\r\n let index = selectedIndex;\r\n if (index % COLUMNS === (isLeft ? 0 : COLUMNS - 1) ||\r\n (!isLeft && index === category.length - 1)) {\r\n const activeCategoryIndex = categoryKeys.indexOf(activeCategory);\r\n if (activeCategoryIndex !== (isLeft ? 0 : categoryKeys.length - 1)) {\r\n const newTabIndex = activeCategoryIndex + step;\r\n const newKey = categoryKeys[newTabIndex];\r\n this.setActiveCategory(newKey);\r\n const page = categoryPages[activeCategory] || 1;\r\n category = categories[newKey];\r\n const newPage = categoryPages[newKey] || 1;\r\n index += (newPage - page) * pageSize;\r\n if (!category[index]) {\r\n index = isLeft ? category.length - 1 : (newPage - 1) * pageSize;\r\n }\r\n }\r\n }\r\n else {\r\n index += step;\r\n }\r\n if (category[index]) {\r\n this.changeSelected(category[index]);\r\n }\r\n }\r\n handleKeyDownUpOrDown(isUP) {\r\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\r\n const step = isUP ? -1 : 1;\r\n const category = this.categories[activeCategory];\r\n let index = selectedIndex;\r\n const page = categoryPages[activeCategory] || 1;\r\n if (isUP\r\n ? index < (page - 1) * pageSize + COLUMNS && page > 1\r\n : index > page * pageSize - COLUMNS && page < Math.ceil(category.length / pageSize)) {\r\n this.setCategoryPage(page + step, activeCategory);\r\n }\r\n index += step * COLUMNS;\r\n if (category[index]) {\r\n this.changeSelected(category[index]);\r\n }\r\n }\r\n handleKeyDownLeft() {\r\n this.handleKeyDownLeftOrRight(true);\r\n }\r\n handleKeyDownRight() {\r\n this.handleKeyDownLeftOrRight(false);\r\n }\r\n handleKeyDownUp() {\r\n this.handleKeyDownUpOrDown(true);\r\n }\r\n handleKeyDownDown() {\r\n if (this.popup) {\r\n this.handleKeyDownUpOrDown(false);\r\n }\r\n else {\r\n this.expand();\r\n }\r\n }\r\n handleKeyDownPageUp() {\r\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\r\n const page = categoryPages[activeCategory] || 1;\r\n const category = this.categories[activeCategory];\r\n if (page > 1) {\r\n this.setCategoryPage(page - 1, activeCategory);\r\n this.changeSelected(category[selectedIndex - pageSize]);\r\n }\r\n }\r\n handleKeyDownPageDown() {\r\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\r\n const page = categoryPages[activeCategory] || 1;\r\n const category = this.categories[activeCategory];\r\n if (page < Math.ceil(category.length / pageSize)) {\r\n this.setCategoryPage(page + 1, activeCategory);\r\n this.changeSelected(category[selectedIndex + pageSize] || category[category.length - 1]);\r\n }\r\n }\r\n handleKeyDownEnter() {\r\n this.choose(this.selectedIcon);\r\n }\r\n handleKeyDownEsc() {\r\n this.collapse();\r\n }\r\n handleKeyDownTab() {\r\n this.collapse();\r\n }\r\n handleKeyDownSpace() {\r\n this.expand();\r\n }\r\n changeSelected(selected) {\r\n this.selected = selected;\r\n }\r\n choose(icon) {\r\n this.prepareSetValue(icon);\r\n this.changeSelected(icon);\r\n if (!this.multiple) {\r\n this.collapse();\r\n }\r\n }\r\n syncValueOnBlur(value) {\r\n if (this.filteredIcons.indexOf(value) !== -1) {\r\n this.choose(value);\r\n }\r\n else {\r\n this.setText(undefined);\r\n }\r\n }\r\n handlePopupAnimateAppear() { }\r\n handlePopupAnimateEnd() { }\r\n getPopupStyleFromAlign() {\r\n return undefined;\r\n }\r\n getTriggerIconFont() {\r\n return 'developer_board';\r\n }\r\n getPopupContent() {\r\n const { text } = this;\r\n if (text) {\r\n return this.renderFilteredIcons();\r\n }\r\n return this.renderIconCategories();\r\n }\r\n getPrefix() {\r\n const value = this.getValue();\r\n if (value) {\r\n return this.wrapperPrefix(<Icon type={value}/>);\r\n }\r\n }\r\n renderFilteredIcons() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-single-tab`}>\n <IconCategory paging={false} value={this.selectedIcon} icons={this.filteredIcons} prefixCls={prefixCls} onSelect={this.handleItemSelect}/>\n </div>);\r\n }\r\n renderIconCategories() {\r\n const { activeCategory, prefixCls, props: { pageSize }, categories, categoryKeys, categoryPages, } = this;\r\n const { TabPane } = Tabs;\r\n if (categoryKeys.length > 1) {\r\n const tabs = categoryKeys.map(category => (<TabPane key={category} tab={$l('Icon', category)} className={`${prefixCls}-tab`}>\n <IconCategory page={categoryPages[category]} pageSize={pageSize} category={category} value={category === activeCategory ? this.selectedIcon : undefined} icons={categories[category]} prefixCls={prefixCls} onSelect={this.handleItemSelect} onPageChange={this.handlePageChange}/>\n </TabPane>));\r\n return (<div>\n <Tabs onChange={this.handleTabsChange} activeKey={activeCategory}>\n {tabs}\n </Tabs>\n </div>);\r\n }\r\n const category = categoryKeys[0];\r\n return (<div className={`${prefixCls}-single-tab`}>\n <IconCategory page={categoryPages[category]} pageSize={pageSize} category={category} value={category === activeCategory ? this.selectedIcon : undefined} icons={categories[category]} prefixCls={prefixCls} onSelect={this.handleItemSelect} onPageChange={this.handlePageChange}/>\n </div>);\r\n }\r\n};\r\nIconPicker.displayName = 'IconPicker';\r\nIconPicker.propTypes = {\r\n ...TriggerField.propTypes,\r\n pageSize: PropTypes.number,\r\n};\r\nIconPicker.defaultProps = {\r\n ...TriggerField.defaultProps,\r\n suffixCls: 'icon-picker',\r\n pageSize: 100,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], IconPicker.prototype, \"activeCategory\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], IconPicker.prototype, \"selected\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], IconPicker.prototype, \"categoryPages\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], IconPicker.prototype, \"categories\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], IconPicker.prototype, \"categoryKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], IconPicker.prototype, \"selectedIndex\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], IconPicker.prototype, \"filteredIcons\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], IconPicker.prototype, \"selectedIcon\", null);\r\ntslib_1.__decorate([\r\n action\r\n], IconPicker.prototype, \"setActiveCategory\", null);\r\ntslib_1.__decorate([\r\n action\r\n], IconPicker.prototype, \"setCategoryPage\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconPicker.prototype, \"handleTabsChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconPicker.prototype, \"handleItemSelect\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconPicker.prototype, \"handlePageChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IconPicker.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n action\r\n], IconPicker.prototype, \"changeSelected\", null);\r\nIconPicker = tslib_1.__decorate([\r\n observer\r\n], IconPicker);\r\nexport default IconPicker;\r\n","import IconPicker from './IconPicker';\r\nexport default IconPicker;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../trigger-field/style';\r\nimport '../../pagination/style';\r\nimport '../../tabs/style';\r\n","import Icon from 'choerodon-ui/lib/icon';\r\nexport default Icon;\r\n","import 'choerodon-ui/lib/style';\r\n","/* @remove-on-es-build-begin */\r\n// this file is not used if use https://www.npmjs.com/package/babel-plugin-import\r\nconst ENV = process.env.NODE_ENV;\r\nif (ENV !== 'production' &&\r\n ENV !== 'test' &&\r\n typeof console !== 'undefined' &&\r\n console.warn &&\r\n typeof window !== 'undefined') {\r\n console.warn('You are using a whole package of choerodon-ui/pro, ' +\r\n 'please use https://www.npmjs.com/package/babel-plugin-import to reduce app bundle size.');\r\n}\r\n/* @remove-on-es-build-end */\r\nexport { default as Axios } from './axios';\r\nexport { default as DataSet } from './data-set';\r\nexport { default as Form } from './form';\r\nexport { default as Table } from './table';\r\nexport { default as Button } from './button';\r\nexport { default as CheckBox } from './check-box';\r\nexport { default as Radio } from './radio';\r\nexport { default as TextField } from './text-field';\r\nexport { default as NumberField } from './number-field';\r\nexport { default as Currency } from './currency';\r\nexport { default as Password } from './password';\r\nexport { default as UrlField } from './url-field';\r\nexport { default as EmailField } from './email-field';\r\nexport { default as Range } from './range';\r\nexport { default as TextArea } from './text-area';\r\nexport { default as DatePicker } from './date-picker';\r\nexport { default as DateTimePicker } from './date-time-picker';\r\nexport { default as TimePicker } from './time-picker';\r\nexport { default as WeekPicker } from './week-picker';\r\nexport { default as MonthPicker } from './month-picker';\r\nexport { default as YearPicker } from './year-picker';\r\nexport { default as ColorPicker } from './color-picker';\r\nexport { default as IconPicker } from './icon-picker';\r\nexport { default as IntlField } from './intl-field';\r\nexport { default as Lov } from './lov';\r\nexport { default as Select } from './select';\r\nexport { default as SelectBox } from './select-box';\r\nexport { default as Transfer } from './transfer';\r\nexport { default as Progress } from './progress';\r\nexport { default as Modal } from './modal';\r\nexport { default as ModalContainer } from './modal-container';\r\nexport { default as Upload } from './upload';\r\nexport { default as Icon } from './icon';\r\nexport { default as Row } from './row';\r\nexport { default as Col } from './col';\r\nexport { default as localeContext } from './locale-context';\r\nexport { default as Pagination } from './pagination';\r\nexport { default as Menu } from './menu';\r\nexport { default as Tabs } from './tabs';\r\nexport { default as Spin } from './spin';\r\nexport { default as Tooltip } from './tooltip';\r\nexport { default as message } from './message';\r\nexport { default as notification } from './notification';\r\nexport { default as Tree } from './tree';\r\nexport { default as Dropdown } from './dropdown';\r\nexport { default as Output } from './output';\r\nexport { default as Switch } from './switch';\r\nexport { default as Stores } from './stores';\r\nexport { default as Animate } from './animate';\r\nexport { default as CodeArea } from './code-area';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { action, observable } from 'mobx';\r\nimport { ProgressType } from 'choerodon-ui/lib/progress/enum';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { TextField } from '../text-field/TextField';\r\nimport Icon from '../icon';\r\nimport { open } from '../modal-container/ModalContainer';\r\nimport IntlList from './IntlList';\r\nimport localeContext, { $l } from '../locale-context';\r\nimport autobind from '../_util/autobind';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport Progress from '../progress';\r\nimport { Size } from '../core/enum';\r\nimport exception from '../_util/exception';\r\nimport message from '../message';\r\nimport isSame from '../_util/isSame';\r\nlet IntlField = class IntlField extends TextField {\r\n constructor() {\r\n super(...arguments);\r\n this.openModal = async () => {\r\n if (!this.modal) {\r\n const { modalProps } = this.props;\r\n const { record, lang, name, element } = this;\r\n if (record) {\r\n this.setLoading(true);\r\n try {\r\n if (element && !isSame(this.getValue(), element.value)) {\r\n this.syncValueOnBlur(element.value);\r\n }\r\n await record.tls(name);\r\n }\r\n catch (err) {\r\n message.error(exception(err));\r\n return;\r\n }\r\n finally {\r\n this.setLoading(false);\r\n }\r\n }\r\n this.storeLocales();\r\n this.modal = open({\r\n title: $l('IntlField', 'modal_title'),\r\n children: <IntlList record={record} name={name} lang={lang}/>,\r\n onClose: this.handleIntlListClose,\r\n onOk: this.handleIntlListOk,\r\n onCancel: this.handleIntlListCancel,\r\n destroyOnClose: true,\r\n ...modalProps,\r\n });\r\n }\r\n };\r\n this.handleIntlListClose = async () => {\r\n delete this.modal;\r\n this.focus();\r\n };\r\n }\r\n setLoading(loading) {\r\n this.loading = loading;\r\n }\r\n async handleIntlListOk() {\r\n const { supports } = localeContext;\r\n const languages = Object.keys(supports);\r\n const { record, name, field } = this;\r\n if (record && field) {\r\n const tlsKey = getConfig('tlsKey');\r\n return (await Promise.all(languages.map(language => {\r\n const intlField = record.getField(`${tlsKey}.${name}.${language}`);\r\n return intlField ? intlField.checkValidity() : true;\r\n }))).every(Boolean);\r\n }\r\n }\r\n async handleIntlListCancel() {\r\n const { name, record } = this;\r\n if (record) {\r\n const tlsKey = getConfig('tlsKey');\r\n record.set(`${tlsKey}.${name}`, this.locales);\r\n }\r\n }\r\n handleKeyDown(e) {\r\n if (e.keyCode === KeyCode.DOWN) {\r\n stopEvent(e);\r\n this.openModal();\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleBlur(e) {\r\n if (this.modal) {\r\n e.preventDefault();\r\n }\r\n super.handleBlur(e);\r\n }\r\n storeLocales() {\r\n const { name, record } = this;\r\n if (record) {\r\n const tlsKey = getConfig('tlsKey');\r\n this.locales = { ...record.get(`${tlsKey}.${name}`) };\r\n }\r\n }\r\n getSuffix() {\r\n const { suffix } = this.props;\r\n return this.wrapperSuffix(this.loading ? (<Progress size={Size.small} type={ProgressType.loading}/>) : (suffix || <Icon type=\"language\"/>), {\r\n onClick: this.isDisabled() || this.isReadOnly() ? undefined : this.openModal,\r\n });\r\n }\r\n componentWillUnmount() {\r\n if (this.modal) {\r\n this.modal.close();\r\n }\r\n }\r\n};\r\nIntlField.displayName = 'IntlField';\r\ntslib_1.__decorate([\r\n observable\r\n], IntlField.prototype, \"loading\", void 0);\r\ntslib_1.__decorate([\r\n action\r\n], IntlField.prototype, \"setLoading\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IntlField.prototype, \"handleIntlListOk\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IntlField.prototype, \"handleIntlListCancel\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IntlField.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], IntlField.prototype, \"handleBlur\", null);\r\nIntlField = tslib_1.__decorate([\r\n observer\r\n], IntlField);\r\nexport default IntlField;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport PropTypes from 'prop-types';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport ObserverTextField from '../text-field/TextField';\r\nimport Form from '../form/Form';\r\nimport localeContext from '../locale-context';\r\nlet IntlList = class IntlList extends Component {\r\n renderOptions() {\r\n const { name, lang } = this.props;\r\n const { supports } = localeContext;\r\n const tlsKey = getConfig('tlsKey');\r\n return Object.keys(supports).map(key => (<ObserverTextField name={name ? `${tlsKey}.${name}.${key}` : key} autoFocus={key === lang} key={key}/>));\r\n }\r\n render() {\r\n const { record } = this.props;\r\n return <Form record={record}>{this.renderOptions()}</Form>;\r\n }\r\n};\r\nIntlList.propTypes = {\r\n record: PropTypes.object,\r\n name: PropTypes.string,\r\n lang: PropTypes.string,\r\n};\r\nIntlList = tslib_1.__decorate([\r\n observer\r\n], IntlList);\r\nexport default IntlList;\r\n","import IntlField from './IntlField';\r\nexport default IntlField;\r\n","import '../../text-field/style';\r\n// style dependencies\r\nimport '../../modal-container/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, get, observable, runInAction } from 'mobx';\r\nimport moment from 'moment';\r\nimport defaultLocale from './locale';\r\nimport defaultSupports from './supports';\r\nimport normalizeLanguage from '../_util/normalizeLanguage';\r\nfunction setMomentLocale(locale) {\r\n moment.locale(normalizeLanguage(locale ? locale.lang : defaultLocale.lang));\r\n}\r\nexport class LocaleContext {\r\n constructor() {\r\n runInAction(() => {\r\n this.locale = defaultLocale;\r\n this.supports = defaultSupports;\r\n });\r\n }\r\n setLocale(locale) {\r\n setMomentLocale(locale);\r\n this.locale = locale;\r\n }\r\n setSupports(supports) {\r\n this.supports = supports;\r\n }\r\n get(component, key) {\r\n const cmp = get(this.locale, component);\r\n return (cmp && get(cmp, key)) || `${component}.${key}`;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], LocaleContext.prototype, \"locale\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], LocaleContext.prototype, \"supports\", void 0);\r\ntslib_1.__decorate([\r\n action\r\n], LocaleContext.prototype, \"setLocale\", null);\r\nexport default new LocaleContext();\r\n","/* eslint-disable camelcase */\r\nexport var Lang;\r\n(function (Lang) {\r\n Lang[\"zh_CN\"] = \"zh_CN\";\r\n Lang[\"en_GB\"] = \"en_GB\";\r\n Lang[\"en_US\"] = \"en_US\";\r\n Lang[\"ja_JP\"] = \"ja_JP\";\r\n})(Lang || (Lang = {}));\r\n","import localeContext from './LocaleContext';\r\nimport formatReactTemplate from '../formatter/formatReactTemplate';\r\nexport function $l(component, key, injectionOptions) {\r\n const locale = localeContext.get(component, key);\r\n if (injectionOptions) {\r\n return formatReactTemplate(locale, injectionOptions);\r\n }\r\n return locale;\r\n}\r\nexport default localeContext;\r\n","import zh_CN from './zh_CN';\r\nexport default zh_CN;\r\n","// extracted by mini-css-extract-plugin","import './index.less';\r\n","export default {\r\n zh_CN: '简体中文',\r\n en_GB: 'English',\r\n en_US: 'English(US)',\r\n};\r\n","import { Lang } from './enum';\r\nconst locale = {\r\n lang: Lang.zh_CN,\r\n Table: {\r\n show_cached_seletion: '显示所有已选记录',\r\n hide_cached_seletion: '隐藏所有已选记录',\r\n edit_button: '编辑',\r\n create_button: '新增',\r\n save_button: '保存',\r\n cancel_button: '取消',\r\n delete_button: '删除',\r\n remove_button: '移除',\r\n reset_button: '重置',\r\n query_button: '查询',\r\n expand_button: '展开',\r\n collapse_button: '合并',\r\n export_button: '导出',\r\n advanced_search: '高级搜索',\r\n dirty_info: '显示条件已更改',\r\n restore: '还原',\r\n empty_data: '暂无数据',\r\n choose_export_columns: '请选择要导出的列',\r\n column_name: '列名',\r\n filter_bar_placeholder: '过滤表',\r\n advanced_query: '高级查询',\r\n advanced_query_conditions: '高级查询条件',\r\n },\r\n Pagination: {\r\n records_per_page: '每页行数:',\r\n },\r\n Upload: {\r\n file_selection: '选择文件',\r\n click_to_upload: '点击上传',\r\n upload_success: '上传成功',\r\n upload_failure: '上传失败',\r\n no_file: '没有文件',\r\n upload_path_unset: '未设置上传路径',\r\n not_acceptable_prompt: '含有上传类型不匹配的文件,期待:',\r\n file_list_max_length: '文件数量超过最大限制',\r\n },\r\n Modal: {\r\n ok: '确定',\r\n cancel: '取消',\r\n },\r\n DataSet: {\r\n unsaved_data_confirm: '有未保存的数据,是否继续?',\r\n invalid_query_dataset: '查询条件数集不通过',\r\n delete_selected_row_confirm: '确认删除选中行?',\r\n delete_all_row_confirm: '确认删除所有行?',\r\n query_failure: '查询失败',\r\n submit_success: '提交成功',\r\n submit_failure: '提交失败',\r\n cannot_add_record_when_head_no_current: '头未选中记录,不能新建行记录',\r\n },\r\n DatePicker: {\r\n value_missing_no_label: '请选择日期。',\r\n value_missing: '请选择{label}。',\r\n type_mismatch: '请输入有效的日期。',\r\n ok: '确定',\r\n today: '今天',\r\n now: '此刻',\r\n this_week: '本周',\r\n },\r\n EmailField: {\r\n value_missing_no_label: '请输入邮箱地址',\r\n value_missing: '请输入{label}。',\r\n type_mismatch: '请输入有效的邮箱地址',\r\n },\r\n IntlField: {\r\n modal_title: '输入多语言信息',\r\n },\r\n NumberField: {\r\n value_missing_no_label: '请输入数字',\r\n value_missing: '请输入{label}。',\r\n },\r\n Radio: {\r\n value_missing_no_label: '请选择。',\r\n value_missing: '请选择{label}。',\r\n },\r\n SelectBox: {\r\n value_missing_no_label: '请选择。',\r\n value_missing: '请选择{label}。',\r\n },\r\n Select: {\r\n value_missing_no_label: '请选择。',\r\n value_missing: '请选择{label}。',\r\n no_matching_results: '无匹配结果。',\r\n select_all: '全选',\r\n unselect_all: '无',\r\n },\r\n Lov: {\r\n choose: '请选择',\r\n },\r\n Transfer: {\r\n items: '项',\r\n },\r\n UrlField: {\r\n value_missing_no_label: '请输入网址。',\r\n value_missing: '请输入{label}。',\r\n type_mismatch: '请输入有效的网址。',\r\n },\r\n ColorPicker: {\r\n value_missing_no_label: '请选择颜色',\r\n value_missing: '请选择{label}。',\r\n type_mismatch: '请选择有效的颜色。',\r\n },\r\n Validator: {\r\n bad_input: '请输入一个数字。',\r\n pattern_mismatch: '请输入有效的值。',\r\n range_overflow: '{label}必须小于或等于{max}。',\r\n range_underflow: '{label}必须大于或等于{min}。',\r\n step_mismatch: '请输入有效值。最接近的有效值为{0}。',\r\n step_mismatch_between: '请输入有效值。两个最接近的有效值分别为{0}和{1}。',\r\n too_long: '请将该内容减少到{maxLength}个或更少字符(目前您使用了{length}个字符)。',\r\n too_short: '请将该内容增加到{minLength}个或更多字符(目前您使用了{length}个字符)。',\r\n type_mismatch: '请输入与类型匹配的有效值。',\r\n value_missing_no_label: '请填写此字段。',\r\n value_missing: '请输入{label}。',\r\n unique: '该字段值重复,请重新填写。',\r\n unknown: '未知错误。',\r\n },\r\n Icon: {\r\n icons: '图标',\r\n whatsNew: '新增',\r\n direction: '方向性',\r\n suggestion: '提示建议性',\r\n edit: '编辑类',\r\n data: '数据类',\r\n other: '网站通用',\r\n series: '套系类',\r\n },\r\n};\r\nexport default locale;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport isEqual from 'lodash/isEqual';\r\nimport isString from 'lodash/isString';\r\nimport { action, computed, observable, toJS } from 'mobx';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { Size } from 'choerodon-ui/lib/_util/enum';\r\nimport Icon from '../icon';\r\nimport { open } from '../modal-container/ModalContainer';\r\nimport LovView from './LovView';\r\nimport DataSet from '../data-set/DataSet';\r\nimport Record from '../data-set/Record';\r\nimport lovStore from '../stores/LovCodeStore';\r\nimport autobind from '../_util/autobind';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport { Select } from '../select/Select';\r\nimport { ViewMode } from './enum';\r\nimport Button from '../button/Button';\r\nimport { ButtonColor, FuncType } from '../button/enum';\r\nimport { $l } from '../locale-context';\r\nimport { getLovPara } from '../stores/utils';\r\nlet Lov = class Lov extends Select {\r\n constructor() {\r\n super(...arguments);\r\n this.openModal = action(() => {\r\n const config = this.getConfig();\r\n const { options, multiple, primitive, valueField } = this;\r\n const { modalProps } = this.props;\r\n const noCache = this.getProp('noCache');\r\n if (!this.modal && config && options) {\r\n const { width, title } = config;\r\n options.unSelectAll();\r\n options.clearCachedSelected();\r\n if (multiple) {\r\n options.setCachedSelected(this.getValues().map(value => {\r\n const selected = new Record(primitive ? { [valueField]: value } : toJS(value), options);\r\n selected.isSelected = true;\r\n return selected;\r\n }));\r\n }\r\n this.modal = open({\r\n title,\r\n children: (<LovView dataSet={options} config={config} onDoubleClick={this.handleLovViewSelect} onEnterDown={this.handleLovViewSelect} multiple={this.multiple} values={this.getValues()}/>),\r\n onClose: this.handleLovViewClose,\r\n onOk: this.handleLovViewOk,\r\n destroyOnClose: true,\r\n closable: true,\r\n ...modalProps,\r\n style: {\r\n width: pxToRem(width),\r\n minHeight: pxToRem(Math.min(350, window.innerHeight)),\r\n ...(modalProps && modalProps.style),\r\n },\r\n });\r\n if (this.resetOptions(noCache)) {\r\n options.query();\r\n }\r\n else if (multiple) {\r\n options.releaseCachedSelected();\r\n }\r\n }\r\n });\r\n this.handleLovViewSelect = () => {\r\n this.modal.close();\r\n this.handleLovViewOk();\r\n };\r\n this.handleLovViewClose = async () => {\r\n delete this.modal;\r\n this.focus();\r\n };\r\n this.handleLovViewOk = async () => {\r\n const { options, multiple } = this;\r\n const result = [];\r\n const records = multiple ? options.selected : result.concat(options.current || []);\r\n const values = records.map(record => this.processRecordToObject(record));\r\n this.setValue(multiple ? values : values[0] || this.emptyValue);\r\n };\r\n }\r\n get searchMatcher() {\r\n const { searchMatcher } = this.observableProps;\r\n if (isString(searchMatcher)) {\r\n return searchMatcher;\r\n }\r\n return this.textField;\r\n }\r\n get searchable() {\r\n const config = this.getConfig();\r\n if (config) {\r\n return config.editableFlag === 'Y';\r\n }\r\n return !!this.props.searchable;\r\n }\r\n get lovCode() {\r\n const { field } = this;\r\n if (field) {\r\n return field.get('lovCode');\r\n }\r\n return undefined;\r\n }\r\n get popup() {\r\n return !this.filterText || this.modal ? false : this.statePopup;\r\n }\r\n get options() {\r\n const { field, lovCode } = this;\r\n if (lovCode) {\r\n const ds = lovStore.getLovDataSet(lovCode, field);\r\n if (ds) {\r\n return ds;\r\n }\r\n }\r\n return new DataSet();\r\n }\r\n searchRemote(text) {\r\n if (this.filterText !== text) {\r\n const { options, searchMatcher } = this;\r\n this.filterText = text;\r\n if (text && isString(searchMatcher)) {\r\n this.resetOptions(true);\r\n options.setQueryParameter(searchMatcher, text);\r\n options.query();\r\n }\r\n }\r\n }\r\n resetOptions(noCache = false) {\r\n const { field, record, options } = this;\r\n const { queryDataSet } = options;\r\n let dirty = noCache;\r\n if (queryDataSet && noCache) {\r\n const { current } = queryDataSet;\r\n if (current && current.dirty) {\r\n dirty = true;\r\n current.reset();\r\n }\r\n }\r\n if (field) {\r\n const lovPara = getLovPara(field, record);\r\n if (!isEqual(lovPara, options.queryParameter)) {\r\n options.queryParameter = lovPara;\r\n return true;\r\n }\r\n options.first();\r\n if (!options.length) {\r\n return true;\r\n }\r\n }\r\n return dirty;\r\n }\r\n handleKeyDown(e) {\r\n if (!this.popup && e.keyCode === KeyCode.DOWN) {\r\n stopEvent(e);\r\n this.openModal();\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleBlur(e) {\r\n if (this.modal) {\r\n e.preventDefault();\r\n }\r\n super.handleBlur(e);\r\n }\r\n syncValueOnBlur(value) {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.button) {\r\n super.syncValueOnBlur(value);\r\n }\r\n }\r\n getConfig() {\r\n const { lovCode } = this;\r\n if (lovCode) {\r\n return lovStore.getConfig(lovCode);\r\n }\r\n }\r\n getPlaceholders() {\r\n const placeholder = super.getPlaceholders();\r\n if (placeholder.length) {\r\n return placeholder;\r\n }\r\n const config = this.getConfig();\r\n if (config) {\r\n const { placeholder: holder } = config;\r\n const holders = [];\r\n return holder ? holders.concat(holder) : holders;\r\n }\r\n return [];\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['modalProps', 'noCache']);\r\n }\r\n getButtonProps() {\r\n const { className, type } = this.props;\r\n const props = {\r\n ...Button.defaultProps,\r\n ...omit(this.getOtherProps(), ['name']),\r\n className,\r\n type,\r\n };\r\n if (!this.isValid) {\r\n props.color = ButtonColor.red;\r\n }\r\n return props;\r\n }\r\n getSuffix() {\r\n const { suffix } = this.props;\r\n return this.wrapperSuffix(suffix || <Icon type=\"search\"/>, {\r\n onClick: this.isDisabled() || this.isReadOnly() ? undefined : this.openModal,\r\n });\r\n }\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n if (this.modal) {\r\n this.modal.close();\r\n }\r\n }\r\n select() {\r\n const { mode } = this.props;\r\n if (mode !== ViewMode.button) {\r\n super.select();\r\n }\r\n }\r\n renderWrapper() {\r\n const { mode, children, clearButton } = this.props;\r\n if (mode === ViewMode.button) {\r\n const elements = [\r\n <Button key=\"lov_button\" {...this.getButtonProps()} disabled={this.isDisabled()} onClick={this.openModal}>\n {children || this.getTextNode() || this.getPlaceholders()[0] || $l('Lov', 'choose')}\n </Button>,\r\n ];\r\n if (clearButton) {\r\n elements.push(<Button key=\"lov_clear_button\" size={Size.small} funcType={FuncType.flat} icon=\"close\" onClick={this.handleClearButtonClick}/>);\r\n }\r\n return elements;\r\n }\r\n return super.renderWrapper();\r\n }\r\n};\r\nLov.displayName = 'Lov';\r\nLov.propTypes = {\r\n ...Select.propTypes,\r\n ...Button.propTypes,\r\n modalProps: PropTypes.object,\r\n noCache: PropTypes.bool,\r\n};\r\nLov.defaultProps = {\r\n ...Select.defaultProps,\r\n clearButton: true,\r\n checkValueOnOptionsChange: false,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], Lov.prototype, \"filterText\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Lov.prototype, \"searchMatcher\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Lov.prototype, \"searchable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Lov.prototype, \"lovCode\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Lov.prototype, \"popup\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Lov.prototype, \"options\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Lov.prototype, \"searchRemote\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Lov.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Lov.prototype, \"handleBlur\", null);\r\nLov = tslib_1.__decorate([\r\n observer\r\n], Lov);\r\nexport default Lov;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action } from 'mobx';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport Table from '../table/Table';\r\nimport { SelectionMode, TableMode } from '../table/enum';\r\nimport { DataSetSelection } from '../data-set/enum';\r\nexport default class LovView extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.handleKeyDown = e => {\r\n if (e.keyCode === KeyCode.ENTER) {\r\n const { onEnterDown } = this.props;\r\n onEnterDown();\r\n }\r\n };\r\n this.handleRow = () => {\r\n const { onDoubleClick } = this.props;\r\n return {\r\n onDoubleClick,\r\n };\r\n };\r\n }\r\n componentWillMount() {\r\n const { dataSet, dataSet: { selection }, multiple, } = this.props;\r\n this.selection = selection;\r\n dataSet.selection = multiple ? DataSetSelection.multiple : DataSetSelection.single;\r\n }\r\n componentWillUnmount() {\r\n const { dataSet } = this.props;\r\n dataSet.selection = this.selection;\r\n }\r\n getColumns() {\r\n const { config: { lovItems }, } = this.props;\r\n return lovItems\r\n ? lovItems\r\n .filter(({ gridField }) => gridField === 'Y')\r\n .sort(({ gridFieldSequence: seq1 }, { gridFieldSequence: seq2 }) => seq1 - seq2)\r\n .map(({ display, gridFieldName, gridFieldWidth, gridFieldAlign }) => ({\r\n key: gridFieldName,\r\n header: display,\r\n name: gridFieldName,\r\n width: gridFieldWidth,\r\n align: gridFieldAlign,\r\n }))\r\n : undefined;\r\n }\r\n render() {\r\n const { dataSet, config: { height, treeFlag, queryColumns }, multiple, } = this.props;\r\n const tableProps = {\r\n autoFocus: true,\r\n mode: treeFlag === 'Y' ? TableMode.tree : TableMode.list,\r\n onKeyDown: this.handleKeyDown,\r\n dataSet,\r\n columns: this.getColumns(),\r\n queryFieldsLimit: queryColumns,\r\n };\r\n if (multiple) {\r\n tableProps.selectionMode = SelectionMode.rowbox;\r\n }\r\n else {\r\n tableProps.selectionMode = SelectionMode.none;\r\n tableProps.onRow = this.handleRow;\r\n }\r\n if (height) {\r\n tableProps.style = { height };\r\n }\r\n return <Table {...tableProps}/>;\r\n }\r\n}\r\nLovView.propTypes = {\r\n dataSet: PropTypes.object.isRequired,\r\n config: PropTypes.object.isRequired,\r\n onDoubleClick: PropTypes.func.isRequired,\r\n onEnterDown: PropTypes.func.isRequired,\r\n};\r\ntslib_1.__decorate([\r\n action\r\n], LovView.prototype, \"componentWillMount\", null);\r\ntslib_1.__decorate([\r\n action\r\n], LovView.prototype, \"componentWillUnmount\", null);\r\n","export var LovFieldType;\r\n(function (LovFieldType) {\r\n LovFieldType[\"INT\"] = \"INT\";\r\n LovFieldType[\"TEXT\"] = \"TEXT\";\r\n LovFieldType[\"DATE\"] = \"DATE\";\r\n LovFieldType[\"DATETIME\"] = \"DATETIME\";\r\n LovFieldType[\"POPUP\"] = \"POPUP\";\r\n LovFieldType[\"SELECT\"] = \"SELECT\";\r\n})(LovFieldType || (LovFieldType = {}));\r\nexport var ViewMode;\r\n(function (ViewMode) {\r\n ViewMode[\"default\"] = \"default\";\r\n ViewMode[\"button\"] = \"button\";\r\n})(ViewMode || (ViewMode = {}));\r\n","import Lov from './Lov';\r\nexport default Lov;\r\n","import '../../text-field/style';\r\n// style dependencies\r\nimport '../../table/style';\r\nimport '../../modal-container/style';\r\nimport '../../progress/style';\r\n","import Menu from 'choerodon-ui/lib/menu';\r\nexport default Menu;\r\n","import 'choerodon-ui/lib/menu/style';\r\n","import message from 'choerodon-ui/lib/message';\r\nexport default message;\r\n","import 'choerodon-ui/lib/message/style';\r\n","import React from 'react';\r\nimport ViewComponent from '../core/ViewComponent';\r\nexport default class Mask extends ViewComponent {\r\n render() {\r\n return <div {...this.getMergedProps()}/>;\r\n }\r\n}\r\nMask.displayName = 'Mask';\r\nMask.defaultProps = {\r\n suffixCls: 'mask',\r\n};\r\n","import React, { Component } from 'react';\r\nimport { createPortal, render } from 'react-dom';\r\nimport classNames from 'classnames';\r\nimport findLast from 'lodash/findLast.js';\r\nimport noop from 'lodash/noop';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport Modal from '../modal/Modal';\r\nimport Animate from '../animate';\r\nimport Mask from './Mask';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport { suffixCls } from '../modal/utils';\r\nconst KeyGen = (function* (id) {\r\n while (true) {\r\n yield `${getProPrefixCls(suffixCls)}-${id}`;\r\n id += 1;\r\n }\r\n})(1);\r\nconst containerInstanses = [];\r\nfunction removeInstanse(instanse) {\r\n const index = containerInstanses.indexOf(instanse);\r\n if (index > -1) {\r\n containerInstanses.splice(index, 1);\r\n }\r\n}\r\nfunction addInstanse(instanse) {\r\n removeInstanse(instanse);\r\n containerInstanses.push(instanse);\r\n}\r\nexport function getKey() {\r\n return KeyGen.next().value;\r\n}\r\nlet root;\r\nlet defaultBodyStyle;\r\nfunction getRoot() {\r\n if (typeof window !== 'undefined') {\r\n const doc = window.document;\r\n if (root) {\r\n if (!root.parentNode) {\r\n doc.body.appendChild(root);\r\n }\r\n }\r\n else {\r\n root = doc.createElement('div');\r\n root.className = `${getProPrefixCls(suffixCls)}-container`;\r\n doc.body.appendChild(root);\r\n }\r\n }\r\n return root;\r\n}\r\n/**\r\n * 判断body是否有滚动条\r\n *\r\n * @returns {boolean}\r\n */\r\nfunction hasScrollBar() {\r\n const { scrollHeight, clientHeight } = document.body;\r\n return scrollHeight > clientHeight;\r\n}\r\nfunction hideBodyScrollBar() {\r\n const { style } = document.body;\r\n if (!defaultBodyStyle) {\r\n defaultBodyStyle = {\r\n overflow: style.overflow,\r\n paddingRight: style.paddingRight,\r\n };\r\n style.overflow = 'hidden';\r\n if (hasScrollBar()) {\r\n style.paddingRight = pxToRem(measureScrollbar()) || null;\r\n }\r\n }\r\n}\r\nfunction showBodyScrollBar() {\r\n const { style } = document.body;\r\n if (defaultBodyStyle) {\r\n const { overflow, paddingRight } = defaultBodyStyle;\r\n defaultBodyStyle = undefined;\r\n style.overflow = overflow;\r\n style.paddingRight = paddingRight;\r\n }\r\n}\r\nexport default class ModalContainer extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n modals: [],\r\n };\r\n this.handleAnimationEnd = (modalKey, isEnter) => {\r\n if (!isEnter) {\r\n const { modals } = this.state;\r\n const index = this.findIndex(modalKey);\r\n if (index !== -1) {\r\n const props = modals[index];\r\n modals.splice(index, 1);\r\n if (!props.destroyOnClose) {\r\n modals.unshift(props);\r\n }\r\n if (props.afterClose) {\r\n props.afterClose();\r\n }\r\n this.setState({ modals });\r\n }\r\n }\r\n };\r\n this.handleMaskClick = async () => {\r\n const { modals } = this.state;\r\n const modal = findLast(modals, ({ hidden }) => !hidden);\r\n if (modal) {\r\n const { close = noop, onCancel = noop, maskClosable } = modal;\r\n if (maskClosable) {\r\n const ret = await onCancel();\r\n if (ret !== false) {\r\n close();\r\n }\r\n }\r\n }\r\n };\r\n addInstanse(this);\r\n }\r\n componentWillUpdate(nextProps) {\r\n const { location } = nextProps;\r\n const { location: currentLocation } = this.props;\r\n if (location && currentLocation && location.pathname !== currentLocation.pathname) {\r\n this.clear();\r\n }\r\n addInstanse(this);\r\n }\r\n componentWillUnmount() {\r\n removeInstanse(this);\r\n }\r\n findIndex(modalKey) {\r\n const { modals } = this.state;\r\n return modals.findIndex(({ key }) => key === modalKey);\r\n }\r\n open(props) {\r\n const { modals } = this.state;\r\n if (!props.key) {\r\n props.key = getKey();\r\n warning(!!props.destroyOnClose, `The modal which opened has no key, please provide a key or set the \\`destroyOnClose\\` as true.`);\r\n }\r\n else {\r\n const index = this.findIndex(props.key);\r\n if (index !== -1) {\r\n modals.splice(index, 1);\r\n }\r\n }\r\n modals.push({ ...props, hidden: false });\r\n this.setState({ modals });\r\n }\r\n close(props) {\r\n const { modals } = this.state;\r\n const target = modals.find(({ key }) => key === props.key);\r\n if (target) {\r\n Object.assign(target, props, { hidden: true });\r\n this.setState({ modals });\r\n }\r\n }\r\n update(props) {\r\n const { modals: originModals } = this.state;\r\n const modals = [...originModals];\r\n if (props.key) {\r\n const index = this.findIndex(props.key);\r\n if (index !== -1) {\r\n modals[index] = props;\r\n this.setState({ modals });\r\n }\r\n }\r\n }\r\n clear() {\r\n const { modals } = this.state;\r\n modals.forEach(modal => this.close({ ...modal, destroyOnClose: true }));\r\n }\r\n getOffset(modals, idx) {\r\n const MARGIN_RIGHT_ARRAY = [];\r\n const DEFAULT = 150;\r\n const drawers = modals.filter(modal => modal.drawer && !modal.hidden);\r\n const indexInDrawers = drawers.findIndex(drawer => drawer.key === modals[idx].key);\r\n if (indexInDrawers === -1) {\r\n return 0;\r\n }\r\n for (let i = drawers.length - 1; i >= indexInDrawers; i--) {\r\n if (i === drawers.length - 1) {\r\n MARGIN_RIGHT_ARRAY.push(0);\r\n }\r\n else {\r\n const CURRENT_WIDTH = this.getModalWidth(drawers[i]);\r\n const NEXT_WIDTH = this.getModalWidth(drawers[i + 1]);\r\n const NEXT_MARGIN = MARGIN_RIGHT_ARRAY[drawers.length - i - 2];\r\n if (CURRENT_WIDTH >= NEXT_MARGIN + NEXT_WIDTH + DEFAULT) {\r\n MARGIN_RIGHT_ARRAY.push(0);\r\n }\r\n else {\r\n MARGIN_RIGHT_ARRAY.push(NEXT_MARGIN + NEXT_WIDTH + DEFAULT - CURRENT_WIDTH);\r\n }\r\n }\r\n }\r\n return MARGIN_RIGHT_ARRAY[MARGIN_RIGHT_ARRAY.length - 1];\r\n }\r\n getModalWidth(modal) {\r\n return (modal && modal.style && modal.style.width) || 520;\r\n }\r\n getComponent() {\r\n let hidden = true;\r\n const { modals } = this.state;\r\n const items = modals.map((props, index) => {\r\n const thisHidden = props.hidden;\r\n if (hidden && !thisHidden) {\r\n hidden = false;\r\n }\r\n const newProps = {};\r\n if (props.drawer) {\r\n newProps.style = {\r\n marginRight: this.getOffset(modals, index),\r\n ...props.style,\r\n };\r\n }\r\n if (index === modals.length - 1) {\r\n newProps.className = classNames(props.className, `${getProPrefixCls(suffixCls)}-active`);\r\n }\r\n return (<Animate key={props.key} component=\"div\" transitionAppear transitionName={props.drawer ? 'slide-right' : 'zoom'} hiddenProp=\"hidden\" onEnd={this.handleAnimationEnd}>\n <Modal key={props.key} {...props} {...newProps}/>\n </Animate>);\r\n });\r\n const animationProps = {};\r\n if (typeof window !== 'undefined') {\r\n if (hidden) {\r\n animationProps.onEnd = showBodyScrollBar;\r\n }\r\n else {\r\n hideBodyScrollBar();\r\n }\r\n }\r\n return (<>\n <Animate component=\"\" transitionAppear transitionName=\"fade\" hiddenProp=\"hidden\" {...animationProps}>\n <Mask hidden={hidden} onClick={this.handleMaskClick} onMouseDown={stopEvent}/>\n </Animate>\n {items}\n </>);\r\n }\r\n render() {\r\n const mount = getRoot();\r\n if (mount) {\r\n return createPortal(this.getComponent(), mount);\r\n }\r\n return null;\r\n }\r\n}\r\nModalContainer.displayName = 'ModalContainer';\r\nexport function getContainer(loop) {\r\n const { length } = containerInstanses;\r\n if (length) {\r\n return containerInstanses[length - 1];\r\n }\r\n if (loop !== true) {\r\n render(<ModalContainer />, getRoot());\r\n return getContainer(true);\r\n }\r\n}\r\nexport function open(props) {\r\n const container = getContainer();\r\n async function close(destroy) {\r\n const { onClose = noop } = props;\r\n if ((await onClose()) !== false) {\r\n if (destroy) {\r\n container.close({ ...props, destroyOnClose: true });\r\n }\r\n else {\r\n container.close(props);\r\n }\r\n }\r\n }\r\n function show() {\r\n container.open(props);\r\n }\r\n function update(newProps) {\r\n container.update({ ...props, ...newProps });\r\n }\r\n props = {\r\n close,\r\n update,\r\n ...Modal.defaultProps,\r\n ...props,\r\n };\r\n container.open(props);\r\n return {\r\n close,\r\n open: show,\r\n update,\r\n };\r\n}\r\n","import ModalContainer from './ModalContainer';\r\nexport default ModalContainer;\r\n","// style dependencies\r\nimport '../../modal/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport defer from 'lodash/defer';\r\nimport noop from 'lodash/noop';\r\nimport classNames from 'classnames';\r\nimport classes from 'component-classes';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport ViewComponent from '../core/ViewComponent';\r\nimport Icon from '../icon';\r\nimport autobind from '../_util/autobind';\r\nimport Button from '../button/Button';\r\nimport EventManager from '../_util/EventManager';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport { ButtonColor, FuncType } from '../button/enum';\r\nimport asyncComponent from '../_util/AsyncComponent';\r\nimport message from '../message';\r\nimport exception from '../_util/exception';\r\nimport { $l } from '../locale-context';\r\nimport DataSetRequestError from '../data-set/DataSetRequestError';\r\nimport { suffixCls } from './utils';\r\nexport default class Modal extends ViewComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.moveEvent = new EventManager(typeof window === 'undefined' ? undefined : document);\r\n this.okCancelEvent = new EventManager();\r\n this.saveCancelRef = node => (this.cancelButton = node);\r\n this.handleKeyDown = e => {\r\n const { cancelButton } = this;\r\n if (cancelButton && !cancelButton.isDisabled() && e.keyCode === KeyCode.ESC) {\r\n cancelButton.handleClickWait(e);\r\n }\r\n };\r\n this.registerOk = ok => {\r\n this.okCancelEvent.removeEventListener('ok');\r\n this.okCancelEvent.addEventListener('ok', ok);\r\n };\r\n this.registerCancel = cancel => {\r\n this.okCancelEvent.removeEventListener('cancel');\r\n this.okCancelEvent.addEventListener('cancel', cancel);\r\n };\r\n this.getDefaultFooter = (okBtn, cancelBtn) => {\r\n const { okCancel, okFirst = getConfig('modalOkFirst'), drawer } = this.props;\r\n const buttons = [okBtn];\r\n if (okCancel) {\r\n if (okFirst || drawer) {\r\n buttons.push(cancelBtn);\r\n }\r\n else {\r\n buttons.unshift(cancelBtn);\r\n }\r\n }\r\n return <div>{buttons}</div>;\r\n };\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'closable',\r\n 'movable',\r\n 'maskClosable',\r\n 'keyboardClosable',\r\n 'fullScreen',\r\n 'title',\r\n 'footer',\r\n 'close',\r\n 'update',\r\n 'okText',\r\n 'cancelText',\r\n 'okCancel',\r\n 'onClose',\r\n 'onOk',\r\n 'onCancel',\r\n 'destroyOnClose',\r\n 'drawer',\r\n 'afterClose',\r\n 'okProps',\r\n 'cancelProps',\r\n 'border',\r\n 'okFirst',\r\n ]);\r\n if (this.props.keyboardClosable) {\r\n otherProps.autoFocus = true;\r\n otherProps.tabIndex = -1;\r\n otherProps.onKeyDown = this.handleKeyDown;\r\n }\r\n return otherProps;\r\n }\r\n getClassName() {\r\n const { prefixCls, props: { style = {}, fullScreen, drawer, border = getConfig('modalSectionBorder') }, } = this;\r\n return super.getClassName({\r\n [`${prefixCls}-center`]: !drawer && !('left' in style || 'right' in style) && !this.offset,\r\n [`${prefixCls}-fullscreen`]: fullScreen,\r\n [`${prefixCls}-drawer`]: drawer,\r\n [`${prefixCls}-border`]: border,\r\n });\r\n }\r\n render() {\r\n const { prefixCls } = this;\r\n const header = this.getHeader();\r\n const body = this.getBody();\r\n const footer = this.getFooter();\r\n return (<div {...this.getMergedProps()}>\n <div className={`${prefixCls}-content`}>\n {header}\n {body}\n {footer}\n </div>\n </div>);\r\n }\r\n componentWillUpdate({ hidden }) {\r\n if (hidden === false && hidden !== this.props.hidden) {\r\n defer(() => this.focus());\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.moveEvent.clear();\r\n this.okCancelEvent.clear();\r\n }\r\n handleHeaderMouseDown(downEvent) {\r\n const { element } = this;\r\n if (element) {\r\n const { prefixCls } = this;\r\n const { clientX, clientY } = downEvent;\r\n const { offsetLeft, offsetTop } = element;\r\n this.moveEvent\r\n .addEventListener('mousemove', (moveEvent) => {\r\n const { clientX: moveX, clientY: moveY } = moveEvent;\r\n classes(element).remove(`${prefixCls}-center`);\r\n const left = pxToRem(Math.max(offsetLeft + moveX - clientX, 0));\r\n const top = pxToRem(Math.max(offsetTop + moveY - clientY, 0));\r\n this.offset = [left, top];\r\n Object.assign(element.style, {\r\n left,\r\n top,\r\n });\r\n })\r\n .addEventListener('mouseup', () => {\r\n this.moveEvent.clear();\r\n });\r\n }\r\n }\r\n async handleOk() {\r\n const { onOk = noop } = this.props;\r\n const promise = Promise.all([onOk(), this.okCancelEvent.fireEvent('ok')]);\r\n try {\r\n const [ret1, ret2] = await promise;\r\n if (ret1 !== false && ret2) {\r\n this.close();\r\n }\r\n }\r\n catch (e) {\r\n if (!(e instanceof DataSetRequestError)) {\r\n message.error(exception(e));\r\n }\r\n throw e;\r\n }\r\n }\r\n async handleCancel() {\r\n const { onCancel = noop } = this.props;\r\n const promise = Promise.all([onCancel(), this.okCancelEvent.fireEvent('cancel')]);\r\n try {\r\n const [ret1, ret2] = await promise;\r\n if (ret1 !== false && ret2) {\r\n this.close();\r\n }\r\n }\r\n catch (e) {\r\n if (!(e instanceof DataSetRequestError)) {\r\n message.error(exception(e));\r\n }\r\n throw e;\r\n }\r\n }\r\n getTitle() {\r\n const { props: { title }, prefixCls, } = this;\r\n if (title) {\r\n return <div className={`${prefixCls}-title`}>{title}</div>;\r\n }\r\n }\r\n getHeader() {\r\n const { prefixCls, props: { closable, movable, fullScreen, drawer }, } = this;\r\n const title = this.getTitle();\r\n const buttons = this.getHeaderButtons();\r\n if (title || closable || movable) {\r\n const headerProps = {\r\n className: classNames(`${prefixCls}-header`, {\r\n [`${prefixCls}-movable`]: movable && !fullScreen && !drawer,\r\n }),\r\n };\r\n if (movable && !fullScreen && !drawer) {\r\n headerProps.onMouseDown = this.handleHeaderMouseDown;\r\n }\r\n return (<div {...headerProps}>\n {title}\n {buttons}\n </div>);\r\n }\r\n }\r\n getHeaderButtons() {\r\n const { prefixCls } = this;\r\n const closeButton = this.getCloseButton();\r\n if (closeButton) {\r\n return <div className={`${prefixCls}-header-buttons`}>{closeButton}</div>;\r\n }\r\n }\r\n getCloseButton() {\r\n const { prefixCls, props: { closable }, } = this;\r\n if (closable) {\r\n return (<button type=\"button\" className={`${prefixCls}-header-button`} onClick={this.close}>\n <Icon type=\"close\"/>\n </button>);\r\n }\r\n }\r\n renderChildren(children) {\r\n if (children) {\r\n const { prefixCls, props } = this;\r\n const { close = noop, update = noop } = props;\r\n const modal = {\r\n close,\r\n update,\r\n props,\r\n handleOk: this.registerOk,\r\n handleCancel: this.registerCancel,\r\n };\r\n return (<div className={`${prefixCls}-body`}>\n {isValidElement(children) ? cloneElement(children, { modal }) : children}\n </div>);\r\n }\r\n }\r\n getBody() {\r\n const { children } = this.props;\r\n return this.renderChildren(typeof children === 'function'\r\n ? asyncComponent(children)\r\n : children);\r\n }\r\n getFooter() {\r\n const { okProps, cancelProps, drawer, okText = $l('Modal', 'ok'), cancelText = $l('Modal', 'cancel'), footer = this.getDefaultFooter, } = this.props;\r\n const funcType = drawer\r\n ? FuncType.raised\r\n : getConfig('buttonFuncType');\r\n const okBtn = (<Button key=\"ok\" funcType={funcType} color={ButtonColor.primary} onClick={this.handleOk} {...okProps}>\n {okText}\n </Button>);\r\n const cancelBtn = (<Button key=\"cancel\" ref={this.saveCancelRef} funcType={funcType} onClick={this.handleCancel} {...cancelProps}>\n {cancelText}\n </Button>);\r\n if (typeof footer === 'function') {\r\n return this.getWrappedFooter(footer(okBtn, cancelBtn));\r\n }\r\n if (!isEmpty(footer, true)) {\r\n return this.getWrappedFooter(footer);\r\n }\r\n }\r\n getWrappedFooter(footer) {\r\n const { prefixCls } = this;\r\n const { drawer } = this.props;\r\n const className = classNames(`${prefixCls}-footer`, {\r\n [`${prefixCls}-footer-drawer`]: !!drawer,\r\n });\r\n return <div className={className}>{footer}</div>;\r\n }\r\n close() {\r\n const { close = noop } = this.props;\r\n close();\r\n }\r\n}\r\nModal.displayName = 'Modal';\r\nModal.propTypes = {\r\n ...ViewComponent.propTypes,\r\n closable: PropTypes.bool,\r\n movable: PropTypes.bool,\r\n fullScreen: PropTypes.bool,\r\n maskClosable: PropTypes.bool,\r\n keyboardClosable: PropTypes.bool,\r\n footer: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.bool]),\r\n destroyOnClose: PropTypes.bool,\r\n okText: PropTypes.node,\r\n cancelText: PropTypes.node,\r\n okProps: PropTypes.object,\r\n cancelProps: PropTypes.object,\r\n onClose: PropTypes.func,\r\n onOk: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n afterClose: PropTypes.func,\r\n okCancel: PropTypes.bool,\r\n drawer: PropTypes.bool,\r\n // title: PropTypes.node,\r\n // 此处原本允许title传入node,但是类型为PropTypes.node时无法正确继承ViewComponent\r\n // 父类中的title指的是HTML元素的title属性,此处title指modal标题,产生歧义,暂时设置为string\r\n // TODO: 添加modalTitle属性替代此处的title\r\n title: PropTypes.string,\r\n okFirst: PropTypes.bool,\r\n};\r\nModal.defaultProps = {\r\n suffixCls,\r\n closable: false,\r\n movable: true,\r\n maskClosable: false,\r\n keyboardClosable: true,\r\n okCancel: true,\r\n destroyOnClose: true,\r\n fullScreen: false,\r\n drawer: false,\r\n autoFocus: true,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], Modal.prototype, \"handleHeaderMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Modal.prototype, \"handleOk\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Modal.prototype, \"handleCancel\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Modal.prototype, \"close\", null);\r\n","import React from 'react';\r\nimport noop from 'lodash/noop';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport { getKey, open } from '../modal-container/ModalContainer';\r\nimport Icon from '../icon';\r\nimport { normalizeProps } from './utils';\r\nexport default function confirm(props) {\r\n const { children, type = 'confirm', onOk = noop, onCancel = noop, iconType, border = false, okCancel = true, title, ...otherProps } = normalizeProps(props);\r\n const prefixCls = getProPrefixCls('confirm');\r\n const titleNode = title && <div className={`${prefixCls}-title`}>{title}</div>;\r\n const contentNode = children && <div className={`${prefixCls}-content`}>{children}</div>;\r\n const iconNode = iconType && (<td className={`${prefixCls}-icon ${prefixCls}-${type}`}>\n <Icon type={iconType}/>\n </td>);\r\n return new Promise(resolve => {\r\n open({\r\n key: getKey(),\r\n border,\r\n destroyOnClose: true,\r\n okCancel,\r\n closable: false,\r\n movable: false,\r\n style: { width: '4.16rem' },\r\n children: (<table className={prefixCls}>\n <tbody>\n <tr>\n {iconNode}\n <td>\n {titleNode}\n {contentNode}\n </td>\n </tr>\n </tbody>\n </table>),\r\n onOk: async () => {\r\n const result = await onOk();\r\n if (result !== false) {\r\n resolve('ok');\r\n }\r\n return result;\r\n },\r\n onCancel: async () => {\r\n const result = await onCancel();\r\n if (result !== false) {\r\n resolve('cancel');\r\n }\r\n return result;\r\n },\r\n ...otherProps,\r\n });\r\n });\r\n}\r\n","import Modal from './Modal';\r\nimport { getKey, open } from '../modal-container/ModalContainer';\r\nimport confirm from './confirm';\r\nimport { normalizeProps } from './utils';\r\nModal.key = getKey;\r\nModal.open = open;\r\nModal.confirm = confirm;\r\nModal.info = function (props) {\r\n return confirm({\r\n type: 'info',\r\n okCancel: false,\r\n ...normalizeProps(props),\r\n });\r\n};\r\nModal.success = function (props) {\r\n return confirm({\r\n type: 'success',\r\n iconType: 'check_circle',\r\n okCancel: false,\r\n ...normalizeProps(props),\r\n });\r\n};\r\nModal.error = function (props) {\r\n return confirm({\r\n type: 'error',\r\n iconType: 'cancel',\r\n okCancel: false,\r\n ...normalizeProps(props),\r\n });\r\n};\r\nModal.warning = function (props) {\r\n return confirm({\r\n type: 'warning',\r\n iconType: 'warning',\r\n okCancel: false,\r\n ...normalizeProps(props),\r\n });\r\n};\r\nexport default Modal;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../button/style';\r\n","import { isValidElement } from 'react';\r\nimport { isArrayLike } from 'mobx';\r\nimport isNil from 'lodash/isNil';\r\nimport isBoolean from 'lodash/isBoolean';\r\nimport isNumber from 'lodash/isNumber';\r\nimport isString from 'lodash/isString';\r\nexport const suffixCls = 'modal';\r\nexport function normalizeProps(props) {\r\n if (isString(props) ||\r\n isValidElement(props) ||\r\n isBoolean(props) ||\r\n isNil(props) ||\r\n isNumber(props) ||\r\n isArrayLike(props)) {\r\n return {\r\n children: props,\r\n };\r\n }\r\n return props;\r\n}\r\n","import DatePicker from '../date-picker/DatePicker';\r\nimport { ViewMode } from '../date-picker/enum';\r\nexport default class MonthPicker extends DatePicker {\r\n}\r\nMonthPicker.displayName = 'MonthPicker';\r\nMonthPicker.defaultProps = {\r\n ...DatePicker.defaultProps,\r\n mode: ViewMode.month,\r\n};\r\n","import MonthPicker from './MonthPicker';\r\nexport default MonthPicker;\r\n","// style dependencies\r\nimport '../../date-picker/style';\r\n","import Notification from 'choerodon-ui/lib/notification';\r\nexport default Notification;\r\n","import 'choerodon-ui/lib/notification/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { computed } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport isString from 'lodash/isString';\r\nimport isNumber from 'lodash/isNumber';\r\nimport defaultTo from 'lodash/defaultTo';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { TextField } from '../text-field/TextField';\r\nimport autobind from '../_util/autobind';\r\nimport keepRunning from '../_util/keepRunning';\r\nimport Icon from '../icon';\r\nimport { getNearStepValues, getPrecision, MAX_SAFE_INTEGER, plus } from './utils';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport { $l } from '../locale-context';\r\nimport { FieldType } from '../data-set/enum';\r\nimport formatNumber from '../formatter/formatNumber';\r\nfunction getCurrentValidValue(value) {\r\n return Number(value.replace(/\\.$/, '')) || 0;\r\n}\r\nexport class NumberField extends TextField {\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('NumberField', label ? 'value_missing' : 'value_missing_no_label', {\r\n label,\r\n }),\r\n };\r\n }\r\n get allowDecimal() {\r\n const { min } = this;\r\n const step = this.getProp('step');\r\n return !step || step % 1 !== 0 || (!!min && min % 1 !== 0);\r\n }\r\n get allowNegative() {\r\n const { min } = this;\r\n return min === undefined || min < 0;\r\n }\r\n get min() {\r\n return this.getLimit('min');\r\n }\r\n get max() {\r\n return this.getLimit('max');\r\n }\r\n getFieldType() {\r\n return FieldType.number;\r\n }\r\n getLimit(type) {\r\n const { record } = this;\r\n const limit = this.getProp(type);\r\n if (record && isString(limit)) {\r\n const num = record.get(limit);\r\n if (num !== undefined) {\r\n return num;\r\n }\r\n }\r\n return limit;\r\n }\r\n getValidatorProps() {\r\n const { min, max } = this;\r\n const step = this.getProp('step');\r\n return {\r\n ...super.getValidatorProps(),\r\n min,\r\n max,\r\n step,\r\n };\r\n }\r\n getInnerSpanButton() {\r\n const { prefixCls } = this;\r\n const step = this.getProp('step');\r\n if (step && !this.isReadOnly()) {\r\n return this.wrapperInnerSpanButton(<div>\n <Icon key=\"plus\" type=\"keyboard_arrow_up\" className={`${prefixCls}-plus`} onMouseDown={this.handlePlus}/>\n <Icon key=\"minus\" type=\"keyboard_arrow_down\" className={`${prefixCls}-minus`} onMouseDown={this.handleMinus}/>\n </div>);\r\n }\r\n }\r\n handleKeyDown(e) {\r\n if (!this.props.disabled && !this.isReadOnly()) {\r\n switch (e.keyCode) {\r\n case KeyCode.UP:\r\n this.handleKeyDownUp(e);\r\n break;\r\n case KeyCode.DOWN:\r\n this.handleKeyDownDown(e);\r\n break;\r\n default:\r\n }\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleKeyDownUp(e) {\r\n e.preventDefault();\r\n if (this.getProp('step')) {\r\n this.step(true);\r\n }\r\n }\r\n handleKeyDownDown(e) {\r\n e.preventDefault();\r\n if (this.getProp('step')) {\r\n this.step(false);\r\n }\r\n }\r\n handlePlus() {\r\n this.step(true);\r\n }\r\n handleMinus() {\r\n this.step(false);\r\n }\r\n step(isPlus) {\r\n const min = defaultTo(this.min, -MAX_SAFE_INTEGER);\r\n const max = defaultTo(this.max, MAX_SAFE_INTEGER);\r\n const step = defaultTo(this.getProp('step'), 1);\r\n let newValue;\r\n const value = this.multiple || this.isFocused ? Number(this.text || this.getValue()) : this.getValue();\r\n if (!isNumber(value)) {\r\n newValue = defaultTo(this.min, 0);\r\n }\r\n else {\r\n const currentValue = getCurrentValidValue(String(value));\r\n newValue = currentValue;\r\n const nearStep = getNearStepValues(currentValue, step, min, max);\r\n if (nearStep) {\r\n switch (nearStep.length) {\r\n case 1:\r\n newValue = nearStep[0];\r\n break;\r\n case 2:\r\n newValue = nearStep[isPlus ? 1 : 0];\r\n break;\r\n default:\r\n }\r\n }\r\n else {\r\n const nextValue = plus(currentValue, (isPlus ? step : -step));\r\n if (nextValue < min) {\r\n newValue = min;\r\n }\r\n else if (nextValue > max) {\r\n const nearMaxStep = getNearStepValues(max, step, min, max);\r\n if (nearMaxStep) {\r\n newValue = nearMaxStep[0];\r\n }\r\n else {\r\n newValue = max;\r\n }\r\n }\r\n else {\r\n newValue = nextValue;\r\n }\r\n }\r\n }\r\n if (this.value !== newValue) {\r\n if (this.multiple) {\r\n this.setText(String(newValue));\r\n }\r\n else {\r\n this.prepareSetValue(newValue);\r\n }\r\n }\r\n }\r\n prepareSetValue(value) {\r\n super.prepareSetValue(isNaN(value) || isEmpty(value) ? null : Number(value));\r\n }\r\n restrictInput(value) {\r\n if (value) {\r\n let restrict = '0-9';\r\n if (this.allowDecimal) {\r\n restrict += '.';\r\n }\r\n const isNegative = this.allowNegative && /^-/.test(value);\r\n value = super.restrictInput(value.replace(new RegExp(`[^${restrict}]+`, 'g'), ''));\r\n const values = value.split('.');\r\n if (values.length > 2) {\r\n value = `${values.shift()}.${values.join('')}`;\r\n }\r\n if (isNegative) {\r\n value = `-${value}`;\r\n }\r\n }\r\n return value;\r\n }\r\n getFormatOptions() {\r\n const precision = getPrecision(this.getValue() || 0);\r\n return {\r\n minimumFractionDigits: precision,\r\n maximumFractionDigits: precision,\r\n };\r\n }\r\n getFormatter() {\r\n return formatNumber;\r\n }\r\n processText(value) {\r\n return this.getFormatter()(value, this.lang, this.getFormatOptions());\r\n }\r\n}\r\nNumberField.displayName = 'NumberField';\r\nNumberField.propTypes = {\r\n /**\r\n * 最小值\r\n */\r\n min: PropTypes.number,\r\n /**\r\n * 最大值\r\n */\r\n max: PropTypes.number,\r\n /**\r\n * 步距\r\n */\r\n step: PropTypes.number,\r\n ...TextField.propTypes,\r\n};\r\nNumberField.defaultProps = {\r\n ...TextField.defaultProps,\r\n suffixCls: 'input-number',\r\n};\r\nNumberField.format = formatNumber;\r\ntslib_1.__decorate([\r\n computed\r\n], NumberField.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], NumberField.prototype, \"allowDecimal\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], NumberField.prototype, \"allowNegative\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], NumberField.prototype, \"min\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], NumberField.prototype, \"max\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], NumberField.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n keepRunning\r\n], NumberField.prototype, \"handlePlus\", null);\r\ntslib_1.__decorate([\r\n keepRunning\r\n], NumberField.prototype, \"handleMinus\", null);\r\nlet ObserverNumberField = class ObserverNumberField extends NumberField {\r\n};\r\nObserverNumberField.defaultProps = NumberField.defaultProps;\r\nObserverNumberField.format = formatNumber;\r\nObserverNumberField = tslib_1.__decorate([\r\n observer\r\n], ObserverNumberField);\r\nexport default ObserverNumberField;\r\n","import ObserverNumberField from './NumberField';\r\nexport default ObserverNumberField;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","export const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 2 ** 53 - 1;\r\nexport function getPrecision(value) {\r\n const valueString = value.toString();\r\n if (valueString.indexOf('e-') >= 0) {\r\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\r\n }\r\n if (valueString.indexOf('.') >= 0) {\r\n return valueString.length - valueString.indexOf('.') - 1;\r\n }\r\n return 0;\r\n}\r\nfunction getMaxPrecision(value, step) {\r\n const stepPrecision = getPrecision(step);\r\n const currentValuePrecision = getPrecision(value);\r\n if (!value) {\r\n return stepPrecision;\r\n }\r\n return Math.max(currentValuePrecision, stepPrecision);\r\n}\r\nfunction getPrecisionFactor(value, step) {\r\n return 10 ** getMaxPrecision(value, step);\r\n}\r\nfunction precisionFix(value, precisionFactor) {\r\n return Math.round(value * precisionFactor);\r\n}\r\nexport function plus(...values) {\r\n if (values.length > 2) {\r\n return plus(values.shift(), plus(...values));\r\n }\r\n if (values.length < 2) {\r\n return values[0];\r\n }\r\n const v1 = values[0];\r\n const v2 = values[1];\r\n const precisionFactor = getPrecisionFactor(v1, v2);\r\n return (precisionFix(v1, precisionFactor) + precisionFix(v2, precisionFactor)) / precisionFactor;\r\n}\r\nfunction getBeforeStepValue(value, minFactor, stepFactor) {\r\n return value - ((value - minFactor) % stepFactor);\r\n}\r\nexport function getNearStepValues(value, step, min = -MAX_SAFE_INTEGER, max = MAX_SAFE_INTEGER) {\r\n min = Number(min);\r\n max = Number(max);\r\n const precisionFactor = getPrecisionFactor(value, step);\r\n const valueFactor = precisionFix(value, precisionFactor);\r\n const minFactor = precisionFix(min, precisionFactor);\r\n const minFactorBase = min === -MAX_SAFE_INTEGER ? 0 : minFactor;\r\n const maxFactor = precisionFix(max, precisionFactor);\r\n const stepFactor = precisionFix(step, precisionFactor);\r\n let beforeStepFactor = getBeforeStepValue(valueFactor, minFactorBase, stepFactor);\r\n if (beforeStepFactor === valueFactor) {\r\n return undefined;\r\n }\r\n if (beforeStepFactor > maxFactor) {\r\n beforeStepFactor = getBeforeStepValue(maxFactor, minFactorBase, stepFactor);\r\n }\r\n else if (beforeStepFactor < minFactor) {\r\n beforeStepFactor = minFactor;\r\n }\r\n const afterStepFactor = beforeStepFactor + stepFactor;\r\n const values = [beforeStepFactor / precisionFactor];\r\n if (afterStepFactor <= maxFactor) {\r\n values.push(afterStepFactor / precisionFactor);\r\n }\r\n return values;\r\n}\r\n","import { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\r\nexport default class OptGroup extends Component {\r\n}\r\nOptGroup.propTypes = {\r\n label: PropTypes.string,\r\n};\r\n","import { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\r\nexport default class Option extends Component {\r\n}\r\nOption.propTypes = {\r\n /**\r\n * 选项值\r\n */\r\n value: PropTypes.any,\r\n};\r\n","import { Children, isValidElement } from 'react';\r\nimport DataSet from '../data-set/DataSet';\r\nimport { DataSetSelection, FieldType } from '../data-set/enum';\r\nimport OptGroup from './OptGroup';\r\nimport Option from './Option';\r\nfunction getOptionsFromChildren(elements, data, fields, textField, valueField, disabledField, groups = []) {\r\n if (elements) {\r\n Children.forEach(elements, child => {\r\n if (isValidElement(child)) {\r\n const { type } = child;\r\n if (type === OptGroup) {\r\n const props = child.props;\r\n getOptionsFromChildren(props.children, data, fields, textField, valueField, disabledField, groups.concat(props.label || ''));\r\n }\r\n else if (type === Option) {\r\n const { value, children, disabled } = child.props;\r\n data.push(groups.reduce((obj, group, index) => {\r\n const name = `group-${index}`;\r\n obj[name] = group;\r\n if (!fields.find(field => field.name === name)) {\r\n fields.push({\r\n name,\r\n type: FieldType.reactNode,\r\n group: groups.length - 1,\r\n });\r\n }\r\n return obj;\r\n }, {\r\n [textField]: children,\r\n [valueField]: value === undefined && isValidElement(children) ? children : value,\r\n [disabledField]: disabled,\r\n }));\r\n }\r\n }\r\n });\r\n }\r\n}\r\nexport default function normalizeOptions({ field, textField, valueField, disabledField, multiple, children, }) {\r\n const selectionType = multiple\r\n ? DataSetSelection.multiple\r\n : multiple === undefined\r\n ? undefined\r\n : DataSetSelection.single;\r\n let data = [];\r\n let fetch;\r\n if (field) {\r\n const options = field.getOptions();\r\n if (options) {\r\n return options;\r\n }\r\n data = field.get('lookup');\r\n }\r\n const fields = [\r\n {\r\n name: textField,\r\n type: FieldType.reactNode,\r\n },\r\n {\r\n name: valueField,\r\n },\r\n {\r\n name: disabledField,\r\n type: FieldType.boolean,\r\n },\r\n ];\r\n if ((!data || !data.length) && children) {\r\n data = [];\r\n getOptionsFromChildren(children, data, fields, textField, valueField, disabledField);\r\n }\r\n const ds = new DataSet({\r\n data,\r\n fields,\r\n paging: false,\r\n selection: selectionType || DataSetSelection.single,\r\n autoLocateFirst: false,\r\n });\r\n if (fetch) {\r\n fetch.then(values => values && ds.loadData(values));\r\n }\r\n return ds;\r\n}\r\n","import 'choerodon-ui/lib/style/index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { computed, isArrayLike } from 'mobx';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport isNil from 'lodash/isNil';\r\nimport omit from 'lodash/omit';\r\nimport { FormField } from '../field/FormField';\r\nimport autobind from '../_util/autobind';\r\nimport { BooleanValue, FieldType } from '../data-set/enum';\r\nimport ObserverCheckBox from '../check-box/CheckBox';\r\nimport { processFieldValue } from '../data-set/utils';\r\nlet Output = class Output extends FormField {\r\n get editable() {\r\n return false;\r\n }\r\n handleChange() { }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['name']);\r\n }\r\n getValueKey(value) {\r\n if (isArrayLike(value)) {\r\n return value.map(this.getValueKey, this).join(',');\r\n }\r\n return this.processValue(value);\r\n }\r\n processValue(value) {\r\n if (!isNil(value)) {\r\n const text = isPlainObject(value) ? value : super.processValue(value);\r\n const { field, lang } = this;\r\n if (field) {\r\n return processFieldValue(text, field, lang, true);\r\n }\r\n return text;\r\n }\r\n return '';\r\n }\r\n defaultRenderer({ value, text, repeat, maxTagTextLength }) {\r\n const { field } = this;\r\n if (field && field.type === FieldType.boolean) {\r\n return <ObserverCheckBox disabled checked={value === field.get(BooleanValue.trueValue)}/>;\r\n }\r\n return super.defaultRenderer({ text, repeat, maxTagTextLength });\r\n }\r\n getRenderedValue() {\r\n const { multiple, range } = this;\r\n if (multiple) {\r\n return this.renderMultipleValues(true);\r\n }\r\n if (range) {\r\n return this.renderRangeValue(true);\r\n }\r\n return this.getTextNode();\r\n }\r\n renderWrapper() {\r\n return <span {...this.getMergedProps()}>{this.getRenderedValue()}</span>;\r\n }\r\n};\r\nOutput.displayName = 'Output';\r\nOutput.defaultProps = {\r\n ...FormField.defaultProps,\r\n suffixCls: 'output',\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], Output.prototype, \"editable\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Output.prototype, \"handleChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Output.prototype, \"defaultRenderer\", null);\r\nOutput = tslib_1.__decorate([\r\n observer\r\n], Output);\r\nexport default Output;\r\n","import Output from './Output';\r\nexport default Output;\r\n","// extracted by mini-css-extract-plugin","import './index.less';\r\n","import React, { PureComponent } from 'react';\r\nimport Button from '../button/Button';\r\nimport { ButtonColor, FuncType } from '../button/enum';\r\nexport default class Pager extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.handleClick = () => {\r\n const { page, onClick } = this.props;\r\n if (onClick) {\r\n onClick(page);\r\n }\r\n };\r\n }\r\n render() {\r\n const { active, renderer, page, type, disabled, className } = this.props;\r\n return (<Button className={className} funcType={active ? FuncType.raised : FuncType.flat} onClick={this.handleClick} color={active ? ButtonColor.primary : undefined} disabled={disabled}>\n {renderer(page, type)}\n </Button>);\r\n }\r\n}\r\nPager.displayName = 'Pager';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, computed } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport defaultTo from 'lodash/defaultTo';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nimport ObserverSelect from '../select/Select';\r\nimport { $l } from '../locale-context';\r\nimport Pager from './Pager';\r\nimport Icon from '../icon';\r\nimport { SizeChangerPosition } from './enum';\r\nfunction defaultItemRender(page, type) {\r\n switch (type) {\r\n case 'first':\r\n return <Icon type=\"first_page\"/>;\r\n case 'last':\r\n return <Icon type=\"last_page\"/>;\r\n case 'prev':\r\n return <Icon type=\"navigate_before\"/>;\r\n case 'next':\r\n return <Icon type=\"navigate_next\"/>;\r\n case 'jump-prev':\r\n case 'jump-next':\r\n return '•••';\r\n default:\r\n return page;\r\n }\r\n}\r\nlet Pagination = class Pagination extends DataSetComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.handlePageSizeChange = (value) => {\r\n this.handleChange(this.page, Number(value));\r\n };\r\n this.handlePagerClick = page => {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n dataSet.page(page);\r\n }\r\n this.handleChange(page, this.pageSize);\r\n };\r\n }\r\n get pageSize() {\r\n const { dataSet, pageSize } = this.observableProps;\r\n if (dataSet) {\r\n return dataSet.pageSize;\r\n }\r\n return pageSize;\r\n }\r\n get page() {\r\n const { dataSet, page } = this.observableProps;\r\n if (dataSet) {\r\n return dataSet.currentPage;\r\n }\r\n return page;\r\n }\r\n get total() {\r\n const { dataSet, total } = this.observableProps;\r\n if (dataSet) {\r\n return dataSet.totalCount;\r\n }\r\n return total;\r\n }\r\n get totalPage() {\r\n const { dataSet } = this.observableProps;\r\n const { total, pageSize } = this;\r\n if (dataSet) {\r\n return dataSet.totalPage;\r\n }\r\n if (total !== undefined && pageSize !== undefined) {\r\n return Math.ceil(total / pageSize);\r\n }\r\n return 1;\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n ...super.getObservableProps(props, context),\r\n page: defaultTo(props.page, 1),\r\n pageSize: defaultTo(props.pageSize, 10),\r\n total: props.total,\r\n };\r\n }\r\n handleChange(page, pageSize) {\r\n const { dataSet, onChange } = this.props;\r\n if (this.pageSize !== pageSize) {\r\n this.observableProps.pageSize = pageSize;\r\n this.observableProps.page = 1;\r\n if (dataSet) {\r\n dataSet.pageSize = pageSize;\r\n dataSet.currentPage = 1;\r\n dataSet.query();\r\n }\r\n }\r\n else {\r\n this.observableProps.page = page;\r\n }\r\n if (onChange) {\r\n onChange(page, pageSize);\r\n }\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), [\r\n 'total',\r\n 'page',\r\n 'pageSize',\r\n 'onChange',\r\n 'pageSizeOptions',\r\n 'itemRender',\r\n 'showSizeChanger',\r\n 'showSizeChangerLabel',\r\n 'showTotal',\r\n 'showPager',\r\n 'sizeChangerPosition',\r\n 'sizeChangerOptionRenderer',\r\n ]);\r\n }\r\n getOptions() {\r\n const { pageSize } = this;\r\n const { pageSizeOptions } = this.props;\r\n const options = pageSizeOptions || [];\r\n if (options.indexOf(String(pageSize)) === -1) {\r\n options.unshift(String(pageSize));\r\n }\r\n const { Option } = ObserverSelect;\r\n return options.map(option => (<Option key={option} value={option}>\n {option}\n </Option>));\r\n }\r\n getPager(page, type, active = false, disabled) {\r\n const { prefixCls, props: { itemRender = defaultItemRender }, } = this;\r\n return (<Pager key={type === 'page' ? page : type} page={page} active={active} type={type} onClick={this.handlePagerClick} renderer={itemRender} disabled={disabled} className={`${prefixCls}-pager`}/>);\r\n }\r\n renderPagers(page) {\r\n const { totalPage } = this;\r\n const bufferSize = 2;\r\n const pagerList = [];\r\n if (totalPage <= 1 + bufferSize) {\r\n for (let i = 1; i <= totalPage; i++) {\r\n pagerList.push(this.getPager(i, 'page', page === i));\r\n }\r\n }\r\n else {\r\n let left = Math.max(1, page - bufferSize);\r\n let right = Math.min(totalPage, page + bufferSize);\r\n if (page - 1 <= bufferSize) {\r\n right = 1 + bufferSize * 2;\r\n }\r\n if (totalPage - page <= bufferSize) {\r\n left = totalPage - bufferSize * 2;\r\n }\r\n for (let i = left; i <= right; i++) {\r\n pagerList.push(this.getPager(i, 'page', page === i));\r\n }\r\n if (page - 1 >= bufferSize * 2 && page !== 1 + 2) {\r\n pagerList.unshift(this.getPager(Math.max(page - 5, 1), 'jump-prev'));\r\n }\r\n if (totalPage - page >= bufferSize * 2 && page !== totalPage - 2) {\r\n pagerList.push(this.getPager(Math.min(page + 5, totalPage), 'jump-next'));\r\n }\r\n if (left !== 1) {\r\n pagerList.unshift(this.getPager(1, 'page', page === 1));\r\n }\r\n if (totalPage > 1 && right !== totalPage) {\r\n pagerList.push(this.getPager(totalPage, 'page', page === totalPage));\r\n }\r\n }\r\n return pagerList;\r\n }\r\n renderSizeChange(pageSize) {\r\n const { showSizeChangerLabel, showSizeChanger, sizeChangerOptionRenderer } = this.props;\r\n if (showSizeChanger) {\r\n const select = (<ObserverSelect key=\"size-select\" onChange={this.handlePageSizeChange} value={String(pageSize)} clearButton={false} renderer={sizeChangerOptionRenderer} optionRenderer={sizeChangerOptionRenderer}>\n {this.getOptions()}\n </ObserverSelect>);\r\n return showSizeChangerLabel\r\n ? [<span key=\"size-info\">{$l('Pagination', 'records_per_page')}</span>, select]\r\n : select;\r\n }\r\n }\r\n renderTotal(pageSize, page, total) {\r\n const { prefixCls } = this;\r\n return (<span key=\"total\" className={`${prefixCls}-page-info`}>\n {pageSize * (page - 1) + 1} - {Math.min(pageSize * page, total)} / {total}\n </span>);\r\n }\r\n render() {\r\n const { total, pageSize, page } = this;\r\n if (total === undefined || pageSize === undefined || page === undefined) {\r\n return null;\r\n }\r\n const { totalPage, props: { children, sizeChangerPosition, showTotal, showPager }, } = this;\r\n const sizeChanger = this.renderSizeChange(pageSize);\r\n return (<nav {...this.getMergedProps()}>\n {children}\n {sizeChangerPosition === SizeChangerPosition.left && sizeChanger}\n {showTotal && this.renderTotal(pageSize, page, total)}\n {this.getPager(1, 'first', false, page === 1)}\n {this.getPager(page - 1, 'prev', false, page === 1)}\n {showPager && this.renderPagers(page)}\n {this.getPager(page + 1, 'next', false, page === totalPage)}\n {this.getPager(totalPage, 'last', false, page === totalPage)}\n {sizeChangerPosition === SizeChangerPosition.right && sizeChanger}\n </nav>);\r\n }\r\n};\r\nPagination.displayName = 'Pagination';\r\nPagination.propTypes = {\r\n total: PropTypes.number,\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number,\r\n onChange: PropTypes.func,\r\n itemRender: PropTypes.func,\r\n sizeChangerPosition: PropTypes.oneOf([SizeChangerPosition.left, SizeChangerPosition.right]),\r\n sizeChangerOptionRenderer: PropTypes.func,\r\n showSizeChanger: PropTypes.bool,\r\n showSizeChangerLabel: PropTypes.bool,\r\n showTotal: PropTypes.bool,\r\n showPager: PropTypes.bool,\r\n ...DataSetComponent.propTypes,\r\n};\r\nPagination.defaultProps = {\r\n suffixCls: 'pagination',\r\n pageSizeOptions: ['10', '20', '50', '100'],\r\n sizeChangerPosition: SizeChangerPosition.left,\r\n sizeChangerOptionRenderer: ({ text }) => text,\r\n showSizeChanger: true,\r\n showSizeChangerLabel: true,\r\n showTotal: true,\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], Pagination.prototype, \"pageSize\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Pagination.prototype, \"page\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Pagination.prototype, \"total\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Pagination.prototype, \"totalPage\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Pagination.prototype, \"handleChange\", null);\r\nPagination = tslib_1.__decorate([\r\n observer\r\n], Pagination);\r\nexport default Pagination;\r\n","export var SizeChangerPosition;\r\n(function (SizeChangerPosition) {\r\n SizeChangerPosition[\"left\"] = \"left\";\r\n SizeChangerPosition[\"right\"] = \"right\";\r\n})(SizeChangerPosition || (SizeChangerPosition = {}));\r\n","import Pagination from './Pagination';\r\nexport default Pagination;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../button/style';\r\nimport '../../select/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport { observer } from 'mobx-react';\r\nimport { action, observable } from 'mobx';\r\nimport { TextField } from '../text-field/TextField';\r\nimport autobind from '../_util/autobind';\r\nimport Icon from '../icon';\r\n// let selectionStart;\r\n// let selectionEnd;\r\nlet Password = class Password extends TextField {\r\n // let selectionStart;\r\n // let selectionEnd;\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'password';\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['reveal']);\r\n }\r\n getOtherPrevNode() {\r\n return <input tabIndex={-1} className={`${this.prefixCls}-fix-autofill`}/>;\r\n }\r\n getInnerSpanButton() {\r\n const { reveal } = this.props;\r\n if (reveal) {\r\n return this.wrapperInnerSpanButton(<Icon type={this.reveal ? 'visibility' : 'visibility_off'} onClick={this.handleToggleReveal}/>);\r\n }\r\n }\r\n handleToggleReveal(e) {\r\n e.preventDefault();\r\n if (!this.isFocused) {\r\n this.focus();\r\n }\r\n const target = this.element;\r\n if (target) {\r\n if (target.type === 'password') {\r\n this.doReveal(target);\r\n }\r\n else {\r\n this.resetReveal(target);\r\n }\r\n }\r\n }\r\n doReveal(target) {\r\n this.selectionEnd = target.selectionEnd;\r\n this.selectionStart = target.selectionStart;\r\n target.type = 'text';\r\n this.type = target.type;\r\n this.reveal = true;\r\n }\r\n resetReveal(target) {\r\n const { selectionStart, selectionEnd } = this;\r\n target.type = 'password';\r\n this.type = target.type;\r\n if (typeof selectionStart !== 'undefined' && typeof selectionEnd !== 'undefined') {\r\n target.setSelectionRange(selectionStart, selectionEnd);\r\n this.selectionStart = undefined;\r\n this.selectionEnd = undefined;\r\n }\r\n this.reveal = false;\r\n }\r\n};\r\nPassword.displayName = 'Password';\r\nPassword.propTypes = {\r\n /**\r\n * 是否可揭示\r\n * @default true\r\n */\r\n reveal: PropTypes.bool,\r\n ...TextField.propTypes,\r\n};\r\nPassword.defaultProps = {\r\n ...TextField.defaultProps,\r\n suffixCls: 'password',\r\n reveal: true,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], Password.prototype, \"reveal\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], Password.prototype, \"handleToggleReveal\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Password.prototype, \"doReveal\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Password.prototype, \"resetReveal\", null);\r\nPassword = tslib_1.__decorate([\r\n observer\r\n], Password);\r\nexport default Password;\r\n","import Password from './Password';\r\nexport default Password;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport isNumber from 'lodash/isNumber';\r\nimport C7NProgress from 'choerodon-ui/lib/progress';\r\nimport { FormField } from '../field/FormField';\r\nlet Progress = class Progress extends FormField {\r\n getValue() {\r\n const value = super.getValue();\r\n if (isNumber(value)) {\r\n return value;\r\n }\r\n return this.props.percent;\r\n }\r\n render() {\r\n return (<C7NProgress {...omit(this.props, ['dataSet', 'showHelp', 'renderer'])} percent={this.getValue()}/>);\r\n }\r\n};\r\nProgress.displayName = 'Progress';\r\nProgress = tslib_1.__decorate([\r\n observer\r\n], Progress);\r\nexport default Progress;\r\n","import Progress from './Progress';\r\nexport default Progress;\r\n","import 'choerodon-ui/lib/progress/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, computed } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport noop from 'lodash/noop';\r\nimport { FormField } from '../field/FormField';\r\nimport autobind from '../_util/autobind';\r\nimport { ViewMode } from './enum';\r\nimport { $l } from '../locale-context';\r\nimport { LabelLayout } from '../form/enum';\r\nexport class Radio extends FormField {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'radio';\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('Radio', label ? 'value_missing' : 'value_missing_no_label', { label }),\r\n };\r\n }\r\n get checkedValue() {\r\n const { value = 'on' } = this.props;\r\n return value;\r\n }\r\n get isControlled() {\r\n return this.props.checked !== undefined;\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), ['value', 'readOnly', 'mode']);\r\n otherProps.type = this.type;\r\n // if (this.isReadOnly()) {\r\n // otherProps.disabled = true;\r\n // }\r\n otherProps.onMouseDown = this.handleMouseDown;\r\n otherProps.onClick = otherProps.onChange;\r\n otherProps.onChange = noop;\r\n return otherProps;\r\n }\r\n renderWrapper() {\r\n const checked = this.isChecked();\r\n return (<label key=\"wrapper\" {...this.getWrapperProps()}>\n <input {...this.getOtherProps()} checked={checked} value={this.checkedValue}/>\n {this.renderInner()}\n {this.getTextNode()}\n {this.renderFloatLabel()}\n </label>);\r\n }\r\n renderInner() {\r\n return <span className={`${this.prefixCls}-inner`}/>;\r\n }\r\n /**\r\n * 当使用label代替children时,不需要展示float label\r\n *\r\n * @readonly\r\n * @memberof Radio\r\n */\r\n get hasFloatLabel() {\r\n return this.getLabelChildren() ? false : super.hasFloatLabel;\r\n }\r\n /**\r\n * 没有children时,使用label替代children\r\n *\r\n * @returns {ReactNode} label\r\n * @memberof Radio\r\n */\r\n getLabelChildren() {\r\n const { labelLayout } = this;\r\n return (labelLayout &&\r\n ![LabelLayout.horizontal, LabelLayout.vertical, LabelLayout.none].includes(labelLayout) &&\r\n this.getLabel());\r\n }\r\n getChildrenText() {\r\n return this.props.children;\r\n }\r\n getTextNode() {\r\n const { prefixCls } = this;\r\n const text = this.getChildrenText() || this.getLabelChildren();\r\n if (text) {\r\n return <span className={`${prefixCls}-label`}>{text}</span>;\r\n }\r\n }\r\n getWrapperClassNames(...args) {\r\n const { prefixCls, props: { mode }, } = this;\r\n return super.getWrapperClassNames({\r\n [`${prefixCls}-button`]: mode === ViewMode.button,\r\n }, ...args);\r\n }\r\n isChecked() {\r\n const { checked } = this.props;\r\n const { name, dataSet, checkedValue } = this;\r\n if (dataSet && name) {\r\n return this.getDataSetValue() === checkedValue;\r\n }\r\n return checked;\r\n }\r\n handleMouseDown(e) {\r\n // e.stopPropagation();\r\n const { onMouseDown } = this.props;\r\n if (typeof onMouseDown === 'function') {\r\n onMouseDown(e);\r\n }\r\n }\r\n handleChange(e) {\r\n const { onClick = noop } = this.props;\r\n const { checked } = e.target;\r\n onClick(e);\r\n this.setChecked(checked);\r\n }\r\n setChecked(checked) {\r\n if (checked) {\r\n this.setValue(this.checkedValue);\r\n }\r\n }\r\n getOldValue() {\r\n return this.isChecked() ? this.checkedValue : undefined;\r\n }\r\n}\r\nRadio.displayName = 'Radio';\r\nRadio.propTypes = {\r\n /**\r\n * <受控>是否选中\r\n */\r\n checked: PropTypes.bool,\r\n /**\r\n * 初始是否选中\r\n */\r\n defaultChecked: PropTypes.bool,\r\n /**\r\n * 显示模式\r\n * 可选值: button | box\r\n * @default box\r\n */\r\n mode: PropTypes.oneOf([ViewMode.button, ViewMode.box]),\r\n ...FormField.propTypes,\r\n};\r\nRadio.defaultProps = {\r\n ...FormField.defaultProps,\r\n suffixCls: 'radio',\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], Radio.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Radio.prototype, \"handleMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Radio.prototype, \"handleChange\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Radio.prototype, \"setChecked\", null);\r\nlet ObserverRadio = class ObserverRadio extends Radio {\r\n};\r\nObserverRadio.defaultProps = Radio.defaultProps;\r\nObserverRadio = tslib_1.__decorate([\r\n observer\r\n], ObserverRadio);\r\nexport default ObserverRadio;\r\n","export var ViewMode;\r\n(function (ViewMode) {\r\n ViewMode[\"box\"] = \"box\";\r\n ViewMode[\"button\"] = \"button\";\r\n})(ViewMode || (ViewMode = {}));\r\n","import ObserverRadio from './Radio';\r\nexport default ObserverRadio;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../field/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport { NumberField } from '../number-field/NumberField';\r\nimport autobind from '../_util/autobind';\r\nimport EventManager from '../_util/EventManager';\r\nimport { FieldType } from '../data-set/enum';\r\nlet Range = class Range extends NumberField {\r\n constructor() {\r\n super(...arguments);\r\n this.dragEvent = new EventManager(typeof window !== 'undefined' && document);\r\n this.type = 'range';\r\n }\r\n getFieldType() {\r\n return FieldType.number;\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['vertical']);\r\n }\r\n getValue() {\r\n return super.getValue() || 0;\r\n }\r\n getWrapperClassNames() {\r\n const { props: { vertical }, prefixCls, } = this;\r\n return super.getWrapperClassNames({\r\n [`${prefixCls}-vertical`]: vertical,\r\n });\r\n }\r\n renderWrapper() {\r\n return (<label key=\"wrapper\" {...this.getWrapperProps()}>\n <input {...this.getOtherProps()} value={this.getValue()}/>\n {this.renderTrack()}\n {this.renderFloatLabel()}\n </label>);\r\n }\r\n renderTrack() {\r\n const percent = this.getPercent();\r\n const { props: { vertical }, prefixCls, } = this;\r\n return (<div className={`${prefixCls}-track`} onMouseDown={this.isReadOnly() || this.isDisabled() ? undefined : this.handleTrackClick}>\n <div className={`${prefixCls}-draghandle`} style={vertical ? { bottom: percent } : { left: percent }}/>\n <div className={`${prefixCls}-selection`} style={vertical ? { height: percent } : { width: percent }}/>\n </div>);\r\n }\r\n handleTrackClick(e) {\r\n this.track = e.currentTarget;\r\n this.handleDrag(e);\r\n this.handleDragStart();\r\n }\r\n handleDragStart() {\r\n this.dragEvent\r\n .addEventListener('mousemove', this.handleDrag)\r\n .addEventListener('mouseup', this.handleDragEnd);\r\n }\r\n handleDragEnd() {\r\n this.dragEvent\r\n .removeEventListener('mousemove', this.handleDrag)\r\n .removeEventListener('mouseup', this.handleDragEnd);\r\n }\r\n handleDrag(e) {\r\n const { track } = this;\r\n const { vertical } = this.props;\r\n const max = this.getProp('max');\r\n const min = this.getProp('min');\r\n const step = this.getProp('step');\r\n const { bottom, left } = track.getBoundingClientRect();\r\n const length = vertical ? bottom - e.clientY : e.clientX - left;\r\n const totalLength = vertical ? track.clientHeight : track.clientWidth;\r\n const oneStepLength = (1 / ((max - min) / step)) * totalLength;\r\n let value = min;\r\n if (length <= 0) {\r\n value = min;\r\n }\r\n else if (length >= totalLength) {\r\n value = max;\r\n }\r\n else {\r\n value = Math.round(length / oneStepLength) * step + min;\r\n }\r\n this.setValue(value);\r\n }\r\n getPercent() {\r\n const value = this.getValue();\r\n const max = this.getProp('max');\r\n const min = this.getProp('min');\r\n if (value <= min) {\r\n return 0;\r\n }\r\n if (value >= max) {\r\n return '100%';\r\n }\r\n return `${((value - min) / (max - min)) * 100}%`;\r\n }\r\n};\r\nRange.displayName = 'Range';\r\nRange.propTypes = {\r\n /**\r\n * 是否垂直方向\r\n * @default\r\n * false\r\n */\r\n vertical: PropTypes.bool,\r\n ...NumberField.propTypes,\r\n};\r\nRange.defaultProps = {\r\n ...NumberField.defaultProps,\r\n suffixCls: 'range',\r\n min: 0,\r\n step: 1,\r\n max: 100,\r\n vertical: false,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], Range.prototype, \"handleTrackClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Range.prototype, \"handleDragStart\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Range.prototype, \"handleDragEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Range.prototype, \"handleDrag\", null);\r\nRange = tslib_1.__decorate([\r\n observer\r\n], Range);\r\nexport default Range;\r\n","import Range from './Range';\r\nexport default Range;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import Ripple from 'choerodon-ui/lib/ripple';\r\nexport default Ripple;\r\n","import 'choerodon-ui/lib/ripple/style';\r\n","import { Row } from '../grid';\r\nexport default Row;\r\n","import '../../grid/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { computed, isArrayLike } from 'mobx';\r\nimport omit from 'lodash/omit';\r\nimport { Select } from '../select/Select';\r\nimport ObserverRadio from '../radio/Radio';\r\nimport ObserverCheckBox from '../check-box/CheckBox';\r\nimport autobind from '../_util/autobind';\r\nimport Option from '../option/Option';\r\nimport OptGroup from '../option/OptGroup';\r\nimport { $l } from '../locale-context';\r\nimport { LabelLayout } from '../form/enum';\r\nconst GroupIdGen = (function* (id) {\r\n while (true) {\r\n yield `__group-${id++}__`;\r\n }\r\n})(1);\r\nlet SelectBox = class SelectBox extends Select {\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('SelectBox', label ? 'value_missing' : 'value_missing_no_label', {\r\n label,\r\n }),\r\n };\r\n }\r\n get name() {\r\n return this.observableProps.name || GroupIdGen.next().value;\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), ['vertical']);\r\n }\r\n getClassName() {\r\n const { prefixCls, props: { vertical }, } = this;\r\n return super.getClassName({\r\n [`${prefixCls}-vertical`]: vertical,\r\n });\r\n }\r\n isEmpty() {\r\n return false;\r\n }\r\n renderWrapper() {\r\n const { options, textField, valueField } = this;\r\n const { autoFocus, mode, onOption } = this.props;\r\n const items = options.data.map((record, index) => {\r\n const optionProps = onOption({ dataSet: options, record });\r\n return this.renderItem({\r\n ...optionProps,\r\n key: index,\r\n dataSet: null,\r\n record: null,\r\n value: record.get(valueField),\r\n checked: this.isChecked(this.getValue(), record.get(valueField)),\r\n name: this.name,\r\n onChange: this.handleItemChange,\r\n children: record.get(textField),\r\n autoFocus: autoFocus && index === 0,\r\n readOnly: this.isReadOnly(),\r\n disabled: this.isDisabled() || (optionProps && optionProps.disabled),\r\n mode,\r\n noValidate: true,\r\n labelLayout: LabelLayout.none,\r\n });\r\n });\r\n const { className } = this.getOtherProps();\r\n const Element = this.context.formNode ? 'div' : 'form';\r\n return (<span key=\"wrapper\" {...this.getWrapperProps()}>\n <Element className={className}>{items}</Element>\n {this.renderFloatLabel()}\n </span>);\r\n }\r\n handleItemChange(value, oldValue) {\r\n if (this.multiple) {\r\n const values = this.getValues();\r\n if (!value) {\r\n values.splice(values.indexOf(oldValue), 1);\r\n }\r\n else {\r\n values.push(value);\r\n }\r\n this.setValue(values);\r\n }\r\n else {\r\n this.setValue(value);\r\n }\r\n }\r\n isChecked(value, checkedValue) {\r\n if (isArrayLike(value)) {\r\n return value.indexOf(checkedValue) !== -1;\r\n }\r\n return value === checkedValue;\r\n }\r\n renderItem(props) {\r\n if (this.multiple) {\r\n return <ObserverCheckBox {...props}/>;\r\n }\r\n return <ObserverRadio {...props}/>;\r\n }\r\n};\r\nSelectBox.displayName = 'SelectBox';\r\nSelectBox.propTypes = {\r\n /**\r\n * 是否垂直显示\r\n */\r\n vertical: PropTypes.bool,\r\n ...Select.propTypes,\r\n};\r\nSelectBox.defaultProps = {\r\n ...Select.defaultProps,\r\n suffixCls: 'select-box',\r\n vertical: false,\r\n};\r\nSelectBox.Option = Option;\r\nSelectBox.OptGroup = OptGroup;\r\ntslib_1.__decorate([\r\n computed\r\n], SelectBox.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], SelectBox.prototype, \"name\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], SelectBox.prototype, \"handleItemChange\", null);\r\nSelectBox = tslib_1.__decorate([\r\n observer\r\n], SelectBox);\r\nexport default SelectBox;\r\n","import SelectBox from './SelectBox';\r\nexport default SelectBox;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../radio/style';\r\nimport '../../check-box/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport debounce from 'lodash/debounce';\r\nimport isString from 'lodash/isString';\r\nimport isEqual from 'lodash/isEqual';\r\nimport isNil from 'lodash/isNil';\r\nimport noop from 'lodash/noop';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, isArrayLike, reaction, runInAction } from 'mobx';\r\nimport Menu, { Item, ItemGroup } from 'choerodon-ui/lib/rc-components/menu';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport TriggerField from '../trigger-field/TriggerField';\r\nimport autobind from '../_util/autobind';\r\nimport Option from '../option/Option';\r\nimport OptGroup from '../option/OptGroup';\r\nimport { DataSetStatus, FieldType } from '../data-set/enum';\r\nimport DataSet from '../data-set/DataSet';\r\nimport Spin from '../spin';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport normalizeOptions from '../option/normalizeOptions';\r\nimport { $l } from '../locale-context';\r\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport isSame from '../_util/isSame';\r\nimport isSameLike from '../_util/isSameLike';\r\nfunction updateActiveKey(menu, activeKey) {\r\n const store = menu.getStore();\r\n const menuId = menu.getEventKey();\r\n const state = store.getState();\r\n store.setState({\r\n activeKey: {\r\n ...state.activeKey,\r\n [menuId]: activeKey,\r\n },\r\n });\r\n}\r\nfunction defaultSearchMatcher({ record, text, textField }) {\r\n return record.get(textField).indexOf(text) !== -1;\r\n}\r\nconst disabledField = '__disabled';\r\nfunction defaultOnOption({ record }) {\r\n return {\r\n disabled: record.get(disabledField),\r\n };\r\n}\r\nexport function getItemKey(record, text, value) {\r\n return `item-${value || record.id}-${(isValidElement(text) ? text.key : text) || record.id}`;\r\n}\r\nfunction getSimpleValue(value, valueField) {\r\n if (isPlainObject(value)) {\r\n return ObjectChainValue.get(value, valueField);\r\n }\r\n return value;\r\n}\r\nexport class Select extends TriggerField {\r\n constructor() {\r\n super(...arguments);\r\n this.comboOptions = new DataSet();\r\n this.doSearch = debounce(value => this.searchRemote(value), 500);\r\n }\r\n get searchMatcher() {\r\n const { searchMatcher = defaultSearchMatcher } = this.observableProps;\r\n return searchMatcher;\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('Select', label ? 'value_missing' : 'value_missing_no_label', { label }),\r\n };\r\n }\r\n get textField() {\r\n return this.getProp('textField') || 'meaning';\r\n }\r\n get valueField() {\r\n return this.getProp('valueField') || 'value';\r\n }\r\n get currentComboOption() {\r\n return this.comboOptions.filter(record => !this.isSelected(record))[0];\r\n }\r\n get filteredOptions() {\r\n const { optionsWithCombo, text } = this;\r\n return this.filterData(optionsWithCombo, text);\r\n }\r\n get optionsWithCombo() {\r\n return [...this.comboOptions.data, ...this.cascadeOptions];\r\n }\r\n get cascadeOptions() {\r\n const { record, field, options, searchMatcher } = this;\r\n const { data } = options;\r\n if (field && !isString(searchMatcher)) {\r\n const cascadeMap = field.get('cascadeMap');\r\n if (cascadeMap) {\r\n if (record) {\r\n const cascades = Object.keys(cascadeMap);\r\n return data.filter(item => cascades.every(cascade => isSameLike(record.get(cascadeMap[cascade]), item.get(cascade))));\r\n }\r\n return [];\r\n }\r\n }\r\n return data;\r\n }\r\n get editable() {\r\n const { combo } = this.observableProps;\r\n return !this.isReadOnly() && (!!this.searchable || !!combo);\r\n }\r\n get searchable() {\r\n return !!this.props.searchable;\r\n }\r\n get multiple() {\r\n return !!this.getProp('multiple');\r\n }\r\n get menuMultiple() {\r\n return this.multiple;\r\n }\r\n get options() {\r\n const { field, textField, valueField, multiple, observableProps: { children, options }, } = this;\r\n return (options ||\r\n normalizeOptions({ field, textField, valueField, disabledField, multiple, children }));\r\n }\r\n get primitive() {\r\n const type = this.getProp('type');\r\n return this.observableProps.primitiveValue !== false && type !== FieldType.object;\r\n }\r\n saveMenu(node) {\r\n this.menu = node;\r\n }\r\n checkValue() {\r\n this.checkValueReaction = reaction(() => this.cascadeOptions, () => this.processSelectedData());\r\n }\r\n checkCombo() {\r\n this.checkComboReaction = reaction(() => this.getValue(), value => this.generateComboOption(value));\r\n }\r\n clearCheckValue() {\r\n if (this.checkValueReaction) {\r\n this.checkValueReaction();\r\n this.checkValueReaction = undefined;\r\n }\r\n }\r\n clearCheckCombo() {\r\n if (this.checkComboReaction) {\r\n this.checkComboReaction();\r\n this.checkComboReaction = undefined;\r\n }\r\n }\r\n clearReaction() {\r\n this.clearCheckValue();\r\n this.clearCheckCombo();\r\n }\r\n componentWillMount() {\r\n super.componentWillMount();\r\n const { checkValueOnOptionsChange, combo } = this.props;\r\n if (checkValueOnOptionsChange) {\r\n this.checkValue();\r\n }\r\n if (combo) {\r\n this.checkCombo();\r\n this.generateComboOption(this.getValue());\r\n }\r\n }\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this.doSearch.cancel();\r\n this.clearReaction();\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n super.componentWillReceiveProps(nextProps, nextContext);\r\n const { checkValueOnOptionsChange, combo } = this.props;\r\n if (checkValueOnOptionsChange && !nextProps.checkValueOnOptionsChange) {\r\n this.clearCheckValue();\r\n }\r\n if (!checkValueOnOptionsChange && nextProps.checkValueOnOptionsChange) {\r\n this.checkValue();\r\n }\r\n if (combo && !nextProps.combo) {\r\n this.removeComboOptions();\r\n this.clearCheckCombo();\r\n }\r\n if (!combo && nextProps.combo) {\r\n this.checkCombo();\r\n if ('value' in nextProps) {\r\n this.generateComboOption(nextProps.value);\r\n }\r\n }\r\n }\r\n componentDidUpdate() {\r\n this.forcePopupAlign();\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'searchable',\r\n 'searchMatcher',\r\n 'combo',\r\n 'multiple',\r\n 'value',\r\n 'name',\r\n 'options',\r\n 'optionsFilter',\r\n 'dropdownMatchSelectWidth',\r\n 'dropdownMenuStyle',\r\n 'checkValueOnOptionsChange',\r\n 'primitiveValue',\r\n 'optionRenderer',\r\n 'notFoundContent',\r\n 'onOption',\r\n ]);\r\n return otherProps;\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n ...super.getObservableProps(props, context),\r\n children: props.children,\r\n options: props.options,\r\n combo: props.combo,\r\n primitiveValue: props.primitiveValue,\r\n searchMatcher: props.searchMatcher,\r\n };\r\n }\r\n getMenuPrefixCls() {\r\n return `${this.prefixCls}-dropdown-menu`;\r\n }\r\n renderMultipleHolder() {\r\n const { name, multiple } = this;\r\n if (multiple) {\r\n return super.renderMultipleHolder();\r\n }\r\n return (<input key=\"value\" type=\"hidden\" value={this.toValueString(this.getValue()) || ''} name={name} onChange={noop}/>);\r\n }\r\n getNotFoundContent() {\r\n const { notFoundContent } = this.props;\r\n if (notFoundContent !== undefined) {\r\n return notFoundContent;\r\n }\r\n return getConfig('renderEmpty')('Select');\r\n }\r\n getMenu(menuProps = {}) {\r\n const { options, textField, valueField, props: { dropdownMenuStyle, optionRenderer, onOption }, } = this;\r\n if (!options) {\r\n return null;\r\n }\r\n const menuDisabled = this.isDisabled();\r\n const groups = options.getGroups();\r\n const optGroups = [];\r\n const selectedKeys = [];\r\n this.filteredOptions.forEach(record => {\r\n let previousGroup;\r\n groups.every(field => {\r\n const label = record.get(field);\r\n if (label !== undefined) {\r\n if (!previousGroup) {\r\n previousGroup = optGroups.find(item => item.props.title === label);\r\n if (!previousGroup) {\r\n previousGroup = (<ItemGroup key={`group-${label}`} title={label}>\n {[]}\n </ItemGroup>);\r\n optGroups.push(previousGroup);\r\n }\r\n }\r\n else {\r\n const { children } = previousGroup.props;\r\n previousGroup = children.find(item => item.props.title === label);\r\n if (!previousGroup) {\r\n previousGroup = (<ItemGroup key={`group-${label}`} title={label}>\n {[]}\n </ItemGroup>);\r\n children.push(previousGroup);\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n });\r\n const value = record.get(valueField);\r\n const text = record.get(textField);\r\n const optionProps = onOption({ dataSet: options, record });\r\n const optionDisabled = menuDisabled || (optionProps && optionProps.disabled);\r\n const key = getItemKey(record, text, value);\r\n if (!('selectedKeys' in menuProps) && this.isSelected(record)) {\r\n selectedKeys.push(key);\r\n }\r\n const itemContent = optionRenderer\r\n ? optionRenderer({ dataSet: this.options, record, text, value })\r\n : text;\r\n const option = (<Item {...optionProps} key={key} value={record} disabled={optionDisabled}>\n {itemContent}\n </Item>);\r\n if (previousGroup) {\r\n const { children } = previousGroup.props;\r\n children.push(option);\r\n }\r\n else {\r\n optGroups.push(option);\r\n }\r\n });\r\n if (!optGroups.length) {\r\n optGroups.push(<Item key=\"no_data\" disabled>\n {this.loading ? ' ' : this.getNotFoundContent()}\n </Item>);\r\n }\r\n return (<Menu ref={this.saveMenu} disabled={menuDisabled} defaultActiveFirst multiple={this.menuMultiple} selectedKeys={selectedKeys} prefixCls={this.getMenuPrefixCls()} onClick={this.handleMenuClick} style={dropdownMenuStyle} focusable={false} {...menuProps}>\n {optGroups}\n </Menu>);\r\n }\r\n getPopupProps() {\r\n const { options, textField, valueField } = this;\r\n return {\r\n dataSet: options,\r\n textField,\r\n valueField,\r\n };\r\n }\r\n get loading() {\r\n const { field, options } = this;\r\n return options.status === DataSetStatus.loading || (!!field && field.pending.length > 0);\r\n }\r\n getPopupContent() {\r\n const menu = (<Spin key=\"menu\" spinning={this.loading}>\n {this.getMenu()}\n </Spin>);\r\n if (this.multiple) {\r\n return [\r\n <div key=\"check-all\" className={`${this.prefixCls}-select-all-none`}>\n <span onClick={this.chooseAll}>{$l('Select', 'select_all')}</span>\n <span onClick={this.unChooseAll}>{$l('Select', 'unselect_all')}</span>\n </div>,\r\n menu,\r\n ];\r\n }\r\n return menu;\r\n }\r\n getPopupStyleFromAlign(target) {\r\n if (target && this.props.dropdownMatchSelectWidth) {\r\n return {\r\n minWidth: pxToRem(target.getBoundingClientRect().width),\r\n };\r\n }\r\n }\r\n getTriggerIconFont() {\r\n return 'baseline-arrow_drop_down';\r\n }\r\n handleKeyDown(e) {\r\n const { menu } = this;\r\n if (!this.isDisabled() && !this.isReadOnly() && menu) {\r\n if (this.popup && menu.onKeyDown(e)) {\r\n stopEvent(e);\r\n }\r\n else {\r\n switch (e.keyCode) {\r\n case KeyCode.RIGHT:\r\n case KeyCode.DOWN:\r\n this.handleKeyDownPrevNext(e, menu, 1);\r\n break;\r\n case KeyCode.LEFT:\r\n case KeyCode.UP:\r\n this.handleKeyDownPrevNext(e, menu, -1);\r\n break;\r\n case KeyCode.END:\r\n case KeyCode.PAGE_DOWN:\r\n this.handleKeyDownFirstLast(e, menu, 1);\r\n break;\r\n case KeyCode.HOME:\r\n case KeyCode.PAGE_UP:\r\n this.handleKeyDownFirstLast(e, menu, -1);\r\n break;\r\n // case KeyCode.ENTER:\r\n // this.handleKeyDownEnter(e);\r\n // break;\r\n case KeyCode.ESC:\r\n this.handleKeyDownEsc(e);\r\n break;\r\n case KeyCode.SPACE:\r\n this.handleKeyDownSpace(e);\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleKeyDownFirstLast(e, menu, direction) {\r\n stopEvent(e);\r\n const children = menu.getFlatInstanceArray();\r\n const activeItem = children[direction < 0 ? 0 : children.length - 1];\r\n if (activeItem) {\r\n if (!this.editable || this.popup) {\r\n updateActiveKey(menu, activeItem.props.eventKey);\r\n }\r\n if (!this.editable && !this.popup) {\r\n this.choose(activeItem.props.value);\r\n }\r\n }\r\n }\r\n handleKeyDownPrevNext(e, menu, direction) {\r\n if (!this.multiple && !this.editable) {\r\n const activeItem = menu.step(direction);\r\n if (activeItem) {\r\n updateActiveKey(menu, activeItem.props.eventKey);\r\n this.choose(activeItem.props.value);\r\n }\r\n e.preventDefault();\r\n }\r\n else if (e === KeyCode.DOWN) {\r\n this.expand();\r\n e.preventDefault();\r\n }\r\n }\r\n // handleKeyDownEnter(_e) {\r\n // }\r\n handleKeyDownEsc(e) {\r\n if (this.popup) {\r\n e.preventDefault();\r\n this.collapse();\r\n }\r\n }\r\n handleKeyDownSpace(e) {\r\n if (!this.editable) {\r\n e.preventDefault();\r\n if (!this.popup) {\r\n this.expand();\r\n }\r\n }\r\n }\r\n handleBlur(e) {\r\n if (!e.isDefaultPrevented()) {\r\n super.handleBlur(e);\r\n this.resetFilter();\r\n }\r\n }\r\n expand() {\r\n const { filteredOptions } = this;\r\n if (filteredOptions && filteredOptions.length) {\r\n super.expand();\r\n }\r\n }\r\n syncValueOnBlur(value) {\r\n if (value) {\r\n const { data } = this.comboOptions;\r\n this.options.ready().then(() => {\r\n const record = this.findByTextWithValue(value, data);\r\n if (record) {\r\n this.choose(record);\r\n }\r\n });\r\n }\r\n else if (!this.multiple) {\r\n this.setValue(this.emptyValue);\r\n }\r\n }\r\n findByTextWithValue(text, data) {\r\n const { textField } = this;\r\n const records = [...data, ...this.filteredOptions].filter(record => isSameLike(record.get(textField), text));\r\n if (records.length > 1) {\r\n const { valueField, primitive } = this;\r\n const value = this.getValue();\r\n if (value) {\r\n const found = records.find(record => isSameLike(record.get(valueField), primitive ? value : value[valueField]));\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return records[0];\r\n }\r\n findByText(text) {\r\n const { textField } = this;\r\n return this.optionsWithCombo.find(record => isSameLike(record.get(textField), text));\r\n }\r\n findByValue(value) {\r\n const { valueField } = this;\r\n const autoType = this.getProp('type') === FieldType.auto;\r\n value = getSimpleValue(value, valueField);\r\n return this.optionsWithCombo.find(record => autoType ? isSameLike(record.get(valueField), value) : isSame(record.get(valueField), value));\r\n }\r\n isSelected(record) {\r\n const { valueField } = this;\r\n const autoType = this.getProp('type') === FieldType.auto;\r\n return this.getValues().some(value => {\r\n const simpleValue = getSimpleValue(value, valueField);\r\n return autoType\r\n ? isSameLike(record.get(valueField), simpleValue)\r\n : isSame(record.get(valueField), simpleValue);\r\n });\r\n }\r\n generateComboOption(value, callback) {\r\n const { currentComboOption, textField, valueField } = this;\r\n if (value) {\r\n if (isArrayLike(value)) {\r\n value.forEach(v => !isNil(v) && this.generateComboOption(v));\r\n }\r\n else {\r\n const found = this.findByText(value) || this.findByValue(value);\r\n if (found) {\r\n const text = found.get(textField);\r\n if (text !== value && callback) {\r\n callback(text);\r\n }\r\n this.removeComboOption();\r\n }\r\n else if (currentComboOption) {\r\n currentComboOption.set(textField, value);\r\n currentComboOption.set(valueField, value);\r\n }\r\n else {\r\n this.createComboOption(value);\r\n }\r\n }\r\n }\r\n else {\r\n this.removeComboOption();\r\n }\r\n }\r\n createComboOption(value) {\r\n const { textField, valueField, menu } = this;\r\n const record = this.comboOptions.create({\r\n [textField]: value,\r\n [valueField]: value,\r\n }, 0);\r\n if (menu) {\r\n updateActiveKey(menu, getItemKey(record, value, value));\r\n }\r\n }\r\n removeComboOptions() {\r\n this.comboOptions.forEach(record => this.removeComboOption(record));\r\n }\r\n removeComboOption(record) {\r\n if (!record) {\r\n record = this.currentComboOption;\r\n }\r\n if (record && !this.isSelected(record)) {\r\n this.comboOptions.remove(record);\r\n }\r\n }\r\n handlePopupAnimateAppear() { }\r\n getValueKey(v) {\r\n if (isArrayLike(v)) {\r\n return v.map(this.getValueKey, this).join(',');\r\n }\r\n const autoType = this.getProp('type') === FieldType.auto;\r\n const value = getSimpleValue(v, this.valueField);\r\n return autoType && !isNil(value) ? value.toString() : value;\r\n }\r\n handlePopupAnimateEnd(_key, _exists) { }\r\n handleMenuClick({ item: { props: { value }, }, }) {\r\n if (this.multiple && this.isSelected(value)) {\r\n this.unChoose(value);\r\n }\r\n else {\r\n this.choose(value);\r\n }\r\n }\r\n handleOptionSelect(record) {\r\n this.prepareSetValue(this.processRecordToObject(record));\r\n }\r\n handleOptionUnSelect(record) {\r\n const { valueField } = this;\r\n const newValue = record.get(valueField);\r\n this.removeValue(newValue, -1);\r\n this.removeComboOption(record);\r\n }\r\n setText(text) {\r\n super.setText(text);\r\n if (this.searchable && isString(this.searchMatcher)) {\r\n this.doSearch(text);\r\n }\r\n }\r\n searchRemote(value) {\r\n const { field, searchMatcher } = this;\r\n if (field && isString(searchMatcher)) {\r\n field.setLovPara(searchMatcher, value === '' ? undefined : value);\r\n }\r\n }\r\n handleChange(e) {\r\n const { value } = e.target;\r\n this.setText(value);\r\n if (this.observableProps.combo) {\r\n this.generateComboOption(value, text => this.setText(text));\r\n }\r\n if (!this.popup) {\r\n this.expand();\r\n }\r\n }\r\n processRecordToObject(record) {\r\n const { primitive, valueField } = this;\r\n return primitive ? record.get(valueField) : record.toData();\r\n }\r\n processObjectValue(value, textField) {\r\n if (!isNil(value)) {\r\n if (isPlainObject(value)) {\r\n return ObjectChainValue.get(value, textField);\r\n }\r\n const found = this.findByValue(value);\r\n if (found) {\r\n return found.get(textField);\r\n }\r\n }\r\n }\r\n processLookupValue(value) {\r\n const { field, textField, primitive } = this;\r\n if (primitive && field && field.lookup) {\r\n return super.processValue(field.getText(value));\r\n }\r\n return super.processValue(this.processObjectValue(value, textField));\r\n }\r\n processValue(value) {\r\n const text = this.processLookupValue(value);\r\n if (isEmpty(text)) {\r\n if (isPlainObject(value)) {\r\n return ObjectChainValue.get(value, this.valueField) || '';\r\n }\r\n return super.processValue(value);\r\n }\r\n return text;\r\n }\r\n clear() {\r\n this.setText(undefined);\r\n super.clear();\r\n this.removeComboOptions();\r\n }\r\n resetFilter() {\r\n this.setText(undefined);\r\n this.removeComboOption();\r\n this.forcePopupAlign();\r\n }\r\n reset() {\r\n super.reset();\r\n this.resetFilter();\r\n }\r\n unChoose(record) {\r\n if (record) {\r\n this.handleOptionUnSelect(record);\r\n }\r\n }\r\n choose(record) {\r\n if (!this.multiple) {\r\n this.collapse();\r\n }\r\n if (record) {\r\n this.handleOptionSelect(record);\r\n }\r\n }\r\n chooseAll() {\r\n this.setValue(this.options.map(this.processRecordToObject, this));\r\n }\r\n unChooseAll() {\r\n this.clear();\r\n }\r\n async handlePopupHiddenChange(hidden) {\r\n if (!hidden) {\r\n this.forcePopupAlign();\r\n }\r\n super.handlePopupHiddenChange(hidden);\r\n }\r\n async processSelectedData() {\r\n this.comboOptions.removeAll();\r\n const values = this.getValues();\r\n const { field } = this;\r\n if (field) {\r\n await field.ready();\r\n }\r\n const { filteredOptions, observableProps: { combo }, } = this;\r\n runInAction(() => {\r\n const newValues = values.filter(value => {\r\n const record = this.findByValue(value);\r\n if (record) {\r\n return true;\r\n }\r\n if (combo) {\r\n this.createComboOption(value);\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (field &&\r\n field.get('cascadeMap') &&\r\n filteredOptions.length &&\r\n !isEqual(newValues, values)) {\r\n this.setValue(this.multiple ? newValues : newValues[0]);\r\n }\r\n });\r\n }\r\n filterData(data, text) {\r\n const { textField, valueField, searchable, searchMatcher, props: { optionsFilter }, } = this;\r\n data = optionsFilter ? data.filter(optionsFilter) : data;\r\n if (searchable && text && typeof searchMatcher === 'function') {\r\n return data.filter(record => searchMatcher({ record, text, textField, valueField }));\r\n }\r\n return data;\r\n }\r\n}\r\nSelect.displayName = 'Select';\r\nSelect.propTypes = {\r\n /**\r\n * 复合输入值\r\n * @default false\r\n */\r\n combo: PropTypes.bool,\r\n /**\r\n * 过滤器\r\n * @default false\r\n */\r\n searchable: PropTypes.bool,\r\n /**\r\n * 搜索匹配器。 当为字符串时,作为lookup的参数名来重新请求值列表。\r\n */\r\n searchMatcher: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\r\n /**\r\n * 是否为原始值\r\n * true - 选项中valueField对应的值\r\n * false - 选项值对象\r\n */\r\n primitiveValue: PropTypes.bool,\r\n /**\r\n * 渲染Option文本的钩子\r\n * @example\r\n * ```js\r\n * <Select\r\n * {...props}\r\n * optionRenderer={({ dataSet, record, text, value }) => text + '$'}\r\n * />\r\n * ```\r\n */\r\n optionRenderer: PropTypes.func,\r\n /**\r\n * 当下拉列表为空时显示的内容\r\n */\r\n notFoundContent: PropTypes.node,\r\n /**\r\n * 设置选项属性,如 disabled;\r\n */\r\n onOption: PropTypes.func,\r\n ...TriggerField.propTypes,\r\n};\r\nSelect.defaultProps = {\r\n ...TriggerField.defaultProps,\r\n suffixCls: 'select',\r\n combo: false,\r\n searchable: false,\r\n dropdownMatchSelectWidth: true,\r\n checkValueOnOptionsChange: true,\r\n onOption: defaultOnOption,\r\n};\r\nSelect.Option = Option;\r\nSelect.OptGroup = OptGroup;\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"searchMatcher\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"defaultValidationMessages\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"textField\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"valueField\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"optionsWithCombo\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"cascadeOptions\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"editable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"searchable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"multiple\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"menuMultiple\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"options\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"primitive\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"saveMenu\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"getMenu\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Select.prototype, \"loading\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"getPopupStyleFromAlign\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"handleBlur\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"handlePopupAnimateEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"handleMenuClick\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Select.prototype, \"setText\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Select.prototype, \"handleChange\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Select.prototype, \"clear\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"reset\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"chooseAll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"unChooseAll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Select.prototype, \"handlePopupHiddenChange\", null);\r\nlet ObserverSelect = class ObserverSelect extends Select {\r\n};\r\nObserverSelect.defaultProps = Select.defaultProps;\r\nObserverSelect.Option = Option;\r\nObserverSelect.OptGroup = OptGroup;\r\nObserverSelect = tslib_1.__decorate([\r\n observer\r\n], ObserverSelect);\r\nexport default ObserverSelect;\r\n","import ObserverSelect from './Select';\r\nexport default ObserverSelect;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\n// style dependencies\r\nimport '../../trigger-field/style';\r\nimport '../../spin/style';\r\nimport 'choerodon-ui/lib/menu/style';\r\nimport 'choerodon-ui/lib/checkbox/style';\r\nimport './index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport C7NSpin from 'choerodon-ui/lib/spin';\r\nimport { DataSetStatus } from '../data-set/enum';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nlet Spin = class Spin extends DataSetComponent {\r\n render() {\r\n const { dataSet, ...otherProps } = this.props;\r\n const props = {};\r\n if (dataSet) {\r\n props.spinning = dataSet.status !== DataSetStatus.ready;\r\n }\r\n return <C7NSpin {...otherProps} {...props}/>;\r\n }\r\n};\r\nSpin.displayName = 'Spin';\r\nSpin = tslib_1.__decorate([\r\n observer\r\n], Spin);\r\nexport default Spin;\r\n","import 'choerodon-ui/lib/spin/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action } from 'mobx';\r\nimport isString from 'lodash/isString';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport axios from '../axios';\r\nimport lovCodeStore from './LovCodeStore';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { generateResponseData } from '../data-set/utils';\r\nimport { getLovPara, processAxiosConfig } from './utils';\r\nimport cacheAdapterEnhancer from '../axios/cacheAdapterEnhancer';\r\nimport throttleAdapterEnhancer from '../axios/throttleAdapterEnhancer';\r\nconst adapter = throttleAdapterEnhancer(cacheAdapterEnhancer(axios.defaults.adapter));\r\nexport class LookupCodeStore {\r\n get axios() {\r\n return getConfig('axios') || axios;\r\n }\r\n async fetchLookupData(key, axiosConfig = {}) {\r\n let config = {};\r\n if (isString(key)) {\r\n config = {\r\n ...axiosConfig,\r\n url: key,\r\n method: axiosConfig.method || getConfig('lookupAxiosMethod') || 'post',\r\n };\r\n }\r\n else {\r\n config = key;\r\n }\r\n if (config.url) {\r\n let data;\r\n // SSR do not fetch the lookup\r\n if (typeof window !== 'undefined') {\r\n const result = await this.axios(config);\r\n if (result) {\r\n data = generateResponseData(result, getConfig('dataKey'));\r\n }\r\n }\r\n return data;\r\n }\r\n }\r\n getAxiosConfig(field) {\r\n const lookupAxiosConfig = field.get('lookupAxiosConfig') || getConfig('lookupAxiosConfig');\r\n const { record } = field;\r\n const params = getLovPara(field, record);\r\n const config = processAxiosConfig(lookupAxiosConfig, {\r\n dataSet: field.dataSet,\r\n record,\r\n params,\r\n lookupCode: field.get('lookupCode'),\r\n });\r\n return {\r\n adapter,\r\n ...config,\r\n url: config.url || this.getUrl(field),\r\n method: config.method || getConfig('lookupAxiosMethod') || 'post',\r\n params: config.params || params,\r\n };\r\n }\r\n getUrl(field) {\r\n const type = field.get('type');\r\n const lovCode = field.get('lovCode');\r\n const lookupUrl = field.get('lookupUrl');\r\n const lookupCode = field.get('lookupCode');\r\n if (typeof lookupUrl === 'function' && lookupCode) {\r\n return lookupUrl(lookupCode);\r\n }\r\n if (isString(lookupUrl)) {\r\n return lookupUrl;\r\n }\r\n if (lovCode && type !== FieldType.object) {\r\n return lovCodeStore.getQueryAxiosConfig(lovCode, field)({ dataSet: field.dataSet }).url;\r\n }\r\n }\r\n // @deprecate\r\n clearCache() { }\r\n}\r\ntslib_1.__decorate([\r\n action\r\n], LookupCodeStore.prototype, \"clearCache\", null);\r\nexport default new LookupCodeStore();\r\n","import * as tslib_1 from \"tslib\";\r\nimport isNil from 'lodash/isNil';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport DataSet from '../data-set/DataSet';\r\nimport axios from '../axios';\r\nimport { FieldType } from '../data-set/enum';\r\nimport { LovFieldType } from '../lov/enum';\r\nimport { processAxiosConfig } from './utils';\r\nfunction getFieldType(conditionFieldType) {\r\n switch (conditionFieldType) {\r\n case LovFieldType.INT:\r\n return FieldType.number;\r\n case LovFieldType.TEXT:\r\n return FieldType.string;\r\n case LovFieldType.DATE:\r\n return FieldType.date;\r\n case LovFieldType.DATETIME:\r\n return FieldType.dateTime;\r\n case LovFieldType.POPUP:\r\n return FieldType.object;\r\n default:\r\n return conditionFieldType || FieldType.string;\r\n }\r\n}\r\nfunction generateConditionField(fields, { conditionField, conditionFieldType, conditionFieldName, gridFieldName, display, conditionFieldLovCode, conditionFieldSelectCode, conditionFieldSelectUrl, conditionFieldSelectTf, conditionFieldSelectVf, conditionFieldRequired, }) {\r\n if (conditionField === 'Y') {\r\n const name = conditionFieldName || gridFieldName;\r\n const field = {\r\n name,\r\n type: getFieldType(conditionFieldType),\r\n label: display,\r\n lovCode: conditionFieldLovCode || undefined,\r\n lookupCode: conditionFieldSelectCode || undefined,\r\n lookupUrl: conditionFieldSelectUrl || undefined,\r\n textField: conditionFieldSelectTf || undefined,\r\n valueField: conditionFieldSelectVf || undefined,\r\n required: conditionFieldRequired || undefined,\r\n };\r\n fields.push(field);\r\n if (conditionFieldType === LovFieldType.POPUP) {\r\n const aliasName = `__lov__${name}`;\r\n field.name = aliasName;\r\n fields.push({\r\n name,\r\n bind: `${aliasName}.${conditionFieldSelectVf}`,\r\n });\r\n }\r\n }\r\n}\r\nfunction generateGridField(fields, { gridField, gridFieldName, display }, valueField) {\r\n if (gridField === 'Y') {\r\n fields.push({\r\n name: gridFieldName,\r\n label: display,\r\n unique: valueField === gridFieldName,\r\n });\r\n }\r\n}\r\nexport class LovCodeStore {\r\n constructor() {\r\n this.pendings = {};\r\n this.init();\r\n }\r\n get axios() {\r\n return getConfig('axios') || axios;\r\n }\r\n init() {\r\n this.lovCodes = observable.map();\r\n this.lovDS = observable.map();\r\n }\r\n getDefineAxiosConfig(code, field) {\r\n const lovDefineAxiosConfig = (field && field.get('lovDefineAxiosConfig')) || getConfig('lovDefineAxiosConfig');\r\n const config = processAxiosConfig(lovDefineAxiosConfig, code);\r\n return {\r\n ...config,\r\n url: config.url || this.getConfigUrl(code, field),\r\n method: config.method || 'post',\r\n };\r\n }\r\n getConfig(code) {\r\n return this.lovCodes.get(code);\r\n }\r\n async fetchConfig(code, field) {\r\n let config = this.getConfig(code);\r\n // SSR do not fetch the lookup\r\n if (!config && typeof window !== 'undefined') {\r\n const axiosConfig = this.getDefineAxiosConfig(code, field);\r\n if (axiosConfig) {\r\n try {\r\n const pending = this.pendings[code] || this.axios(axiosConfig);\r\n this.pendings[code] = pending;\r\n config = await pending;\r\n runInAction(() => {\r\n if (config) {\r\n this.lovCodes.set(code, config);\r\n }\r\n });\r\n }\r\n finally {\r\n delete this.pendings[code];\r\n }\r\n }\r\n }\r\n return config;\r\n }\r\n getLovDataSet(code, field) {\r\n let ds = this.lovDS.get(code);\r\n if (!ds) {\r\n const config = this.getConfig(code);\r\n if (config) {\r\n const { lovPageSize, lovItems, parentIdField, idField, valueField, treeFlag } = config;\r\n const dataSetProps = {\r\n transport: {\r\n read: this.getQueryAxiosConfig(code, field, config),\r\n },\r\n primaryKey: valueField,\r\n cacheSelection: true,\r\n };\r\n if (!isNil(lovPageSize) && !isNaN(Number(lovPageSize))) {\r\n dataSetProps.pageSize = Number(lovPageSize);\r\n }\r\n else {\r\n dataSetProps.paging = false;\r\n }\r\n if (treeFlag === 'Y' && parentIdField && idField) {\r\n dataSetProps.parentField = parentIdField;\r\n dataSetProps.idField = idField;\r\n }\r\n if (lovItems && lovItems.length) {\r\n const { querys, fields } = lovItems\r\n .sort(({ conditionFieldSequence }, { conditionFieldSequence: conditionFieldSequence2 }) => conditionFieldSequence - conditionFieldSequence2)\r\n .reduce((obj, configItem) => {\r\n generateConditionField(obj.querys, configItem);\r\n generateGridField(obj.fields, configItem, valueField);\r\n return obj;\r\n }, { querys: [], fields: [] });\r\n if (querys.length) {\r\n dataSetProps.queryFields = querys;\r\n }\r\n if (fields.length) {\r\n dataSetProps.fields = fields;\r\n }\r\n }\r\n runInAction(() => {\r\n this.lovDS.set(code, (ds = new DataSet(dataSetProps)));\r\n });\r\n }\r\n else {\r\n warning(false, `LOV: code<${code}> is not exists`);\r\n }\r\n }\r\n return ds;\r\n }\r\n getConfigUrl(code, field) {\r\n const lovDefineUrl = (field && field.get('lovDefineUrl')) || getConfig('lovDefineUrl');\r\n if (typeof lovDefineUrl === 'function') {\r\n return lovDefineUrl(code);\r\n }\r\n return lovDefineUrl;\r\n }\r\n getQueryAxiosConfig(code, field, config) {\r\n return (props) => {\r\n const lovQueryAxiosConfig = (field && field.get('lovQueryAxiosConfig')) || getConfig('lovQueryAxiosConfig');\r\n const axiosConfig = processAxiosConfig(lovQueryAxiosConfig, code, config, props);\r\n return {\r\n ...axiosConfig,\r\n url: axiosConfig.url || this.getQueryUrl(code, field, props),\r\n method: axiosConfig.method || 'post',\r\n };\r\n };\r\n }\r\n getQueryUrl(code, field, props) {\r\n const config = this.getConfig(code);\r\n if (config) {\r\n const { customUrl } = config;\r\n if (customUrl) {\r\n return customUrl;\r\n }\r\n }\r\n const lovQueryUrl = (field && field.get('lovQueryUrl')) || getConfig('lovQueryUrl');\r\n if (typeof lovQueryUrl === 'function') {\r\n return lovQueryUrl(code, config, props);\r\n }\r\n return lovQueryUrl;\r\n }\r\n clearCache(codes) {\r\n if (codes) {\r\n codes.forEach(code => {\r\n this.lovCodes.delete(code);\r\n this.lovDS.delete(code);\r\n });\r\n }\r\n else {\r\n this.lovCodes.clear();\r\n this.lovDS.clear();\r\n }\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], LovCodeStore.prototype, \"lovCodes\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], LovCodeStore.prototype, \"lovDS\", void 0);\r\ntslib_1.__decorate([\r\n action\r\n], LovCodeStore.prototype, \"init\", null);\r\ntslib_1.__decorate([\r\n action\r\n], LovCodeStore.prototype, \"clearCache\", null);\r\nexport default new LovCodeStore();\r\n","import lookupStore from './LookupCodeStore';\r\nimport lovStore from './LovCodeStore';\r\nconst stores = {\r\n LovCodeStore: lovStore,\r\n LookupCodeStore: lookupStore,\r\n};\r\nexport default stores;\r\n","// empty file prevent babel-plugin-import error\r\nimport 'choerodon-ui/lib/style/index.less';\r\n","import { toJS } from 'mobx';\r\nexport function getLovPara(field, record) {\r\n const lovPara = toJS(field.get('lovPara')) || {};\r\n const cascadeMap = field.get('cascadeMap');\r\n if (record && cascadeMap) {\r\n Object.keys(cascadeMap).forEach(cascade => (lovPara[cascade] = record.get(cascadeMap[cascade])));\r\n }\r\n return lovPara;\r\n}\r\nexport function processAxiosConfig(axiosConfig = {}, ...args) {\r\n if (typeof axiosConfig === 'function') {\r\n return axiosConfig(...args);\r\n }\r\n return axiosConfig;\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { CheckBox } from '../check-box/CheckBox';\r\nimport autobind from '../_util/autobind';\r\nlet Switch = class Switch extends CheckBox {\r\n handleKeyDown(e) {\r\n if (e.keyCode === KeyCode.LEFT) {\r\n this.setChecked(false);\r\n }\r\n else if (e.keyCode === KeyCode.RIGHT) {\r\n this.setChecked(true);\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n getTextNode() {\r\n const { prefixCls, props: { children, unCheckedChildren }, } = this;\r\n const text = this.isChecked() ? children : unCheckedChildren || children;\r\n return <span className={`${prefixCls}-label`}>{text}</span>;\r\n }\r\n renderInner() {\r\n return undefined;\r\n }\r\n};\r\nSwitch.displayName = 'Switch';\r\nSwitch.defaultProps = {\r\n ...CheckBox.defaultProps,\r\n suffixCls: 'switch',\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], Switch.prototype, \"handleKeyDown\", null);\r\nSwitch = tslib_1.__decorate([\r\n observer\r\n], Switch);\r\nexport default Switch;\r\n","import Switch from './Switch';\r\nexport default Switch;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'mobx';\r\nimport { ColumnAlign, ColumnLock } from './enum';\r\nimport { ShowHelp } from '../field/enum';\r\nexport const defaultMinWidth = 100;\r\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\r\nexport default class Column extends Component {\r\n}\r\nColumn.propTypes = {\r\n /**\r\n * 列对照的字段名\r\n */\r\n name: PropTypes.string,\r\n /**\r\n * 列宽\r\n * 不推荐给所有列设置宽度,而是给某一列不设置宽度达到自动宽度的效果\r\n */\r\n width: PropTypes.number,\r\n /**\r\n * 最小列宽\r\n */\r\n minWidth: PropTypes.number,\r\n /**\r\n * 列头\r\n */\r\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]),\r\n /**\r\n * 列脚\r\n */\r\n footer: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]),\r\n /**\r\n * 单元格渲染回调\r\n */\r\n renderer: PropTypes.func,\r\n /**\r\n * 编辑器\r\n */\r\n editor: PropTypes.oneOfType([PropTypes.element, PropTypes.func, PropTypes.bool]),\r\n /**\r\n * 是否锁定\r\n * 可选值: false | true | 'left' | 'right'\r\n * @default false\r\n */\r\n lock: PropTypes.oneOf([ColumnLock.left, ColumnLock.right, true, false]),\r\n /**\r\n * 文字对齐方式\r\n * 可选值: 'left' | 'center' | 'right'\r\n */\r\n align: PropTypes.oneOf([ColumnAlign.left, ColumnAlign.center, ColumnAlign.right]),\r\n /**\r\n * 是否可调整宽度\r\n * @default true\r\n */\r\n resizable: PropTypes.bool,\r\n /**\r\n * 是否可排序\r\n * @default false\r\n */\r\n sortable: PropTypes.bool,\r\n /**\r\n * 是否可隐藏,设为false时不会出现在列过滤选项中\r\n * @default true\r\n */\r\n hideable: PropTypes.bool,\r\n /**\r\n * 是否可排序\r\n * @default false\r\n */\r\n /**\r\n * 列头提示信息\r\n */\r\n help: PropTypes.string,\r\n /**\r\n * 显示提示信息的方式\r\n *\r\n */\r\n showHelp: PropTypes.oneOf([ShowHelp.tooltip, ShowHelp.newLine, ShowHelp.none]),\r\n hidden: PropTypes.bool,\r\n colSpan: PropTypes.number,\r\n rowSpan: PropTypes.number,\r\n children: PropTypes.array,\r\n};\r\nColumn.defaultProps = {\r\n hidden: false,\r\n lock: false,\r\n resizable: true,\r\n sortable: false,\r\n hideable: true,\r\n minWidth: defaultMinWidth,\r\n showHelp: ShowHelp.tooltip,\r\n};\r\nexport function minColumnWidth(col) {\r\n const hidden = get(col, 'hidden');\r\n if (hidden) {\r\n return 0;\r\n }\r\n const width = get(col, 'width');\r\n const min = get(col, 'minWidth');\r\n const minWidth = min === undefined ? defaultMinWidth : min;\r\n if (width === undefined) {\r\n return minWidth;\r\n }\r\n return Math.min(width, minWidth);\r\n}\r\nexport function columnWidth(col) {\r\n const hidden = get(col, 'hidden');\r\n if (hidden) {\r\n return 0;\r\n }\r\n const width = get(col, 'width');\r\n if (width === undefined) {\r\n const minWidth = get(col, 'minWidth');\r\n if (minWidth === undefined) {\r\n return defaultMinWidth;\r\n }\r\n return minWidth;\r\n }\r\n return width;\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport { computed } from 'mobx';\r\nimport ColumnGroups from './ColumnGroups';\r\nexport default class ColumnGroup {\r\n constructor(column, parent) {\r\n this.column = column;\r\n this.parent = parent;\r\n const { children } = column;\r\n if (children && children.length > 0) {\r\n this.children = new ColumnGroups(children);\r\n }\r\n }\r\n get rowSpan() {\r\n return this.parent.deep - this.deep + 1;\r\n }\r\n get colSpan() {\r\n return this.children ? this.children.wide : 1;\r\n }\r\n get deep() {\r\n return this.children ? this.children.deep + 1 : this.hidden ? 0 : 1;\r\n }\r\n get hidden() {\r\n return this.children ? this.children.hidden : !!this.column.hidden;\r\n }\r\n get lastLeaf() {\r\n return this.children ? this.children.lastLeaf : this.column;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroup.prototype, \"rowSpan\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroup.prototype, \"colSpan\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroup.prototype, \"deep\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroup.prototype, \"hidden\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroup.prototype, \"lastLeaf\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport { computed } from 'mobx';\r\nimport ColumnGroup from './ColumnGroup';\r\nexport default class ColumnGroups {\r\n constructor(columns) {\r\n this.columns = columns.map(col => new ColumnGroup(col, this));\r\n }\r\n get wide() {\r\n return this.columns.reduce((sum, { colSpan, hidden }) => (hidden ? sum : sum + colSpan), 0);\r\n }\r\n get deep() {\r\n return Math.max(...this.columns.map(({ deep }) => deep));\r\n }\r\n get hidden() {\r\n return this.columns.every(({ hidden }) => hidden);\r\n }\r\n get lastLeaf() {\r\n return this.columns[this.columns.length - 1].lastLeaf;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroups.prototype, \"wide\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroups.prototype, \"deep\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroups.prototype, \"hidden\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], ColumnGroups.prototype, \"lastLeaf\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport shallowequal from 'lodash/isEqual';\r\nimport Icon from '../icon';\r\nimport autobind from '../_util/autobind';\r\nexport default class ExpandIcon extends Component {\r\n shouldComponentUpdate(nextProps) {\r\n return !shallowequal(nextProps, this.props);\r\n }\r\n handleClick(e) {\r\n e.stopPropagation();\r\n const { onChange } = this.props;\r\n onChange(e);\r\n }\r\n render() {\r\n const { prefixCls, expanded, expandable } = this.props;\r\n const iconPrefixCls = `${prefixCls}-expand-icon`;\r\n const classString = classNames(iconPrefixCls, {\r\n [`${iconPrefixCls}-expanded`]: expanded,\r\n [`${iconPrefixCls}-spaced`]: !expandable,\r\n });\r\n return (<Icon type=\"baseline-arrow_right\" className={classString} onClick={expandable ? this.handleClick : undefined} tabIndex={expandable ? 0 : -1}/>);\r\n }\r\n}\r\nExpandIcon.propTypes = {\r\n expandable: PropTypes.bool,\r\n expanded: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], ExpandIcon.prototype, \"handleClick\", null);\r\n","import isFunction from 'lodash/isFunction';\r\nconst ExpandedRow = props => {\r\n const { isExpanded, children = null, columns, record, lock } = props;\r\n if (isFunction(children)) {\r\n const child = children(columns, record, isExpanded, lock);\r\n if (child) {\r\n return child;\r\n }\r\n }\r\n return children;\r\n};\r\nexport default ExpandedRow;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport raf from 'raf';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport isNumber from 'lodash/isNumber';\r\nimport noop from 'lodash/noop';\r\nimport classes from 'component-classes';\r\nimport { action } from 'mobx';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport { pxToRem, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\r\nimport Column, { defaultMinWidth } from './Column';\r\nimport TableStore from './TableStore';\r\nimport TableHeader from './TableHeader';\r\nimport autobind from '../_util/autobind';\r\nimport Pagination from '../pagination/Pagination';\r\nimport Spin from '../spin';\r\nimport DataSetComponent from '../data-set/DataSetComponent';\r\nimport TableContext from './TableContext';\r\nimport TableWrapper from './TableWrapper';\r\nimport TableTBody from './TableTBody';\r\nimport TableFooter from './TableFooter';\r\nimport { ColumnLock, ScrollPosition, SelectionMode, TableButtonType, TableEditMode, TableMode, TablePaginationPosition, TableQueryBarType, } from './enum';\r\nimport Switch from '../switch/Switch';\r\nimport Tooltip from '../tooltip/Tooltip';\r\nimport { $l } from '../locale-context';\r\nimport TableQueryBar from './query-bar';\r\nimport { findIndexedSibling, getHeight, getPaginationPosition } from './utils';\r\nimport TableBody from './TableBody';\r\nexport const buttonsEnumType = PropTypes.oneOf([\r\n TableButtonType.add,\r\n TableButtonType.save,\r\n TableButtonType.remove,\r\n TableButtonType.delete,\r\n TableButtonType.reset,\r\n TableButtonType.query,\r\n TableButtonType.export,\r\n TableButtonType.expandAll,\r\n TableButtonType.collapseAll,\r\n]);\r\nlet Table = class Table extends DataSetComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.tableStore = new TableStore(this);\r\n }\r\n get currentRow() {\r\n return this.element.querySelector(`.${this.prefixCls}-row-current`);\r\n }\r\n get firstRow() {\r\n return this.element.querySelector(`.${this.prefixCls}-row:first-child`);\r\n }\r\n get lastRow() {\r\n return this.element.querySelector(`.${this.prefixCls}-row:last-child`);\r\n }\r\n saveResizeRef(node) {\r\n this.resizeLine = node;\r\n }\r\n handleSwitchChange(value) {\r\n this.tableStore.showCachedSeletion = !!value;\r\n }\r\n handleResize(width) {\r\n const { element, tableStore } = this;\r\n if (!element.offsetParent) {\r\n tableStore.styledHidden = true;\r\n }\r\n else if (!tableStore.hidden) {\r\n this.syncSizeInFrame(width);\r\n }\r\n else {\r\n tableStore.styledHidden = false;\r\n }\r\n }\r\n handleDataSetLoad() {\r\n this.initDefaultExpandedRows();\r\n }\r\n handleDataSetCreate({ record, dataSet }) {\r\n const { tableStore } = this;\r\n if (tableStore.inlineEdit) {\r\n if (tableStore.currentEditRecord) {\r\n tableStore.currentEditRecord.reset();\r\n dataSet.remove(record);\r\n }\r\n else {\r\n tableStore.currentEditRecord = record;\r\n }\r\n }\r\n }\r\n handleKeyDown(e) {\r\n const { tableStore } = this;\r\n if (!tableStore.editing) {\r\n try {\r\n const { dataSet } = this.props;\r\n switch (e.keyCode) {\r\n case KeyCode.UP:\r\n this.handleKeyDownUp(e);\r\n break;\r\n case KeyCode.DOWN:\r\n this.handleKeyDownDown(e);\r\n break;\r\n case KeyCode.RIGHT:\r\n this.handleKeyDownRight(e);\r\n break;\r\n case KeyCode.LEFT:\r\n this.handleKeyDownLeft(e);\r\n break;\r\n case KeyCode.PAGE_UP:\r\n e.preventDefault();\r\n dataSet.prePage();\r\n break;\r\n case KeyCode.PAGE_DOWN:\r\n e.preventDefault();\r\n dataSet.nextPage();\r\n break;\r\n case KeyCode.HOME:\r\n this.handleKeyDownHome(e);\r\n break;\r\n case KeyCode.END:\r\n this.handleKeyDownEnd(e);\r\n break;\r\n default:\r\n }\r\n }\r\n catch (error) {\r\n warning(false, error.message);\r\n }\r\n }\r\n const { onKeyDown = noop } = this.props;\r\n onKeyDown(e);\r\n }\r\n focusRow(row) {\r\n if (row) {\r\n const { index } = row.dataset;\r\n if (index) {\r\n const { dataSet } = this.props;\r\n const record = dataSet.findRecordById(index);\r\n if (record) {\r\n dataSet.current = record;\r\n }\r\n }\r\n }\r\n }\r\n async handleKeyDownHome(e) {\r\n e.preventDefault();\r\n const { dataSet } = this.props;\r\n if (!this.tableStore.isTree) {\r\n await dataSet.first();\r\n }\r\n this.focusRow(this.firstRow);\r\n }\r\n async handleKeyDownEnd(e) {\r\n e.preventDefault();\r\n const { dataSet } = this.props;\r\n if (!this.tableStore.isTree) {\r\n await dataSet.last();\r\n }\r\n this.focusRow(this.lastRow);\r\n }\r\n async handleKeyDownUp(e) {\r\n e.preventDefault();\r\n const { currentRow } = this;\r\n if (currentRow) {\r\n const previousElementSibling = findIndexedSibling(currentRow, -1);\r\n if (previousElementSibling) {\r\n this.focusRow(previousElementSibling);\r\n }\r\n else {\r\n const { dataSet } = this.props;\r\n await dataSet.prePage();\r\n this.focusRow(this.lastRow);\r\n }\r\n }\r\n }\r\n async handleKeyDownDown(e) {\r\n e.preventDefault();\r\n const { currentRow } = this;\r\n if (currentRow) {\r\n const nextElementSibling = findIndexedSibling(currentRow, 1);\r\n if (nextElementSibling) {\r\n this.focusRow(nextElementSibling);\r\n }\r\n else {\r\n const { dataSet } = this.props;\r\n await dataSet.nextPage();\r\n this.focusRow(this.firstRow);\r\n }\r\n }\r\n }\r\n handleKeyDownRight(e) {\r\n const { tableStore, props: { expandedRowRenderer, dataSet }, } = this;\r\n if (tableStore.isTree || expandedRowRenderer) {\r\n const { current } = dataSet;\r\n if (current) {\r\n e.preventDefault();\r\n tableStore.setRowExpanded(current, true);\r\n }\r\n }\r\n }\r\n handleKeyDownLeft(e) {\r\n const { tableStore, props: { expandedRowRenderer, dataSet }, } = this;\r\n if (tableStore.isTree || expandedRowRenderer) {\r\n const { current } = dataSet;\r\n if (current) {\r\n e.preventDefault();\r\n tableStore.setRowExpanded(current, false);\r\n }\r\n }\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'columns',\r\n 'header',\r\n 'footer',\r\n 'border',\r\n 'style',\r\n 'selectionMode',\r\n 'onRow',\r\n 'rowRenderer',\r\n 'buttons',\r\n 'rowHeight',\r\n 'queryFields',\r\n 'queryFieldsLimit',\r\n 'queryBar',\r\n 'defaultRowExpanded',\r\n 'expandRowByClick',\r\n 'expandedRowRenderer',\r\n 'expandIconColumnIndex',\r\n 'indentSize',\r\n 'filter',\r\n 'mode',\r\n 'editMode',\r\n 'filterBarFieldName',\r\n 'filterBarPlaceholder',\r\n 'pagination',\r\n 'highLightRow',\r\n 'columnResizable',\r\n 'pristine',\r\n ]);\r\n otherProps.onKeyDown = this.handleKeyDown;\r\n const { rowHeight } = this.tableStore;\r\n if (rowHeight !== 'auto') {\r\n otherProps.style = { lineHeight: pxToRem(rowHeight) };\r\n }\r\n return otherProps;\r\n }\r\n getClassName() {\r\n const { prefixCls, tableStore: { border, rowHeight }, } = this;\r\n return super.getClassName(`${prefixCls}-scroll-position-left`, {\r\n [`${prefixCls}-bordered`]: border,\r\n [`${prefixCls}-row-height-fixed`]: isNumber(rowHeight),\r\n });\r\n }\r\n getWrapperProps(props = {}) {\r\n const { style } = this.props;\r\n const { tableStore } = this;\r\n const newStyle = omit(style, ['width', 'height']);\r\n if (style && style.width !== undefined && style.width !== 'auto') {\r\n newStyle.width = Math.max(style.width, tableStore.leftLeafColumnsWidth + tableStore.rightLeafColumnsWidth + defaultMinWidth);\r\n }\r\n return super.getWrapperProps({\r\n style: newStyle,\r\n ...props,\r\n });\r\n }\r\n componentWillMount() {\r\n super.componentWillMount();\r\n this.initDefaultExpandedRows();\r\n this.processDataSetListener(true);\r\n }\r\n componentDidMount() {\r\n this.syncSize();\r\n this.syncSizeInFrame();\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n super.componentWillReceiveProps(nextProps, nextContext);\r\n this.processDataSetListener(false);\r\n this.tableStore.setProps(nextProps);\r\n this.processDataSetListener(true);\r\n }\r\n componentWillUnmount() {\r\n this.processDataSetListener(false);\r\n }\r\n processDataSetListener(flag) {\r\n const { isTree, dataSet, inlineEdit } = this.tableStore;\r\n if (dataSet) {\r\n const handler = flag ? dataSet.addEventListener : dataSet.removeEventListener;\r\n if (isTree) {\r\n handler.call(dataSet, 'load', this.handleDataSetLoad);\r\n }\r\n if (inlineEdit) {\r\n handler.call(dataSet, 'create', this.handleDataSetCreate);\r\n }\r\n }\r\n }\r\n render() {\r\n const { prefixCls, tableStore, tableStore: { overflowX, isAnyColumnsLeftLock, isAnyColumnsRightLock }, props: { dataSet, buttons, queryFields, queryFieldsLimit, filterBarFieldName, filterBarPlaceholder, }, } = this;\r\n const content = this.getTable();\r\n const context = { tableStore };\r\n const pagination = this.getPagination(TablePaginationPosition.top);\r\n return (<ReactResizeObserver resizeProp=\"width\" onResize={this.handleResize}>\n <div {...this.getWrapperProps()}>\n <TableContext.Provider value={context}>\n {this.getHeader()}\n <TableQueryBar prefixCls={prefixCls} buttons={buttons} pagination={pagination} queryFields={queryFields} queryFieldsLimit={queryFieldsLimit} filterBarFieldName={filterBarFieldName} filterBarPlaceholder={filterBarPlaceholder}/>\n <Spin key=\"content\" dataSet={dataSet}>\n <div {...this.getOtherProps()}>\n <div className={`${prefixCls}-content`}>\n {content}\n {isAnyColumnsLeftLock && overflowX && this.getLeftFixedTable()}\n {isAnyColumnsRightLock && overflowX && this.getRightFixedTable()}\n <div ref={this.saveResizeRef} className={`${prefixCls}-split-line`}/>\n </div>\n {this.getFooter()}\n </div>\n </Spin>\n {this.getPagination(TablePaginationPosition.bottom)}\n </TableContext.Provider>\n </div>\n </ReactResizeObserver>);\r\n }\r\n handleBodyScroll(e) {\r\n if (this.scrollId !== undefined) {\r\n raf.cancel(this.scrollId);\r\n }\r\n const { currentTarget } = e;\r\n e.persist();\r\n this.scrollId = raf(() => {\r\n this.handleBodyScrollTop(e, currentTarget);\r\n this.handleBodyScrollLeft(e, currentTarget);\r\n });\r\n }\r\n handleBodyScrollTop(e, currentTarget) {\r\n const { target } = e;\r\n if (this.tableStore.height === undefined ||\r\n currentTarget !== target ||\r\n target === this.tableFootWrap) {\r\n return;\r\n }\r\n const fixedColumnsBodyLeft = this.fixedColumnsBodyLeft;\r\n const bodyTable = this.tableBodyWrap;\r\n const fixedColumnsBodyRight = this.fixedColumnsBodyRight;\r\n const { scrollTop } = target;\r\n if (scrollTop !== this.lastScrollTop) {\r\n if (fixedColumnsBodyLeft && target !== fixedColumnsBodyLeft) {\r\n fixedColumnsBodyLeft.scrollTop = scrollTop;\r\n }\r\n if (bodyTable && target !== bodyTable) {\r\n bodyTable.scrollTop = scrollTop;\r\n }\r\n if (fixedColumnsBodyRight && target !== fixedColumnsBodyRight) {\r\n fixedColumnsBodyRight.scrollTop = scrollTop;\r\n }\r\n }\r\n this.lastScrollTop = scrollTop;\r\n }\r\n handleBodyScrollLeft(e, currentTarget) {\r\n const { target } = e;\r\n const headTable = this.tableHeadWrap;\r\n const bodyTable = this.tableBodyWrap;\r\n const footTable = this.tableFootWrap;\r\n if (this.tableStore.overflowX === undefined ||\r\n currentTarget !== target ||\r\n target === this.fixedColumnsBodyRight ||\r\n target === this.fixedColumnsBodyLeft) {\r\n return;\r\n }\r\n const { scrollLeft } = target;\r\n if (scrollLeft !== this.lastScrollLeft) {\r\n if (headTable && target !== headTable) {\r\n headTable.scrollLeft = scrollLeft;\r\n }\r\n if (bodyTable && target !== bodyTable) {\r\n bodyTable.scrollLeft = scrollLeft;\r\n }\r\n if (footTable && target !== footTable) {\r\n footTable.scrollLeft = scrollLeft;\r\n }\r\n this.setScrollPositionClassName(target);\r\n }\r\n this.lastScrollLeft = scrollLeft;\r\n }\r\n setScrollPositionClassName(target) {\r\n if (this.tableStore.isAnyColumnsLock) {\r\n const node = target || this.tableBodyWrap;\r\n if (node) {\r\n const scrollToLeft = node.scrollLeft === 0;\r\n const table = node.querySelector('table');\r\n const scrollToRight = table && node.scrollLeft >= table.offsetWidth - node.offsetWidth;\r\n if (scrollToLeft && scrollToRight) {\r\n this.setScrollPosition(ScrollPosition.both);\r\n }\r\n else if (scrollToLeft) {\r\n this.setScrollPosition(ScrollPosition.left);\r\n }\r\n else if (scrollToRight) {\r\n this.setScrollPosition(ScrollPosition.right);\r\n }\r\n else {\r\n this.setScrollPosition(ScrollPosition.middle);\r\n }\r\n }\r\n }\r\n }\r\n setScrollPosition(position) {\r\n if (this.scrollPosition !== position) {\r\n this.scrollPosition = position;\r\n const { prefixCls } = this;\r\n const cls = classes(this.element).remove(new RegExp(`^${prefixCls}-scroll-position-.+$`));\r\n if (position === ScrollPosition.both) {\r\n cls.add(`${prefixCls}-scroll-position-left`).add(`${prefixCls}-scroll-position-right`);\r\n }\r\n else {\r\n cls.add(`${prefixCls}-scroll-position-${position}`);\r\n }\r\n }\r\n }\r\n renderTable(hasHeader, hasBody, hasFooter, lock) {\r\n const { prefixCls } = this;\r\n return (<TableWrapper prefixCls={prefixCls} key=\"tableWrapper\" lock={lock} hasBody={hasBody} hasHeader={hasHeader} hasFooter={hasFooter}>\n {hasHeader && this.getTableHeader(lock)}\n {hasBody && this.getTableBody(lock)}\n {hasFooter && this.getTableFooter(lock)}\n </TableWrapper>);\r\n }\r\n getHeader() {\r\n const { prefixCls, props: { header, dataSet }, } = this;\r\n if (header) {\r\n const data = dataSet ? dataSet.records : [];\r\n return (<div key=\"header\" className={`${prefixCls}-header`}>\n {typeof header === 'function' ? header(data) : header}\n </div>);\r\n }\r\n }\r\n getFooter() {\r\n const { prefixCls, props: { footer, dataSet }, } = this;\r\n if (footer) {\r\n const data = dataSet ? dataSet.records : [];\r\n return (<div key=\"footer\" className={`${prefixCls}-footer`}>\n {typeof footer === 'function' ? footer(data) : footer}\n </div>);\r\n }\r\n }\r\n getPagination(position) {\r\n const { prefixCls, props: { dataSet }, tableStore: { pagination }, } = this;\r\n if (pagination !== false && dataSet && dataSet.paging) {\r\n const paginationPosition = getPaginationPosition(pagination);\r\n if (paginationPosition === TablePaginationPosition.both || paginationPosition === position) {\r\n const paginationProps = omit(pagination, 'position');\r\n return (<Pagination key={`pagination-${position}`} {...paginationProps} className={classNames(`${prefixCls}-pagination`, paginationProps.className)} dataSet={dataSet}>\n {this.getCacheSelectionSwitch()}\n </Pagination>);\r\n }\r\n }\r\n }\r\n getCacheSelectionSwitch() {\r\n const { props: { dataSet }, prefixCls, } = this;\r\n if (dataSet && dataSet.cacheSelectionKeys && dataSet.cachedSelected.length) {\r\n const { showCachedSeletion } = this.tableStore;\r\n return (<Tooltip title={$l('Table', showCachedSeletion ? 'hide_cached_seletion' : 'show_cached_seletion')}>\n <Switch className={`${prefixCls}-switch`} checked={showCachedSeletion} onChange={this.handleSwitchChange}/>\n </Tooltip>);\r\n }\r\n }\r\n getTable(lock) {\r\n const { prefixCls } = this;\r\n const { overflowX, height, hasFooter: footer } = this.tableStore;\r\n let tableHead;\r\n let tableBody;\r\n let tableFooter;\r\n if (height !== undefined || overflowX) {\r\n const { lockColumnsBodyRowsHeight, rowHeight } = this.tableStore;\r\n let bodyHeight = height;\r\n let tableHeadRef;\r\n let tableBodyRef;\r\n let tableFootRef;\r\n if (!lock) {\r\n tableHeadRef = node => (this.tableHeadWrap = node);\r\n tableFootRef = node => (this.tableFootWrap = node);\r\n tableBodyRef = node => (this.tableBodyWrap = node);\r\n }\r\n else if (lock === 'right') {\r\n tableBodyRef = node => (this.fixedColumnsBodyRight = node);\r\n }\r\n else {\r\n tableBodyRef = node => (this.fixedColumnsBodyLeft = node);\r\n }\r\n if (bodyHeight !== undefined) {\r\n bodyHeight = Math.max(bodyHeight, isNumber(rowHeight) ? rowHeight : lockColumnsBodyRowsHeight[0] || 0);\r\n if (lock && !footer) {\r\n bodyHeight -= measureScrollbar();\r\n }\r\n }\r\n tableHead = (<div key=\"tableHead\" ref={tableHeadRef} className={`${prefixCls}-head`}>\n {this.renderTable(true, false, false, lock)}\n </div>);\r\n tableBody = (<TableBody key=\"tableBody\" getRef={tableBodyRef} prefixCls={prefixCls} lock={lock} height={bodyHeight} onScroll={this.handleBodyScroll}>\n {this.renderTable(false, true, false, lock)}\n </TableBody>);\r\n if (footer) {\r\n tableFooter = (<div key=\"tableFooter\" ref={tableFootRef} className={`${prefixCls}-foot`} onScroll={this.handleBodyScroll}>\n {this.renderTable(false, false, true, lock)}\n </div>);\r\n }\r\n }\r\n else {\r\n tableBody = this.renderTable(true, true, footer, lock);\r\n }\r\n return [tableHead, tableBody, tableFooter];\r\n }\r\n getLeftFixedTable() {\r\n const { overflowX, height } = this.tableStore;\r\n if (!overflowX && height === undefined) {\r\n return;\r\n }\r\n const { prefixCls } = this;\r\n const table = this.getTable(ColumnLock.left);\r\n return <div className={`${prefixCls}-fixed-left`}>{table}</div>;\r\n }\r\n getRightFixedTable() {\r\n const { overflowX, height } = this.tableStore;\r\n if (!overflowX && height === undefined) {\r\n return;\r\n }\r\n const { prefixCls } = this;\r\n const table = this.getTable(ColumnLock.right);\r\n return <div className={`${prefixCls}-fixed-right`}>{table}</div>;\r\n }\r\n getTableBody(lock) {\r\n const { prefixCls, props: { indentSize }, } = this;\r\n return <TableTBody key=\"tbody\" prefixCls={prefixCls} lock={lock} indentSize={indentSize}/>;\r\n }\r\n getTableHeader(lock) {\r\n const { prefixCls, props: { dataSet }, } = this;\r\n return <TableHeader key=\"thead\" prefixCls={prefixCls} lock={lock} dataSet={dataSet}/>;\r\n }\r\n getTableFooter(lock) {\r\n const { prefixCls, props: { dataSet }, } = this;\r\n return <TableFooter key=\"tfoot\" prefixCls={prefixCls} lock={lock} dataSet={dataSet}/>;\r\n }\r\n getStyleHeight() {\r\n const { style } = this.props;\r\n if (style) {\r\n return toPx(style.height);\r\n }\r\n }\r\n syncSizeInFrame(width = this.getWidth()) {\r\n if (this.nextFrameActionId !== undefined) {\r\n raf.cancel(this.nextFrameActionId);\r\n }\r\n this.nextFrameActionId = raf(this.syncSize.bind(this, width));\r\n }\r\n syncSize(width = this.getWidth()) {\r\n const { element, tableStore } = this;\r\n if (element) {\r\n tableStore.width = Math.floor(width);\r\n const { prefixCls } = this;\r\n let height = this.getStyleHeight();\r\n if (element && isNumber(height)) {\r\n const tableTitle = element.querySelector(`.${prefixCls}-title`);\r\n const tableHeader = element.querySelector(`.${prefixCls}-thead`);\r\n const tableFooter = element.querySelector(`.${prefixCls}-footer`);\r\n const tableFootWrap = element.querySelector(`.${prefixCls}-foot`);\r\n if (tableTitle) {\r\n height -= getHeight(tableTitle);\r\n }\r\n if (tableHeader) {\r\n height -= getHeight(tableHeader);\r\n }\r\n if (tableFooter) {\r\n height -= getHeight(tableFooter);\r\n }\r\n if (tableFootWrap) {\r\n height -= getHeight(tableFootWrap);\r\n }\r\n this.tableStore.height = height;\r\n }\r\n }\r\n this.setScrollPositionClassName();\r\n }\r\n initDefaultExpandedRows() {\r\n const { tableStore, props: { dataSet, defaultRowExpanded }, } = this;\r\n if (tableStore.isTree && defaultRowExpanded && !dataSet.props.expandField) {\r\n tableStore.expandedRows = dataSet.reduce((array, record) => {\r\n if (record.children) {\r\n array.push(record.key);\r\n }\r\n return array;\r\n }, []);\r\n }\r\n }\r\n getWidth() {\r\n const { wrapper } = this;\r\n if (wrapper) {\r\n return Math.floor(wrapper.getBoundingClientRect().width);\r\n }\r\n return 0;\r\n }\r\n};\r\nTable.displayName = 'Table';\r\nTable.Column = Column;\r\nTable.propTypes = {\r\n columns: PropTypes.array,\r\n /**\r\n * 表头\r\n */\r\n header: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\r\n /**\r\n * 表脚\r\n */\r\n footer: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\r\n /**\r\n * 是否显示边框\r\n * @default true\r\n */\r\n border: PropTypes.bool,\r\n /**\r\n * 功能按钮\r\n * 可选值:`add` `delete` `remove` `save` `query` `expandAll` `collapseAll` 或 自定义按钮\r\n */\r\n buttons: PropTypes.arrayOf(PropTypes.oneOfType([\r\n buttonsEnumType,\r\n PropTypes.arrayOf(PropTypes.oneOfType([buttonsEnumType, PropTypes.object])),\r\n PropTypes.node,\r\n ])),\r\n /**\r\n * 自定义查询字段组件\r\n * 默认会根据queryDataSet中定义的field类型自动匹配组件, 匹配类型如下\r\n * lovCode => Lov\r\n * lookupCode => Select\r\n * type:number => NumberField\r\n * type:date => DatePicker\r\n * type:dateTime => DatePicker[mode=dateTime]\r\n * type:week => DatePicker[mode=week]\r\n * default => TextField\r\n */\r\n queryFields: PropTypes.object,\r\n /**\r\n * 头部显示的查询字段的数量,超出限制的查询字段放入弹出窗口\r\n * @default 1\r\n */\r\n queryFieldsLimit: PropTypes.number,\r\n /**\r\n * 显示查询条\r\n * @default true\r\n */\r\n queryBar: PropTypes.oneOfType([\r\n PropTypes.oneOf([\r\n TableQueryBarType.advancedBar,\r\n TableQueryBarType.normal,\r\n TableQueryBarType.bar,\r\n TableQueryBarType.none,\r\n ]),\r\n PropTypes.func,\r\n ]),\r\n /**\r\n * 行高\r\n * @default 30\r\n */\r\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\r\n defaultRowExpanded: PropTypes.bool,\r\n expandRowByClick: PropTypes.bool,\r\n indentSize: PropTypes.number,\r\n filter: PropTypes.func,\r\n mode: PropTypes.oneOf([TableMode.list, TableMode.tree]),\r\n editMode: PropTypes.oneOf([TableEditMode.inline, TableEditMode.cell]),\r\n filterBarFieldName: PropTypes.string,\r\n filterBarPlaceholder: PropTypes.string,\r\n highLightRow: PropTypes.bool,\r\n ...DataSetComponent.propTypes,\r\n};\r\nTable.defaultProps = {\r\n suffixCls: 'table',\r\n tabIndex: 0,\r\n selectionMode: SelectionMode.rowbox,\r\n queryFields: {},\r\n defaultRowExpanded: false,\r\n expandRowByClick: false,\r\n indentSize: 15,\r\n filterBarFieldName: 'params',\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"saveResizeRef\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Table.prototype, \"handleSwitchChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"handleResize\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"handleDataSetLoad\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"handleDataSetCreate\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Table.prototype, \"handleBodyScroll\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Table.prototype, \"syncSize\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Table.prototype, \"initDefaultExpandedRows\", null);\r\nTable = tslib_1.__decorate([\r\n observer\r\n], Table);\r\nexport default Table;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport autobind from '../_util/autobind';\r\nimport { ColumnLock } from './enum';\r\nimport TableContext from './TableContext';\r\nlet TableBody = class TableBody extends Component {\r\n saveRef(node) {\r\n const { getRef } = this.props;\r\n if (getRef) {\r\n getRef(node);\r\n }\r\n }\r\n render() {\r\n const { children, lock, prefixCls, height, onScroll } = this.props;\r\n const { tableStore: { leftLeafColumnsWidth, hasFooter }, } = this.context;\r\n const fixedLeft = lock === true || lock === ColumnLock.left;\r\n const scrollbar = measureScrollbar();\r\n const hasFooterAndNotLock = !lock && hasFooter && scrollbar;\r\n const tableBody = (<div ref={this.saveRef} className={`${prefixCls}-body`} style={{\r\n height: pxToRem(hasFooterAndNotLock && height !== undefined ? height + scrollbar : height),\r\n marginBottom: hasFooterAndNotLock ? pxToRem(-scrollbar) : undefined,\r\n width: fixedLeft ? pxToRem(leftLeafColumnsWidth + (scrollbar || 20)) : undefined,\r\n }} onScroll={onScroll}>\n {children}\n </div>);\r\n if (fixedLeft) {\r\n return (<div style={{ width: pxToRem(leftLeafColumnsWidth), overflow: 'hidden' }}>{tableBody}</div>);\r\n }\r\n return tableBody;\r\n }\r\n};\r\nTableBody.displayName = 'TableBody';\r\nTableBody.contextType = TableContext;\r\ntslib_1.__decorate([\r\n autobind\r\n], TableBody.prototype, \"saveRef\", null);\r\nTableBody = tslib_1.__decorate([\r\n observer\r\n], TableBody);\r\nexport default TableBody;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component, isValidElement, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, isArrayLike, observable } from 'mobx';\r\nimport classNames from 'classnames';\r\nimport raf from 'raf';\r\nimport omit from 'lodash/omit';\r\nimport isString from 'lodash/isString';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\r\nimport Record from '../data-set/Record';\r\nimport TableContext from './TableContext';\r\nimport { findCell, findFirstFocusableElement, getAlignByField, getColumnKey, getEditorByColumnAndRecord, isDisabledRow, isRadio, } from './utils';\r\nimport { ColumnAlign, TableColumnTooltip, TableCommandType } from './enum';\r\nimport ObserverCheckBox from '../check-box/CheckBox';\r\nimport Output from '../output/Output';\r\nimport { ShowHelp } from '../field/enum';\r\nimport Button from '../button/Button';\r\nimport { ButtonColor, FuncType } from '../button/enum';\r\nimport { $l } from '../locale-context';\r\nimport Tooltip from '../tooltip/Tooltip';\r\nimport { DataSetEvents, RecordStatus } from '../data-set/enum';\r\nimport { LabelLayout } from '../form/enum';\r\nimport autobind from '../_util/autobind';\r\nlet inTab = false;\r\nlet TableCell = class TableCell extends Component {\r\n get cellEditor() {\r\n const { column, record } = this.props;\r\n return getEditorByColumnAndRecord(column, record);\r\n }\r\n get cellEditorInCell() {\r\n return isRadio(this.cellEditor);\r\n }\r\n get hasEditor() {\r\n const { tableStore: { pristine }, } = this.context;\r\n return !pristine && this.cellEditor && !this.cellEditorInCell;\r\n }\r\n saveOutput(node) {\r\n this.disconnect();\r\n if (node) {\r\n this.element = node.element;\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.addEventListener(DataSetEvents.update, this.handleOutputChange);\r\n this.handleResize();\r\n }\r\n else {\r\n this.element = null;\r\n }\r\n }\r\n disconnect() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.removeEventListener(DataSetEvents.update, this.handleOutputChange);\r\n }\r\n handleResize() {\r\n const { element } = this;\r\n const { tableStore } = this.context;\r\n if (element && !tableStore.hidden) {\r\n if (this.nextFrameActionId !== undefined) {\r\n raf.cancel(this.nextFrameActionId);\r\n }\r\n this.nextFrameActionId = raf(this.syncSize);\r\n }\r\n }\r\n handleOutputChange({ record, name }) {\r\n const { record: thisRecord, column: { name: thisName }, } = this.props;\r\n if (thisRecord && thisName) {\r\n const field = thisRecord.getField(thisName);\r\n const bind = field ? field.get('bind') : undefined;\r\n if (record === thisRecord &&\r\n (thisName === name || (isString(bind) && bind.startsWith(`${name}.`)))) {\r\n this.handleResize();\r\n }\r\n }\r\n }\r\n syncSize() {\r\n this.overflow = this.computeOverFlow();\r\n }\r\n computeOverFlow() {\r\n const { element } = this;\r\n if (element && element.textContent) {\r\n const { column: { tooltip }, } = this.props;\r\n if (tooltip === TableColumnTooltip.always) {\r\n return true;\r\n }\r\n if (tooltip === TableColumnTooltip.overflow) {\r\n const { width } = element.getBoundingClientRect();\r\n if (width !== 0) {\r\n element.style.position = 'absolute';\r\n const { width: measureWidth } = element.getBoundingClientRect();\r\n element.style.position = '';\r\n return measureWidth > width;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n handleEditorKeyDown(e) {\r\n switch (e.keyCode) {\r\n case KeyCode.TAB: {\r\n const { prefixCls, column } = this.props;\r\n const { tableStore } = this.context;\r\n const cell = findCell(tableStore, prefixCls, getColumnKey(column));\r\n if (cell) {\r\n if (cell.contains(document.activeElement)) {\r\n inTab = true;\r\n }\r\n else {\r\n const node = findFirstFocusableElement(cell);\r\n if (node) {\r\n inTab = true;\r\n node.focus();\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n handleFocus(e) {\r\n const { tableStore } = this.context;\r\n const { currentEditorName, dataSet, inlineEdit } = tableStore;\r\n const { prefixCls, record, column, column: { lock }, } = this.props;\r\n if (!currentEditorName && !isDisabledRow(record) && (!inlineEdit || record.editing)) {\r\n dataSet.current = record;\r\n this.showEditor(e.currentTarget, lock);\r\n if (!this.cellEditor || isRadio(this.cellEditor)) {\r\n const cell = findCell(tableStore, prefixCls, getColumnKey(column), lock);\r\n if (cell && !cell.contains(document.activeElement)) {\r\n const node = findFirstFocusableElement(cell);\r\n if (node && !inTab) {\r\n node.focus();\r\n }\r\n }\r\n }\r\n }\r\n inTab = false;\r\n }\r\n handleCommandEdit() {\r\n const { record } = this.props;\r\n const { tableStore } = this.context;\r\n if (tableStore.inlineEdit) {\r\n tableStore.currentEditRecord = record;\r\n }\r\n }\r\n handleCommandDelete() {\r\n const { record } = this.props;\r\n const { tableStore } = this.context;\r\n const { dataSet } = tableStore;\r\n dataSet.delete(record);\r\n }\r\n async handleCommandSave() {\r\n const { tableStore } = this.context;\r\n const { dataSet } = tableStore;\r\n if ((await dataSet.submit()) !== false) {\r\n tableStore.currentEditRecord = undefined;\r\n }\r\n }\r\n handleCommandCancel() {\r\n const { record } = this.props;\r\n const { tableStore } = this.context;\r\n if (record.status === RecordStatus.add) {\r\n const { dataSet } = tableStore;\r\n dataSet.remove(record);\r\n }\r\n else {\r\n record.reset();\r\n tableStore.currentEditRecord = undefined;\r\n }\r\n }\r\n getButtonProps(type, record) {\r\n const disabled = isDisabledRow(record);\r\n switch (type) {\r\n case TableCommandType.edit:\r\n return {\r\n icon: 'mode_edit',\r\n onClick: this.handleCommandEdit,\r\n disabled,\r\n title: $l('Table', 'edit_button'),\r\n };\r\n case TableCommandType.delete:\r\n return {\r\n icon: 'delete',\r\n onClick: this.handleCommandDelete,\r\n disabled,\r\n title: $l('Table', 'delete_button'),\r\n };\r\n default:\r\n }\r\n }\r\n renderCommand() {\r\n const { record } = this.props;\r\n const command = this.getCommand();\r\n if (record.editing) {\r\n return [\r\n <Tooltip key=\"save\" title={$l('Table', 'save_button')}>\n <Button color={ButtonColor.primary} funcType={FuncType.flat} icon=\"finished\" onClick={this.handleCommandSave}/>\n </Tooltip>,\r\n <Tooltip key=\"cancel\" title={$l('Table', 'cancel_button')}>\n <Button color={ButtonColor.primary} funcType={FuncType.flat} icon=\"cancle_a\" onClick={this.handleCommandCancel}/>\n </Tooltip>,\r\n ];\r\n }\r\n if (command) {\r\n const children = [];\r\n command.forEach(button => {\r\n let props = {};\r\n if (isArrayLike(button)) {\r\n props = button[1];\r\n button = button[0];\r\n }\r\n if (isString(button) && button in TableCommandType) {\r\n const defaultButtonProps = this.getButtonProps(button, record);\r\n if (defaultButtonProps) {\r\n const { title, ...otherProps } = defaultButtonProps;\r\n children.push(<Tooltip key={button} title={title}>\n <Button color={ButtonColor.primary} funcType={FuncType.flat} {...otherProps} {...props}/>\n </Tooltip>);\r\n }\r\n }\r\n else if (isValidElement(button)) {\r\n children.push(button);\r\n }\r\n });\r\n return children;\r\n }\r\n }\r\n renderEditor() {\r\n const { cellEditor } = this;\r\n if (isValidElement(cellEditor)) {\r\n const { tableStore: { dataSet, pristine, inlineEdit }, } = this.context;\r\n const { column: { name }, record, } = this.props;\r\n const { checkField } = dataSet.props;\r\n const newEditorProps = {\r\n ...cellEditor.props,\r\n record,\r\n name,\r\n pristine,\r\n disabled: isDisabledRow(record) || (inlineEdit && !record.editing),\r\n indeterminate: checkField && checkField === name && record.isIndeterminate,\r\n labelLayout: LabelLayout.none,\r\n };\r\n return cloneElement(cellEditor, newEditorProps);\r\n }\r\n }\r\n getCheckBox() {\r\n const { record } = this.props;\r\n const { tableStore: { dataSet }, } = this.context;\r\n const { checkField } = dataSet.props;\r\n if (checkField) {\r\n return (<ObserverCheckBox name={checkField} record={record} disabled={isDisabledRow(record)} indeterminate={record.isIndeterminate}/>);\r\n }\r\n }\r\n getCommand() {\r\n const { column: { command }, record, } = this.props;\r\n const { tableStore: { dataSet }, } = this.context;\r\n if (typeof command === 'function') {\r\n return command({ dataSet, record });\r\n }\r\n return command;\r\n }\r\n getCellRenderer(command) {\r\n const { column } = this.props;\r\n const { renderer } = column;\r\n if (command) {\r\n return this.renderCommand;\r\n }\r\n if (this.cellEditorInCell) {\r\n return this.renderEditor;\r\n }\r\n return renderer;\r\n }\r\n getInnerNode(prefixCls, command) {\r\n const { context: { tableStore: { rowHeight, expandIconAsCell, hasCheckFieldColumn, pristine }, }, props: { children }, } = this;\r\n if (expandIconAsCell && children) {\r\n return children;\r\n }\r\n const { column, record, indentSize } = this.props;\r\n const { name, tooltip } = column;\r\n const { hasEditor } = this;\r\n const innerProps = {\r\n className: `${prefixCls}-inner`,\r\n tabIndex: hasEditor && !isDisabledRow(record) ? 0 : -1,\r\n onFocus: this.handleFocus,\r\n pristine,\r\n };\r\n if (!hasEditor) {\r\n innerProps.onKeyDown = this.handleEditorKeyDown;\r\n }\r\n if (rowHeight !== 'auto') {\r\n innerProps.style = {\r\n height: pxToRem(rowHeight),\r\n };\r\n if (tooltip && tooltip !== TableColumnTooltip.none) {\r\n innerProps.ref = this.saveOutput;\r\n }\r\n }\r\n const indentText = children && (<span style={{ paddingLeft: pxToRem(indentSize * record.level) }}/>);\r\n const checkBox = children && !hasCheckFieldColumn && this.getCheckBox();\r\n const prefix = (indentText || children || checkBox) && (<span key=\"prefix\" className={`${prefixCls}-prefix`} style={innerProps.style}>\n {indentText}\n {children}\n {checkBox}\n </span>);\r\n const output = (<Output key=\"output\" {...innerProps} record={record} renderer={this.getCellRenderer(command)} name={name} disabled={isDisabledRow(record)} showHelp={ShowHelp.none}/>);\r\n const text = this.overflow ? (<Tooltip key=\"tooltip\" title={cloneElement(output, { ref: null, className: null })}>\n {output}\n </Tooltip>) : (output);\r\n return [prefix, text];\r\n }\r\n componentWillUnmount() {\r\n this.disconnect();\r\n }\r\n render() {\r\n const { column, prefixCls, record } = this.props;\r\n const { tableStore: { inlineEdit, pristine }, } = this.context;\r\n const { className, style, align, name, onCell, tooltip } = column;\r\n const command = this.getCommand();\r\n const field = name ? record.getField(name) : undefined;\r\n const cellPrefix = `${prefixCls}-cell`;\r\n const cellExternalProps = typeof onCell === 'function'\r\n ? onCell({\r\n dataSet: record.dataSet,\r\n record,\r\n column,\r\n })\r\n : {};\r\n const cellStyle = {\r\n textAlign: align || (command ? ColumnAlign.center : getAlignByField(field)),\r\n ...style,\r\n ...cellExternalProps.style,\r\n };\r\n const classString = classNames(cellPrefix, {\r\n [`${cellPrefix}-dirty`]: field && !pristine && field.dirty,\r\n [`${cellPrefix}-required`]: field && !inlineEdit && field.required,\r\n [`${cellPrefix}-editable`]: !inlineEdit && this.hasEditor,\r\n }, className, cellExternalProps.className);\r\n const td = (<td {...cellExternalProps} className={classString} style={omit(cellStyle, ['width', 'height'])} data-index={getColumnKey(column)}>\n {this.getInnerNode(cellPrefix, command)}\n </td>);\r\n return tooltip === TableColumnTooltip.overflow ? (<ReactResizeObserver onResize={this.handleResize} resizeProp=\"width\">\n {td}\n </ReactResizeObserver>) : (td);\r\n }\r\n showEditor(cell, lock) {\r\n const { column: { name }, } = this.props;\r\n const { tableStore } = this.context;\r\n const { cellEditor } = this;\r\n if (name && cellEditor && !isRadio(cellEditor)) {\r\n if (!lock) {\r\n const { node, overflowX } = tableStore;\r\n if (overflowX) {\r\n const tableBodyWrap = cell.offsetParent;\r\n if (tableBodyWrap) {\r\n const { leftLeafColumnsWidth, rightLeafColumnsWidth } = tableStore;\r\n const { offsetLeft, offsetWidth } = cell;\r\n const { scrollLeft } = tableBodyWrap;\r\n const { width } = tableBodyWrap.getBoundingClientRect();\r\n const leftSide = offsetLeft - leftLeafColumnsWidth;\r\n const rightSide = offsetLeft + offsetWidth - width + rightLeafColumnsWidth + measureScrollbar();\r\n let sl = scrollLeft;\r\n if (sl < rightSide) {\r\n sl = rightSide;\r\n }\r\n if (sl > leftSide) {\r\n sl = leftSide;\r\n }\r\n if (sl !== scrollLeft) {\r\n tableBodyWrap.scrollLeft = sl;\r\n node.handleBodyScrollLeft({\r\n target: tableBodyWrap,\r\n currentTarget: tableBodyWrap,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n tableStore.showEditor(name);\r\n }\r\n }\r\n};\r\nTableCell.displayName = 'TableCell';\r\nTableCell.propTypes = {\r\n prefixCls: PropTypes.string,\r\n column: PropTypes.object.isRequired,\r\n record: PropTypes.instanceOf(Record).isRequired,\r\n indentSize: PropTypes.number.isRequired,\r\n};\r\nTableCell.contextType = TableContext;\r\ntslib_1.__decorate([\r\n observable\r\n], TableCell.prototype, \"overflow\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], TableCell.prototype, \"cellEditor\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableCell.prototype, \"cellEditorInCell\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableCell.prototype, \"hasEditor\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], TableCell.prototype, \"saveOutput\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleResize\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleOutputChange\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], TableCell.prototype, \"syncSize\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleEditorKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleFocus\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleCommandEdit\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleCommandDelete\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleCommandSave\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"handleCommandCancel\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"renderCommand\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCell.prototype, \"renderEditor\", null);\r\nTableCell = tslib_1.__decorate([\r\n observer\r\n], TableCell);\r\nexport default TableCell;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classes from 'component-classes';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableContext from './TableContext';\r\nimport autobind from '../_util/autobind';\r\nexport default class TableCol extends PureComponent {\r\n render() {\r\n const { width, minWidth } = this.props;\r\n return (<col style={{ width: pxToRem(width), minWidth: pxToRem(minWidth) }} onTransitionEnd={this.handleTransitionEnd}/>);\r\n }\r\n componentDidMount() {\r\n const { prefixCls } = this.props;\r\n const { tableStore: { node: { element }, }, } = this.context;\r\n if (element && classes(element).has(`${prefixCls}-resizing`)) {\r\n this.fireResizeEnd();\r\n }\r\n }\r\n componentDidUpdate(prevProps) {\r\n const { width } = prevProps;\r\n if (!width || isNaN(width)) {\r\n this.fireResizeEnd();\r\n }\r\n }\r\n handleTransitionEnd() {\r\n this.fireResizeEnd();\r\n }\r\n fireResizeEnd() {\r\n const { onResizeEnd } = this.props;\r\n onResizeEnd();\r\n }\r\n}\r\nTableCol.displayName = 'TableCol';\r\nTableCol.contextType = TableContext;\r\nTableCol.propTypes = {\r\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n onResizeEnd: PropTypes.func.isRequired,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], TableCol.prototype, \"handleTransitionEnd\", null);\r\n","import React from 'react';\r\nexport default React.createContext({});\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { runInAction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport noop from 'lodash/noop';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableContext from './TableContext';\r\nimport { findCell, getColumnKey, getEditorByColumnAndRecord, isRadio } from './utils';\r\nimport { stopEvent } from '../_util/EventManager';\r\nimport { ShowHelp } from '../field/enum';\r\nimport autobind from '../_util/autobind';\r\nlet TableEditor = class TableEditor extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.editing = false;\r\n }\r\n saveRef(node) {\r\n this.editor = node;\r\n }\r\n handleEditorKeyEnterDown(e) {\r\n if (!e.isDefaultPrevented()) {\r\n this.showNextEditor(e.shiftKey);\r\n }\r\n }\r\n handleEditorKeyDown(e) {\r\n if (e.keyCode !== KeyCode.ESC || !e.isDefaultPrevented()) {\r\n const { tableStore } = this.context;\r\n switch (e.keyCode) {\r\n case KeyCode.ESC:\r\n case KeyCode.TAB: {\r\n const { prefixCls, column } = this.props;\r\n const cell = findCell(tableStore, prefixCls, getColumnKey(column));\r\n if (cell) {\r\n cell.focus();\r\n }\r\n this.hideEditor();\r\n break;\r\n }\r\n case KeyCode.PAGE_UP:\r\n case KeyCode.PAGE_DOWN:\r\n stopEvent(e);\r\n break;\r\n default:\r\n }\r\n }\r\n const { editorProps } = this;\r\n if (editorProps) {\r\n const { onKeyDown = noop } = editorProps;\r\n onKeyDown(e);\r\n }\r\n }\r\n handleEditorFocus() {\r\n const { currentEditorName, context: { tableStore }, } = this;\r\n if (!tableStore.currentEditorName && currentEditorName) {\r\n runInAction(() => {\r\n tableStore.currentEditorName = currentEditorName;\r\n });\r\n }\r\n }\r\n handleEditorBlur(e) {\r\n this.hideEditor();\r\n const { editorProps } = this;\r\n if (editorProps) {\r\n const { onBlur = noop } = editorProps;\r\n onBlur(e);\r\n }\r\n }\r\n hideEditor() {\r\n if (this.editing) {\r\n const { tableStore } = this.context;\r\n tableStore.hideEditor();\r\n }\r\n }\r\n showNextEditor(reserve) {\r\n if (this.editor) {\r\n this.editor.blur();\r\n }\r\n const { tableStore } = this.context;\r\n const { column } = this.props;\r\n tableStore.showNextEditor(column.name, reserve);\r\n }\r\n renderEditor() {\r\n const { column } = this.props;\r\n const { tableStore: { dataSet, currentEditRecord, rowHeight, pristine }, } = this.context;\r\n const record = currentEditRecord || dataSet.current;\r\n const cellEditor = getEditorByColumnAndRecord(column, record);\r\n if (!pristine && isValidElement(cellEditor) && !isRadio(cellEditor)) {\r\n this.editorProps = cellEditor.props;\r\n const { style = {}, ...otherProps } = this.editorProps;\r\n if (rowHeight !== 'auto') {\r\n style.height = pxToRem(rowHeight);\r\n }\r\n const newEditorProps = {\r\n ...otherProps,\r\n style,\r\n ref: this.saveRef,\r\n record,\r\n name: column.name,\r\n onKeyDown: this.handleEditorKeyDown,\r\n onEnterDown: this.handleEditorKeyEnterDown,\r\n onBlur: this.handleEditorBlur,\r\n tabIndex: -1,\r\n showHelp: ShowHelp.none,\r\n };\r\n return cloneElement(cellEditor, newEditorProps);\r\n }\r\n }\r\n render() {\r\n const editor = this.renderEditor();\r\n if (editor) {\r\n const { prefixCls, column, column: { lock, name }, } = this.props;\r\n const props = {\r\n className: `${prefixCls}-editor`,\r\n };\r\n const editorProps = {};\r\n const { tableStore } = this.context;\r\n if (tableStore.currentEditorName === name || tableStore.currentEditRecord) {\r\n this.currentEditorName = name;\r\n const cell = findCell(tableStore, prefixCls, getColumnKey(column), lock);\r\n if (cell) {\r\n this.editing = true;\r\n const { offsetLeft, offsetTop, offsetWidth, offsetHeight } = cell;\r\n props.style = {\r\n left: pxToRem(offsetLeft),\r\n top: pxToRem(offsetTop),\r\n };\r\n editorProps.style = {\r\n ...editor.props.style,\r\n width: pxToRem(offsetWidth),\r\n height: pxToRem(offsetHeight),\r\n };\r\n }\r\n }\r\n else if (this.editing) {\r\n this.editing = false;\r\n editorProps.onFocus = this.handleEditorFocus;\r\n }\r\n return <div {...props}>{cloneElement(editor, editorProps)}</div>;\r\n }\r\n return null;\r\n }\r\n componentDidUpdate() {\r\n const { column: { name }, } = this.props;\r\n const { tableStore } = this.context;\r\n if (this.editor && this.editing && tableStore.currentEditorName === name) {\r\n this.editor.focus();\r\n }\r\n }\r\n};\r\nTableEditor.displayName = 'TableEditor';\r\nTableEditor.propTypes = {\r\n column: PropTypes.object.isRequired,\r\n};\r\nTableEditor.contextType = TableContext;\r\ntslib_1.__decorate([\r\n autobind\r\n], TableEditor.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableEditor.prototype, \"handleEditorKeyEnterDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableEditor.prototype, \"handleEditorKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableEditor.prototype, \"handleEditorFocus\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableEditor.prototype, \"handleEditorBlur\", null);\r\nTableEditor = tslib_1.__decorate([\r\n observer\r\n], TableEditor);\r\nexport default TableEditor;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { computed, get } from 'mobx';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableContext from './TableContext';\r\nimport { ColumnLock } from './enum';\r\nimport TableFooterCell from './TableFooterCell';\r\nimport { getColumnKey } from './utils';\r\nlet TableFooter = class TableFooter extends Component {\r\n render() {\r\n const { prefixCls, lock, dataSet } = this.props;\r\n const { tableStore: { lockColumnsFootRowsHeight, overflowY, rowHeight }, } = this.context;\r\n const tds = this.leafColumns.map(column => {\r\n return (<TableFooterCell key={getColumnKey(column)} prefixCls={prefixCls} dataSet={dataSet} column={column}/>);\r\n });\r\n if (overflowY && lock !== ColumnLock.left) {\r\n tds.push(<th key=\"fixed-column\" className={`${prefixCls}-cell`}>\n &nbsp;\n </th>);\r\n }\r\n return (<tfoot className={`${prefixCls}-tfoot`}>\n <tr style={{\r\n height: lock && rowHeight === 'auto' ? pxToRem(get(lockColumnsFootRowsHeight, 0)) : undefined,\r\n }}>\n {tds}\n </tr>\n </tfoot>);\r\n }\r\n get leafColumns() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n if (lock === 'right') {\r\n return tableStore.rightLeafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n if (lock) {\r\n return tableStore.leftLeafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n return tableStore.leafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n};\r\nTableFooter.displayName = 'TableFooter';\r\nTableFooter.propTypes = {\r\n prefixCls: PropTypes.string,\r\n lock: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.oneOf([ColumnLock.right, ColumnLock.left]),\r\n ]),\r\n};\r\nTableFooter.contextType = TableContext;\r\ntslib_1.__decorate([\r\n computed\r\n], TableFooter.prototype, \"leafColumns\", null);\r\nTableFooter = tslib_1.__decorate([\r\n observer\r\n], TableFooter);\r\nexport default TableFooter;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport classNames from 'classnames';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableContext from './TableContext';\r\nimport { getAlignByField } from './utils';\r\nimport { ColumnAlign } from './enum';\r\nlet TableFooterCell = class TableFooterCell extends Component {\r\n getFooter(footer, dataSet) {\r\n switch (typeof footer) {\r\n case 'function': {\r\n const { column } = this.props;\r\n return footer(dataSet, column.name);\r\n }\r\n case 'string':\r\n return <span>{footer}</span>;\r\n default:\r\n return footer;\r\n }\r\n }\r\n render() {\r\n const { column, prefixCls, dataSet } = this.props;\r\n const { tableStore: { rowHeight }, } = this.context;\r\n const { footer, footerClassName, footerStyle = {}, align, name, command } = column;\r\n const classString = classNames(`${prefixCls}-cell`, footerClassName);\r\n const innerProps = {\r\n className: `${prefixCls}-cell-inner`,\r\n };\r\n if (rowHeight !== 'auto') {\r\n innerProps.style = {\r\n height: pxToRem(rowHeight),\r\n };\r\n }\r\n const cellStyle = {\r\n textAlign: align || (command ? ColumnAlign.center : getAlignByField(dataSet.getField(name))),\r\n ...footerStyle,\r\n };\r\n return (<th className={classString} style={omit(cellStyle, ['width', 'height'])}>\n <div {...innerProps}>{this.getFooter(footer, dataSet)}</div>\n </th>);\r\n }\r\n};\r\nTableFooterCell.displayName = 'TableFooterCell';\r\nTableFooterCell.propTypes = {\r\n column: PropTypes.object.isRequired,\r\n};\r\nTableFooterCell.contextType = TableContext;\r\nTableFooterCell = tslib_1.__decorate([\r\n observer\r\n], TableFooterCell);\r\nexport default TableFooterCell;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport { computed, get } from 'mobx';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableHeaderCell from './TableHeaderCell';\r\nimport TableContext from './TableContext';\r\nimport { ColumnLock } from './enum';\r\nimport { getColumnKey } from './utils';\r\nimport autobind from '../_util/autobind';\r\nlet TableHeader = class TableHeader extends Component {\r\n saveRef(node) {\r\n this.node = node;\r\n }\r\n getHeaderNode() {\r\n return this.node;\r\n }\r\n render() {\r\n const { prefixCls, lock, dataSet } = this.props;\r\n const { groupedColumns } = this;\r\n const { tableStore: { overflowY, columnResizable }, } = this.context;\r\n const rows = this.getTableHeaderRows(groupedColumns);\r\n const trs = rows.map((row, rowIndex) => {\r\n if (row.length) {\r\n let prevColumn;\r\n const tds = row.map(({ hidden, column, rowSpan, colSpan, lastLeaf }) => {\r\n if (!hidden) {\r\n const props = {\r\n key: getColumnKey(column),\r\n prefixCls,\r\n dataSet,\r\n prevColumn,\r\n column,\r\n resizeColumn: lastLeaf,\r\n getHeaderNode: this.getHeaderNode,\r\n };\r\n if (rowSpan > 1) {\r\n props.rowSpan = rowSpan;\r\n }\r\n if (colSpan > 1) {\r\n props.colSpan = colSpan;\r\n }\r\n prevColumn = lastLeaf;\r\n return <TableHeaderCell {...props}/>;\r\n }\r\n return undefined;\r\n });\r\n if (overflowY && lock !== ColumnLock.left && rowIndex === 0) {\r\n tds.push(<th key=\"fixed-column\" className={`${prefixCls}-cell`} rowSpan={rows.length}>\n &nbsp;\n </th>);\r\n }\r\n return (<tr key={String(rowIndex)} style={{ height: lock ? this.getHeaderRowStyle(rows, rowIndex) : undefined }}>\n {tds}\n </tr>);\r\n }\r\n return undefined;\r\n });\r\n const classString = classNames(`${prefixCls}-thead`, {\r\n [`${prefixCls}-column-resizable`]: columnResizable,\r\n });\r\n return (<thead ref={this.saveRef} className={classString}>\n {trs}\n </thead>);\r\n }\r\n getTableHeaderRows(columns, currentRow = 0, rows = []) {\r\n rows[currentRow] = rows[currentRow] || [];\r\n columns.forEach(column => {\r\n const { hidden, rowSpan, colSpan, children } = column;\r\n if (!hidden) {\r\n if (rowSpan && rows.length < rowSpan) {\r\n while (rows.length < rowSpan) {\r\n rows.push([]);\r\n }\r\n }\r\n if (children) {\r\n this.getTableHeaderRows(children.columns, currentRow + rowSpan, rows);\r\n }\r\n if (colSpan !== 0) {\r\n rows[currentRow].push(column);\r\n }\r\n }\r\n });\r\n return rows;\r\n }\r\n getHeaderRowStyle(rows, rowIndex) {\r\n const { tableStore: { rowHeight }, } = this.context;\r\n const height = rowHeight === 'auto' ? this.getRowHeight(rowIndex++) : rowHeight;\r\n return pxToRem(rows\r\n .slice(rowIndex)\r\n .reduce((total, r, index) => r.length\r\n ? total\r\n : total +\r\n (rowHeight === 'auto' ? this.getRowHeight(index + rowIndex) : rowHeight + 4), height));\r\n }\r\n getRowHeight(index) {\r\n const { tableStore } = this.context;\r\n return get(tableStore.lockColumnsHeadRowsHeight, index) || 0;\r\n }\r\n get groupedColumns() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n switch (lock) {\r\n case ColumnLock.left:\r\n case true:\r\n return tableStore.leftGroupedColumns;\r\n case ColumnLock.right:\r\n return tableStore.rightGroupedColumns;\r\n default:\r\n return tableStore.groupedColumns;\r\n }\r\n }\r\n};\r\nTableHeader.displayName = 'TableHeader';\r\nTableHeader.propTypes = {\r\n prefixCls: PropTypes.string,\r\n lock: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.oneOf([ColumnLock.right, ColumnLock.left]),\r\n ]),\r\n};\r\nTableHeader.contextType = TableContext;\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeader.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeader.prototype, \"getHeaderNode\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableHeader.prototype, \"groupedColumns\", null);\r\nTableHeader = tslib_1.__decorate([\r\n observer\r\n], TableHeader);\r\nexport default TableHeader;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport defaultTo from 'lodash/defaultTo';\r\nimport isString from 'lodash/isString';\r\nimport classes from 'component-classes';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport { minColumnWidth } from './Column';\r\nimport TableContext from './TableContext';\r\nimport Icon from '../icon';\r\nimport EventManager from '../_util/EventManager';\r\nimport { getAlignByField, getColumnKey, getHeader } from './utils';\r\nimport { ColumnAlign } from './enum';\r\nimport { ShowHelp } from '../field/enum';\r\nimport Tooltip from '../tooltip';\r\nimport autobind from '../_util/autobind';\r\nlet TableHeaderCell = class TableHeaderCell extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.resizeEvent = new EventManager(typeof window !== 'undefined' && document);\r\n this.resizeBoundary = 0;\r\n }\r\n handleClick() {\r\n const { column, dataSet } = this.props;\r\n const { name } = column;\r\n if (name) {\r\n dataSet.sort(name);\r\n }\r\n }\r\n getNode(column) {\r\n const { getHeaderNode } = this.props;\r\n const headerDom = getHeaderNode();\r\n if (headerDom) {\r\n return headerDom.querySelector(`[data-index=\"${getColumnKey(column)}\"]`);\r\n }\r\n }\r\n setResizeColumn(column) {\r\n this.resizeColumn = column;\r\n const node = this.getNode(column);\r\n if (node) {\r\n this.resizeBoundary = node.getBoundingClientRect().left;\r\n }\r\n }\r\n handleLeftResize(e) {\r\n const { prevColumn } = this.props;\r\n this.setResizeColumn(prevColumn);\r\n this.resizeStart(e);\r\n }\r\n handleRightResize(e) {\r\n const { resizeColumn } = this.props;\r\n this.setResizeColumn(resizeColumn);\r\n this.resizeStart(e);\r\n }\r\n resizeStart(e) {\r\n const { prefixCls } = this.props;\r\n const { tableStore: { node: { element }, }, } = this.context;\r\n classes(element).add(`${prefixCls}-resizing`);\r\n delete this.resizePosition;\r\n this.setSplitLinePosition(e.pageX);\r\n this.resizeEvent\r\n .addEventListener('mousemove', this.resize)\r\n .addEventListener('mouseup', this.resizeEnd);\r\n }\r\n resize(e) {\r\n const column = this.resizeColumn;\r\n const limit = this.resizeBoundary + minColumnWidth(column);\r\n let left = e.pageX;\r\n if (left < limit) {\r\n left = limit;\r\n }\r\n this.resizePosition = this.setSplitLinePosition(left);\r\n }\r\n resizeEnd() {\r\n const { prefixCls } = this.props;\r\n const { tableStore: { node: { element }, }, } = this.context;\r\n classes(element).remove(`${prefixCls}-resizing`);\r\n this.resizeEvent.removeEventListener('mousemove').removeEventListener('mouseup');\r\n const column = this.resizeColumn;\r\n if (this.resizePosition && column) {\r\n const newWidth = Math.max(this.resizePosition - this.resizeBoundary, minColumnWidth(column));\r\n if (newWidth !== column.width) {\r\n set(column, 'width', newWidth);\r\n }\r\n }\r\n }\r\n setSplitLinePosition(left) {\r\n const { tableStore: { node: { resizeLine }, }, } = this.context;\r\n const { left: rectLeft, width } = resizeLine.offsetParent.getBoundingClientRect();\r\n left -= rectLeft;\r\n if (left < 0) {\r\n left = 0;\r\n }\r\n else if (left >= width) {\r\n left = width - 1;\r\n }\r\n resizeLine.style.left = pxToRem(left) || null;\r\n return left + rectLeft;\r\n }\r\n renderResizer() {\r\n const { prevColumn, column, prefixCls } = this.props;\r\n const resizerPrefixCls = `${prefixCls}-resizer`;\r\n const pre = prevColumn && prevColumn.resizable && (<div key=\"pre\" className={`${resizerPrefixCls} ${resizerPrefixCls}-left`} onMouseDown={this.handleLeftResize}/>);\r\n const next = column.resizable && (<div key=\"next\" className={`${resizerPrefixCls} ${resizerPrefixCls}-right`} onMouseDown={this.handleRightResize}/>);\r\n return [pre, next];\r\n }\r\n render() {\r\n const { column, prefixCls, dataSet, rowSpan, colSpan } = this.props;\r\n const { tableStore: { rowHeight, columnResizable }, } = this.context;\r\n const sortPrefixCls = `${prefixCls}-sort`;\r\n const { headerClassName, headerStyle = {}, sortable, name, align, help, showHelp, children, command, } = column;\r\n const classList = [`${prefixCls}-cell`];\r\n const field = dataSet.getField(name);\r\n if (headerClassName) {\r\n classList.push(headerClassName);\r\n }\r\n const headerNode = getHeader(column, dataSet);\r\n const innerProps = {\r\n className: `${prefixCls}-cell-inner`,\r\n children: [\r\n isValidElement(headerNode) ? (cloneElement(headerNode, { key: 'text' })) : isString(headerNode) ? (<span key=\"text\">{headerNode}</span>) : (headerNode),\r\n ],\r\n };\r\n const cellStyle = {\r\n textAlign: align ||\r\n (command || (children && children.length) ? ColumnAlign.center : getAlignByField(field)),\r\n ...headerStyle,\r\n };\r\n if (rowHeight !== 'auto') {\r\n innerProps.style = {\r\n height: pxToRem(rowHeight),\r\n };\r\n }\r\n if (showHelp !== ShowHelp.none) {\r\n const fieldHelp = defaultTo(field && field.get('help'), help);\r\n if (fieldHelp) {\r\n const helpIcon = (<Tooltip title={fieldHelp} placement=\"bottom\" key=\"help\">\n <Icon type=\"help_outline\" className={`${prefixCls}-help-icon`}/>\n </Tooltip>);\r\n if (cellStyle.textAlign === ColumnAlign.right) {\r\n innerProps.children.unshift(helpIcon);\r\n }\r\n else {\r\n innerProps.children.push(helpIcon);\r\n }\r\n }\r\n }\r\n if (sortable && name) {\r\n if (field) {\r\n const { order } = field;\r\n if (order) {\r\n classList.push(`${sortPrefixCls}-${order}`);\r\n }\r\n }\r\n innerProps.onClick = this.handleClick;\r\n const icon = <Icon key=\"sort\" type=\"arrow_upward\" className={`${sortPrefixCls}-icon`}/>;\r\n if (cellStyle.textAlign === ColumnAlign.right) {\r\n innerProps.children.unshift(icon);\r\n }\r\n else {\r\n innerProps.children.push(icon);\r\n }\r\n }\r\n return (<th className={classList.join(' ')} style={omit(cellStyle, ['width', 'height'])} rowSpan={rowSpan} colSpan={colSpan} data-index={getColumnKey(column)}>\n <div {...innerProps}/>\n {columnResizable && this.renderResizer()}\n </th>);\r\n }\r\n componentWillUnmount() {\r\n this.resizeEvent.clear();\r\n }\r\n};\r\nTableHeaderCell.displayName = 'TableHeaderCell';\r\nTableHeaderCell.propTypes = {\r\n column: PropTypes.object.isRequired,\r\n};\r\nTableHeaderCell.contextType = TableContext;\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeaderCell.prototype, \"handleClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeaderCell.prototype, \"handleLeftResize\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeaderCell.prototype, \"handleRightResize\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableHeaderCell.prototype, \"resizeStart\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableHeaderCell.prototype, \"resize\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], TableHeaderCell.prototype, \"resizeEnd\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableHeaderCell.prototype, \"setSplitLinePosition\", null);\r\nTableHeaderCell = tslib_1.__decorate([\r\n observer\r\n], TableHeaderCell);\r\nexport default TableHeaderCell;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component, isValidElement, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, get, remove, set } from 'mobx';\r\nimport classNames from 'classnames';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport TableCell from './TableCell';\r\nimport Record from '../data-set/Record';\r\nimport TableContext from './TableContext';\r\nimport ExpandIcon from './ExpandIcon';\r\nimport { ColumnLock, SelectionMode } from './enum';\r\nimport { getColumnKey, isDisabledRow } from './utils';\r\nimport { EXPAND_KEY } from './TableStore';\r\nimport autobind from '../_util/autobind';\r\nlet TableRow = class TableRow extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.rowExternalProps = {};\r\n this.childrenRendered = false;\r\n }\r\n get expandable() {\r\n const { tableStore: { isTree, props: { expandedRowRenderer }, }, } = this.context;\r\n const { record } = this.props;\r\n return !!expandedRowRenderer || (isTree && !!record.children);\r\n }\r\n get isExpanded() {\r\n const { tableStore } = this.context;\r\n const { record } = this.props;\r\n return tableStore.isRowExpanded(record);\r\n }\r\n set isExpanded(expanded) {\r\n const { tableStore } = this.context;\r\n const { record } = this.props;\r\n tableStore.setRowExpanded(record, expanded);\r\n }\r\n get isHover() {\r\n const { tableStore } = this.context;\r\n const { record } = this.props;\r\n return tableStore.isRowHover(record);\r\n }\r\n set isHover(hover) {\r\n const { tableStore } = this.context;\r\n if (tableStore.highLightRow) {\r\n const { record } = this.props;\r\n tableStore.setRowHover(record, hover);\r\n }\r\n }\r\n saveRef(node) {\r\n if (node) {\r\n this.node = node;\r\n const { lock, record } = this.props;\r\n const { tableStore: { rowHeight, lockColumnsBodyRowsHeight }, } = this.context;\r\n if (rowHeight === 'auto' && !lock) {\r\n set(lockColumnsBodyRowsHeight, (this.rowKey = record.key), node.offsetHeight);\r\n }\r\n }\r\n }\r\n handleMouseEnter() {\r\n this.isHover = true;\r\n }\r\n handleMouseLeave() {\r\n this.isHover = false;\r\n }\r\n handleSelectionByClick(e) {\r\n this.handleSelection();\r\n this.handleClick(e);\r\n }\r\n handleSelectionByMouseDown(e) {\r\n this.handleSelection();\r\n const { onMouseDown } = this.rowExternalProps;\r\n if (typeof onMouseDown === 'function') {\r\n onMouseDown(e);\r\n }\r\n }\r\n handleSelectionByDblClick(e) {\r\n this.handleSelection();\r\n const { onDoubleClick } = this.rowExternalProps;\r\n if (typeof onDoubleClick === 'function') {\r\n onDoubleClick(e);\r\n }\r\n }\r\n handleExpandChange() {\r\n if (this.expandable) {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n }\r\n handleClickCapture(e) {\r\n const { record, record: { dataSet }, } = this.props;\r\n if (dataSet && !isDisabledRow(record)) {\r\n dataSet.current = record;\r\n }\r\n const { onClickCapture } = this.rowExternalProps;\r\n if (typeof onClickCapture === 'function') {\r\n onClickCapture(e);\r\n }\r\n }\r\n handleClick(e) {\r\n const { onClick } = this.rowExternalProps;\r\n if (typeof onClick === 'function') {\r\n onClick(e);\r\n }\r\n }\r\n getCell(column, index) {\r\n const { prefixCls, record, indentSize } = this.props;\r\n return (<TableCell key={getColumnKey(column)} prefixCls={prefixCls} column={column} record={record} indentSize={indentSize}>\n {this.hasExpandIcon(index) && this.renderExpandIcon()}\n </TableCell>);\r\n }\r\n focusRow(row) {\r\n if (row) {\r\n const { tableStore: { node, overflowY, currentEditorName }, } = this.context;\r\n const { lock, record } = this.props;\r\n if (!lock && !currentEditorName) {\r\n const { element } = node;\r\n if (element &&\r\n element.contains(document.activeElement) &&\r\n Array.from(element.querySelectorAll(`tr[data-index=\"${record.id}\"]`)).every(tr => !tr.contains(document.activeElement))) {\r\n row.focus();\r\n }\r\n }\r\n if (overflowY) {\r\n const { offsetParent } = row;\r\n if (offsetParent) {\r\n const tableBodyWrap = offsetParent.parentNode;\r\n if (tableBodyWrap) {\r\n const { offsetTop, offsetHeight } = row;\r\n const { scrollTop, offsetHeight: height } = tableBodyWrap;\r\n const bottomSide = offsetTop + offsetHeight - height + measureScrollbar();\r\n let st = scrollTop;\r\n if (st < bottomSide) {\r\n st = bottomSide;\r\n }\r\n if (st > offsetTop) {\r\n st = offsetTop + 1;\r\n }\r\n if (st !== scrollTop) {\r\n tableBodyWrap.scrollTop = st;\r\n node.handleBodyScrollTop({\r\n target: tableBodyWrap,\r\n currentTarget: tableBodyWrap,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n componentDidMount() {\r\n const { record } = this.props;\r\n if (record.isCurrent) {\r\n this.focusRow(this.node);\r\n }\r\n }\r\n componentDidUpdate() {\r\n const { record } = this.props;\r\n if (record.isCurrent) {\r\n this.focusRow(this.node);\r\n }\r\n }\r\n componentWillUnmount() {\r\n const { record } = this.props;\r\n const { tableStore } = this.context;\r\n tableStore.setRowExpanded(record, false);\r\n remove(tableStore.lockColumnsBodyRowsHeight, this.rowKey);\r\n }\r\n handleSelection() {\r\n const { record } = this.props;\r\n const { dataSet } = record;\r\n if (dataSet) {\r\n dataSet.select(record);\r\n }\r\n }\r\n hasExpandIcon(columnIndex) {\r\n const { tableStore } = this.context;\r\n const { props: { expandRowByClick, expandedRowRenderer }, expandIconColumnIndex, isTree, } = tableStore;\r\n return (!expandRowByClick && (expandedRowRenderer || isTree) && columnIndex === expandIconColumnIndex);\r\n }\r\n renderExpandIcon() {\r\n const { prefixCls, record } = this.props;\r\n const { tableStore: { expandIcon }, } = this.context;\r\n const { isExpanded: expanded, expandable, handleExpandChange } = this;\r\n if (typeof expandIcon === 'function') {\r\n return expandIcon({\r\n prefixCls,\r\n expanded,\r\n expandable,\r\n needIndentSpaced: !expandable,\r\n record,\r\n onExpand: handleExpandChange,\r\n });\r\n }\r\n return (<ExpandIcon prefixCls={prefixCls} expandable={expandable} onChange={handleExpandChange} expanded={expanded}/>);\r\n }\r\n renderExpandRow() {\r\n const { isExpanded, props: { children, columns, record, prefixCls, index }, } = this;\r\n const { tableStore } = this.context;\r\n const { props: { expandedRowRenderer, onRow }, expandIconAsCell, overflowX, } = tableStore;\r\n const expandRows = [];\r\n if (isExpanded || this.childrenRendered) {\r\n this.childrenRendered = true;\r\n if (expandedRowRenderer) {\r\n const rowExternalProps = typeof onRow === 'function'\r\n ? onRow({\r\n dataSet: record.dataSet,\r\n record,\r\n expandedRow: true,\r\n index,\r\n })\r\n : {};\r\n const classString = classNames(`${prefixCls}-expanded-row`, rowExternalProps.className);\r\n const rowProps = {\r\n key: `${record.key}-expanded-row`,\r\n className: classString,\r\n style: { ...rowExternalProps.style },\r\n };\r\n if (overflowX || !record.isCurrent) {\r\n rowProps.onMouseEnter = this.handleMouseEnter;\r\n rowProps.onMouseLeave = this.handleMouseLeave;\r\n }\r\n if (!isExpanded) {\r\n rowProps.style.display = 'none';\r\n }\r\n expandRows.push(<tr {...rowExternalProps} {...rowProps}>\n {expandIconAsCell && <td key={EXPAND_KEY}/>}\n <td key={`${EXPAND_KEY}-rest`} className={`${prefixCls}-cell`} colSpan={columns.length - (expandIconAsCell ? 1 : 0)}>\n <div className={`${prefixCls}-cell-inner`}>\n {expandedRowRenderer({ dataSet: record.dataSet, record })}\n </div>\n </td>\n </tr>);\r\n }\r\n if (isValidElement(children)) {\r\n expandRows.push(cloneElement(children, { isExpanded, key: `${record.key}-expanded-rows` }));\r\n }\r\n }\r\n return expandRows;\r\n }\r\n render() {\r\n const { prefixCls, columns, record, lock, hidden, index } = this.props;\r\n const { tableStore: { rowHeight, lockColumnsBodyRowsHeight, overflowX, highLightRow, props: { onRow, rowRenderer, selectionMode }, }, } = this.context;\r\n const { dataSet, isCurrent, key, id } = record;\r\n const rowExternalProps = {\r\n ...(typeof rowRenderer === 'function' ? rowRenderer(record, index) : {}),\r\n ...(typeof onRow === 'function'\r\n ? onRow({\r\n dataSet: dataSet,\r\n record,\r\n expandedRow: false,\r\n index,\r\n })\r\n : {}),\r\n };\r\n this.rowExternalProps = rowExternalProps;\r\n const disabled = isDisabledRow(record);\r\n const rowPrefixCls = `${prefixCls}-row`;\r\n const classString = classNames(rowPrefixCls, {\r\n [`${rowPrefixCls}-current`]: highLightRow && isCurrent,\r\n [`${rowPrefixCls}-hover`]: highLightRow && !isCurrent && this.isHover,\r\n [`${rowPrefixCls}-highlight`]: highLightRow,\r\n [`${rowPrefixCls}-disabled`]: disabled,\r\n }, rowExternalProps.className);\r\n const rowProps = {\r\n ref: this.saveRef,\r\n className: classString,\r\n style: { ...rowExternalProps.style },\r\n onClick: this.handleClick,\r\n onClickCapture: this.handleClickCapture,\r\n tabIndex: -1,\r\n disabled,\r\n 'data-index': id,\r\n };\r\n if (overflowX) {\r\n rowProps.onMouseEnter = this.handleMouseEnter;\r\n rowProps.onMouseLeave = this.handleMouseLeave;\r\n }\r\n if (hidden) {\r\n rowProps.style.display = 'none';\r\n }\r\n if (lock) {\r\n if (rowHeight === 'auto') {\r\n rowProps.style.height = pxToRem(get(lockColumnsBodyRowsHeight, key));\r\n }\r\n }\r\n if (selectionMode === SelectionMode.click) {\r\n rowProps.onClick = this.handleSelectionByClick;\r\n }\r\n else if (selectionMode === SelectionMode.dblclick) {\r\n rowProps.onDoubleClick = this.handleSelectionByDblClick;\r\n }\r\n else if (selectionMode === SelectionMode.mousedown) {\r\n rowProps.onMouseDown = this.handleSelectionByMouseDown;\r\n }\r\n return [\r\n <tr key={key} {...rowExternalProps} {...rowProps}>\n {columns.map(this.getCell)}\n </tr>,\r\n ...this.renderExpandRow(),\r\n ];\r\n }\r\n};\r\nTableRow.displayName = 'TableRow';\r\nTableRow.propTypes = {\r\n prefixCls: PropTypes.string,\r\n lock: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.oneOf([ColumnLock.right, ColumnLock.left]),\r\n ]),\r\n columns: PropTypes.array.isRequired,\r\n record: PropTypes.instanceOf(Record).isRequired,\r\n indentSize: PropTypes.number.isRequired,\r\n};\r\nTableRow.contextType = TableContext;\r\ntslib_1.__decorate([\r\n computed\r\n], TableRow.prototype, \"expandable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableRow.prototype, \"isExpanded\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableRow.prototype, \"isHover\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], TableRow.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleMouseEnter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleMouseLeave\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleSelectionByClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleSelectionByMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleSelectionByDblClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleExpandChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleClickCapture\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"handleClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableRow.prototype, \"getCell\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableRow.prototype, \"componentWillUnmount\", null);\r\nTableRow = tslib_1.__decorate([\r\n observer\r\n], TableRow);\r\nexport default TableRow;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Children, isValidElement } from 'react';\r\nimport { action, computed, observable, runInAction } from 'mobx';\r\nimport isNil from 'lodash/isNil';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport defer from 'lodash/defer';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport Column, { columnWidth } from './Column';\r\nimport ObserverCheckBox from '../check-box';\r\nimport ObserverRadio from '../radio';\r\nimport { DataSetSelection, RecordStatus } from '../data-set/enum';\r\nimport { ColumnAlign, ColumnLock, SelectionMode, TableEditMode, TableMode, } from './enum';\r\nimport { stopPropagation } from '../_util/EventManager';\r\nimport { getColumnKey, getHeader } from './utils';\r\nimport getReactNodeText from '../_util/getReactNodeText';\r\nimport ColumnGroups from './ColumnGroups';\r\nimport autobind from '../_util/autobind';\r\nconst SELECTION_KEY = '__selection-column__';\r\nexport const EXPAND_KEY = '__expand-column__';\r\nfunction renderSelectionBox({ record }) {\r\n const { dataSet } = record;\r\n if (dataSet) {\r\n const { selection } = dataSet;\r\n const handleChange = value => {\r\n if (value) {\r\n dataSet.select(record);\r\n }\r\n else {\r\n dataSet.unSelect(record);\r\n }\r\n };\r\n const handleClick = e => {\r\n stopPropagation(e);\r\n if (record.isSelected) {\r\n dataSet.unSelect(record);\r\n }\r\n };\r\n if (selection === DataSetSelection.multiple) {\r\n return (<ObserverCheckBox checked={record.isSelected} onChange={handleChange} onClick={stopPropagation} disabled={!record.selectable} value/>);\r\n }\r\n if (selection === DataSetSelection.single) {\r\n return (<ObserverRadio checked={record.isSelected} onChange={handleChange} onClick={handleClick} disabled={!record.selectable} value/>);\r\n }\r\n }\r\n}\r\nfunction mergeDefaultProps(columns, defaultKey = [0]) {\r\n return columns.reduce((newColumns, column) => {\r\n if (isPlainObject(column)) {\r\n const newColumn = { ...Column.defaultProps, ...column };\r\n if (isNil(getColumnKey(newColumn))) {\r\n newColumn.key = `anonymous-${defaultKey[0]++}`;\r\n }\r\n const { children } = newColumn;\r\n if (children) {\r\n newColumn.children = mergeDefaultProps(children, defaultKey);\r\n }\r\n newColumns.push(newColumn);\r\n }\r\n return newColumns;\r\n }, []);\r\n}\r\nfunction normalizeColumns(elements, parent = null, defaultKey = [0]) {\r\n const columns = [];\r\n const leftFixedColumns = [];\r\n const rightFixedColumns = [];\r\n Children.forEach(elements, element => {\r\n if (!isValidElement(element) || element.type !== Column) {\r\n return;\r\n }\r\n const { props, key } = element;\r\n const column = {\r\n ...props,\r\n };\r\n if (isNil(getColumnKey(column))) {\r\n column.key = `anonymous-${defaultKey[0]++}`;\r\n }\r\n if (parent) {\r\n column.lock = parent.lock;\r\n }\r\n column.children = normalizeColumns(column.children, column, defaultKey);\r\n if (key) {\r\n column.key = key;\r\n }\r\n if (column.lock === ColumnLock.left || column.lock === true) {\r\n leftFixedColumns.push(column);\r\n }\r\n else if (column.lock === ColumnLock.right) {\r\n rightFixedColumns.push(column);\r\n }\r\n else {\r\n columns.push(column);\r\n }\r\n });\r\n return leftFixedColumns.concat(columns, rightFixedColumns);\r\n}\r\nasync function getHeaderTexts(dataSet, columns, headers = []) {\r\n const column = columns.shift();\r\n if (column) {\r\n headers.push({ name: column.name, label: await getReactNodeText(getHeader(column, dataSet)) });\r\n }\r\n if (columns.length) {\r\n await getHeaderTexts(dataSet, columns, headers);\r\n }\r\n return headers;\r\n}\r\nexport default class TableStore {\r\n constructor(node) {\r\n this.handleSelectAllChange = action(value => {\r\n const { dataSet, filter } = this.props;\r\n if (value) {\r\n dataSet.selectAll(filter);\r\n }\r\n else {\r\n dataSet.unSelectAll();\r\n if (this.showCachedSeletion) {\r\n dataSet.clearCachedSelected();\r\n }\r\n }\r\n });\r\n runInAction(() => {\r\n this.showCachedSeletion = false;\r\n this.lockColumnsHeadRowsHeight = {};\r\n this.lockColumnsBodyRowsHeight = {};\r\n this.lockColumnsFootRowsHeight = {};\r\n this.node = node;\r\n this.expandedRows = [];\r\n });\r\n this.setProps(node.props);\r\n }\r\n get dataSet() {\r\n return this.props.dataSet;\r\n }\r\n get hidden() {\r\n return !!this.styledHidden || this.props.hidden;\r\n }\r\n get columnResizable() {\r\n if (this.currentEditRecord) {\r\n return false;\r\n }\r\n if ('columnResizable' in this.props) {\r\n return this.props.columnResizable;\r\n }\r\n if (getConfig('tableColumnResizable') === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n get pagination() {\r\n if ('pagination' in this.props) {\r\n return this.props.pagination;\r\n }\r\n return getConfig('pagination');\r\n }\r\n get rowHeight() {\r\n if ('rowHeight' in this.props) {\r\n return this.props.rowHeight;\r\n }\r\n const rowHeight = getConfig('tableRowHeight');\r\n if (typeof rowHeight !== 'undefined') {\r\n return rowHeight;\r\n }\r\n return 30;\r\n }\r\n get emptyText() {\r\n return getConfig('renderEmpty')('Table');\r\n }\r\n get highLightRow() {\r\n if ('highLightRow' in this.props) {\r\n return this.props.highLightRow;\r\n }\r\n if (getConfig('tableHighLightRow') === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n get border() {\r\n if ('border' in this.props) {\r\n return this.props.border;\r\n }\r\n if (getConfig('tableBorder') === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n get queryBar() {\r\n return this.props.queryBar || getConfig('queryBar');\r\n }\r\n get expandIcon() {\r\n return this.props.expandIcon || getConfig('tableExpandIcon');\r\n }\r\n get pristine() {\r\n return this.props.pristine;\r\n }\r\n get currentEditRecord() {\r\n return this.dataSet.find(record => record.editing === true);\r\n }\r\n set currentEditRecord(record) {\r\n runInAction(() => {\r\n const { currentEditRecord, dataSet } = this;\r\n if (currentEditRecord) {\r\n if (currentEditRecord.status === RecordStatus.add) {\r\n dataSet.remove(currentEditRecord);\r\n }\r\n else {\r\n currentEditRecord.reset();\r\n currentEditRecord.editing = false;\r\n }\r\n }\r\n if (record) {\r\n defer(action(() => (record.editing = true)));\r\n }\r\n });\r\n }\r\n get isTree() {\r\n return this.props.mode === TableMode.tree;\r\n }\r\n get editing() {\r\n return this.currentEditorName !== undefined || this.currentEditRecord !== undefined;\r\n }\r\n get hasRowBox() {\r\n const { dataSet, selectionMode } = this.props;\r\n if (dataSet) {\r\n const { selection } = dataSet;\r\n return selection && selectionMode === SelectionMode.rowbox;\r\n }\r\n return false;\r\n }\r\n get overflowX() {\r\n if (this.width) {\r\n return this.totalLeafColumnsWidth > this.width;\r\n }\r\n return false;\r\n }\r\n get overflowY() {\r\n const { bodyHeight, height } = this;\r\n return (bodyHeight !== undefined &&\r\n height !== undefined &&\r\n height < bodyHeight + (this.overflowX ? measureScrollbar() : 0));\r\n }\r\n get columns() {\r\n const { columns, children } = this.props;\r\n return observable.array(this.addExpandColumn(this.addSelectionColumn(columns ? mergeDefaultProps(columns) : normalizeColumns(children))));\r\n }\r\n get leftColumns() {\r\n return this.columns.filter(column => column.lock === ColumnLock.left || column.lock === true);\r\n }\r\n get rightColumns() {\r\n return this.columns.filter(column => column.lock === ColumnLock.right);\r\n }\r\n get columnGroups() {\r\n return new ColumnGroups(this.columns);\r\n }\r\n get groupedColumns() {\r\n return this.columnGroups.columns;\r\n }\r\n get leftGroupedColumns() {\r\n return this.groupedColumns.filter(({ column: { lock } }) => lock === ColumnLock.left || lock === true);\r\n }\r\n get rightGroupedColumns() {\r\n return this.groupedColumns.filter(({ column: { lock } }) => lock === ColumnLock.right);\r\n }\r\n get leafColumns() {\r\n return this.getLeafColumns(this.columns);\r\n }\r\n get leftLeafColumns() {\r\n return this.getLeafColumns(this.leftColumns);\r\n }\r\n get rightLeafColumns() {\r\n return this.getLeafColumns(this.rightColumns);\r\n }\r\n get leafNamedColumns() {\r\n return this.leafColumns.filter(column => !!column.name);\r\n }\r\n get totalLeafColumnsWidth() {\r\n return this.leafColumns.reduce((total, column) => total + columnWidth(column), 0);\r\n }\r\n get leftLeafColumnsWidth() {\r\n return this.leftLeafColumns.reduce((total, column) => total + columnWidth(column), 0);\r\n }\r\n get rightLeafColumnsWidth() {\r\n return this.rightLeafColumns.reduce((total, column) => total + columnWidth(column), 0);\r\n }\r\n get hasCheckFieldColumn() {\r\n const { checkField } = this.dataSet.props;\r\n return this.leafColumns.some(({ name, editor }) => !!editor && checkField === name);\r\n }\r\n get hasFooter() {\r\n return this.leafColumns.some(column => !!column.footer && column.key !== SELECTION_KEY);\r\n }\r\n get isAnyColumnsResizable() {\r\n return this.leafColumns.some(column => column.resizable === true);\r\n }\r\n get isAnyColumnsLock() {\r\n return this.columns.some(column => !!column.lock);\r\n }\r\n get isAnyColumnsLeftLock() {\r\n return this.columns.some(column => column.lock === ColumnLock.left || column.lock === true);\r\n }\r\n get isAnyColumnsRightLock() {\r\n return this.columns.some(column => column.lock === ColumnLock.right);\r\n }\r\n get data() {\r\n const { filter, pristine } = this.props;\r\n const { dataSet, isTree, showCachedSeletion } = this;\r\n let data = isTree ? dataSet.treeRecords : dataSet.records;\r\n if (typeof filter === 'function') {\r\n data = data.filter(filter);\r\n }\r\n if (pristine) {\r\n data = data.filter(record => record.status !== RecordStatus.add);\r\n }\r\n if (showCachedSeletion) {\r\n return [...dataSet.cachedSelected, ...data];\r\n }\r\n return data;\r\n }\r\n get indeterminate() {\r\n const { dataSet, showCachedSeletion } = this;\r\n if (dataSet) {\r\n const { length } = dataSet.records.filter(record => record.selectable);\r\n const selectedLength = showCachedSeletion\r\n ? dataSet.selected.length\r\n : dataSet.currentSelected.length;\r\n return !!selectedLength && selectedLength !== length;\r\n }\r\n return false;\r\n }\r\n get allChecked() {\r\n const { dataSet, showCachedSeletion } = this;\r\n if (dataSet) {\r\n const { length } = dataSet.records.filter(record => record.selectable);\r\n const selectedLength = showCachedSeletion\r\n ? dataSet.selected.length\r\n : dataSet.currentSelected.length;\r\n return !!selectedLength && selectedLength === length;\r\n }\r\n return false;\r\n }\r\n get expandIconAsCell() {\r\n const { expandedRowRenderer } = this.props;\r\n return !!expandedRowRenderer && !this.isTree;\r\n }\r\n get expandIconColumnIndex() {\r\n const { expandIconAsCell, props: { expandIconColumnIndex = 0 }, } = this;\r\n if (expandIconAsCell) {\r\n return 0;\r\n }\r\n if (this.hasRowBox) {\r\n return expandIconColumnIndex + 1;\r\n }\r\n return expandIconColumnIndex;\r\n }\r\n get inlineEdit() {\r\n return this.props.editMode === TableEditMode.inline;\r\n }\r\n async getColumnHeaders() {\r\n const { leafNamedColumns, dataSet } = this;\r\n return getHeaderTexts(dataSet, leafNamedColumns.slice());\r\n }\r\n showEditor(name) {\r\n this.currentEditorName = name;\r\n }\r\n hideEditor() {\r\n this.currentEditorName = undefined;\r\n }\r\n showNextEditor(name, reserve) {\r\n if (reserve) {\r\n this.dataSet.pre();\r\n }\r\n else {\r\n this.dataSet.next();\r\n }\r\n this.showEditor(name);\r\n }\r\n setProps(props) {\r\n this.props = props;\r\n }\r\n isRowExpanded(record) {\r\n const { parent } = record;\r\n const expanded = (this.dataSet.props.expandField && record.isExpanded) ||\r\n this.expandedRows.indexOf(record.key) !== -1;\r\n return expanded && (!this.isTree || !parent || this.isRowExpanded(parent));\r\n }\r\n setRowExpanded(record, expanded) {\r\n if (this.dataSet.props.expandField) {\r\n record.isExpanded = expanded;\r\n }\r\n const index = this.expandedRows.indexOf(record.key);\r\n if (expanded) {\r\n if (index === -1) {\r\n this.expandedRows.push(record.key);\r\n }\r\n }\r\n else if (index !== -1) {\r\n this.expandedRows.splice(index, 1);\r\n }\r\n const { onExpand } = this.props;\r\n if (onExpand) {\r\n onExpand(expanded, record);\r\n }\r\n }\r\n isRowHover(record) {\r\n return this.hoverRow === record;\r\n }\r\n setRowHover(record, hover) {\r\n this.hoverRow = hover ? record : undefined;\r\n }\r\n expandAll() {\r\n this.dataSet.records.forEach(record => this.setRowExpanded(record, true));\r\n }\r\n collapseAll() {\r\n this.dataSet.records.forEach(record => this.setRowExpanded(record, false));\r\n }\r\n getLeafColumns(columns) {\r\n const leafColumns = [];\r\n columns.forEach(column => {\r\n if (!column.children || column.children.length === 0) {\r\n leafColumns.push(column);\r\n }\r\n else {\r\n leafColumns.push(...this.getLeafColumns(column.children));\r\n }\r\n });\r\n return leafColumns;\r\n }\r\n addExpandColumn(columns) {\r\n if (this.expandIconAsCell) {\r\n columns.unshift({\r\n key: EXPAND_KEY,\r\n resizable: false,\r\n align: ColumnAlign.center,\r\n width: 50,\r\n lock: true,\r\n });\r\n }\r\n return columns;\r\n }\r\n multipleSelectionRenderer() {\r\n return (<ObserverCheckBox checked={this.allChecked} indeterminate={this.indeterminate} onChange={this.handleSelectAllChange} value/>);\r\n }\r\n addSelectionColumn(columns) {\r\n if (this.hasRowBox) {\r\n const { dataSet } = this;\r\n const { suffixCls, prefixCls } = this.props;\r\n const selectionColumn = {\r\n key: SELECTION_KEY,\r\n resizable: false,\r\n className: `${getProPrefixCls(suffixCls, prefixCls)}-selection-column`,\r\n renderer: renderSelectionBox,\r\n align: ColumnAlign.center,\r\n width: 50,\r\n lock: true,\r\n };\r\n if (dataSet && dataSet.selection === DataSetSelection.multiple) {\r\n selectionColumn.header = this.multipleSelectionRenderer;\r\n selectionColumn.footer = this.multipleSelectionRenderer;\r\n }\r\n columns.unshift(selectionColumn);\r\n }\r\n return columns;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"props\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"bodyHeight\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"width\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"height\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"lockColumnsBodyRowsHeight\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"lockColumnsFootRowsHeight\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"lockColumnsHeadRowsHeight\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"expandedRows\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"hoverRow\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"currentEditorName\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"styledHidden\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"dataSet\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"columnResizable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"pagination\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"rowHeight\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"emptyText\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"highLightRow\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"border\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"queryBar\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"expandIcon\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"currentEditRecord\", null);\r\ntslib_1.__decorate([\r\n observable\r\n], TableStore.prototype, \"showCachedSeletion\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"hasRowBox\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"overflowX\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"overflowY\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"columns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leftColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"rightColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"columnGroups\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"groupedColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leftGroupedColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"rightGroupedColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leafColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leftLeafColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"rightLeafColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leafNamedColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"totalLeafColumnsWidth\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"leftLeafColumnsWidth\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"rightLeafColumnsWidth\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"hasCheckFieldColumn\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"hasFooter\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"isAnyColumnsResizable\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"isAnyColumnsLock\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"isAnyColumnsLeftLock\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"isAnyColumnsRightLock\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"data\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"indeterminate\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"allChecked\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"expandIconAsCell\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"expandIconColumnIndex\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableStore.prototype, \"inlineEdit\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"showEditor\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"hideEditor\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"setProps\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"setRowExpanded\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"setRowHover\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"expandAll\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableStore.prototype, \"collapseAll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableStore.prototype, \"multipleSelectionRenderer\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed } from 'mobx';\r\nimport classes from 'component-classes';\r\nimport raf from 'raf';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\r\nimport TableContext from './TableContext';\r\nimport TableRow from './TableRow';\r\nimport { ColumnLock } from './enum';\r\nimport ExpandedRow from './ExpandedRow';\r\nimport { DataSetStatus } from '../data-set/enum';\r\nimport autobind from '../_util/autobind';\r\nlet TableTBody = class TableTBody extends Component {\r\n get leafColumns() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n if (lock === 'right') {\r\n return tableStore.rightLeafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n if (lock) {\r\n return tableStore.leftLeafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n return tableStore.leafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n handleResize() {\r\n if (this.nextFrameActionId !== undefined) {\r\n raf.cancel(this.nextFrameActionId);\r\n }\r\n this.nextFrameActionId = raf(this.syncBodyHeight);\r\n }\r\n saveRef(node) {\r\n this.tableBody = node;\r\n this.handleResize();\r\n }\r\n render() {\r\n const { prefixCls, lock } = this.props;\r\n const { leafColumns } = this;\r\n const { tableStore: { data }, } = this.context;\r\n const rows = data.length\r\n ? this.getRows(data, leafColumns, true, lock)\r\n : this.getEmptyRow(leafColumns, lock);\r\n const body = (<tbody ref={lock ? undefined : this.saveRef} className={`${prefixCls}-tbody`}>\n {rows}\n </tbody>);\r\n return lock ? (body) : (<ReactResizeObserver onResize={this.handleResize} resizeProp=\"height\">\n {body}\n </ReactResizeObserver>);\r\n }\r\n componentDidUpdate() {\r\n const { lock, prefixCls } = this.props;\r\n if (!lock) {\r\n const { tableStore: { node }, } = this.context;\r\n if (classes(node.wrapper).has(`${prefixCls}-focused`) &&\r\n !node.wrapper.contains(document.activeElement)) {\r\n node.focus();\r\n }\r\n }\r\n }\r\n getRows(records, columns, expanded, lock) {\r\n return records.map((record, index) => this.getRow(columns, record, index, expanded, lock));\r\n }\r\n getEmptyRow(columns, lock) {\r\n const { tableStore: { dataSet, emptyText, width }, } = this.context;\r\n const { prefixCls } = this.props;\r\n const style = width\r\n ? {\r\n marginLeft: pxToRem(width / 2),\r\n }\r\n : {\r\n transform: 'none',\r\n display: 'inline-block',\r\n };\r\n const tdStyle = width ? {} : { textAlign: 'center' };\r\n return (<tr className={`${prefixCls}-empty-row`}>\n <td colSpan={columns.length} style={tdStyle}>\n <div style={style}>{!lock && dataSet.status === DataSetStatus.ready && emptyText}</div>\n </td>\n </tr>);\r\n }\r\n renderExpandedRows(columns, record, isExpanded, lock) {\r\n return this.getRows(record.children || [], columns, isExpanded, lock);\r\n }\r\n getRow(columns, record, index, expanded, lock) {\r\n const { prefixCls, indentSize } = this.props;\r\n const { tableStore: { isTree }, } = this.context;\r\n const children = isTree && (<ExpandedRow record={record} columns={columns} lock={lock}>\n {this.renderExpandedRows}\n </ExpandedRow>);\r\n return (<TableRow key={record.key} hidden={!expanded} lock={lock} indentSize={indentSize} prefixCls={prefixCls} columns={columns} record={record} index={index}>\n {children}\n </TableRow>);\r\n }\r\n syncBodyHeight() {\r\n const { tableStore } = this.context;\r\n if (this.tableBody && !tableStore.hidden) {\r\n tableStore.bodyHeight = this.tableBody.offsetHeight;\r\n }\r\n }\r\n};\r\nTableTBody.displayName = 'TableTBody';\r\nTableTBody.propTypes = {\r\n lock: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.oneOf([ColumnLock.right, ColumnLock.left]),\r\n ]),\r\n prefixCls: PropTypes.string,\r\n indentSize: PropTypes.number.isRequired,\r\n};\r\nTableTBody.contextType = TableContext;\r\ntslib_1.__decorate([\r\n computed\r\n], TableTBody.prototype, \"leafColumns\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableTBody.prototype, \"handleResize\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableTBody.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableTBody.prototype, \"renderExpandedRows\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], TableTBody.prototype, \"syncBodyHeight\", null);\r\nTableTBody = tslib_1.__decorate([\r\n observer\r\n], TableTBody);\r\nexport default TableTBody;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, get, set } from 'mobx';\r\nimport classNames from 'classnames';\r\nimport isNil from 'lodash/isNil';\r\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport TableContext from './TableContext';\r\nimport { minColumnWidth } from './Column';\r\nimport { ColumnLock } from './enum';\r\nimport TableEditor from './TableEditor';\r\nimport TableCol from './TableCol';\r\nimport { getColumnKey } from './utils';\r\nimport autobind from '../_util/autobind';\r\nlet TableWrapper = class TableWrapper extends Component {\r\n get leafColumnsWidth() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n switch (lock) {\r\n case ColumnLock.left:\r\n case true:\r\n return tableStore.leftLeafColumnsWidth;\r\n case ColumnLock.right:\r\n return tableStore.rightLeafColumnsWidth;\r\n default:\r\n if (tableStore.overflowX) {\r\n return tableStore.totalLeafColumnsWidth;\r\n }\r\n }\r\n return undefined;\r\n }\r\n get leafEditorColumns() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n switch (lock) {\r\n case ColumnLock.left:\r\n case true:\r\n return tableStore.leftLeafColumns.filter(({ editor, name, hidden }) => editor && name && !hidden);\r\n case ColumnLock.right:\r\n return tableStore.rightLeafColumns.filter(({ editor, name, hidden }) => editor && name && !hidden);\r\n default:\r\n return tableStore.leafColumns.filter(({ editor, name, hidden, lock: columnLock }) => editor && name && !hidden && (!columnLock || !tableStore.overflowX));\r\n }\r\n }\r\n get leafColumns() {\r\n const { tableStore } = this.context;\r\n const { lock } = this.props;\r\n switch (lock) {\r\n case ColumnLock.left:\r\n case true:\r\n return tableStore.leftLeafColumns.filter(({ hidden }) => !hidden);\r\n case ColumnLock.right:\r\n return tableStore.rightLeafColumns.filter(({ hidden }) => !hidden);\r\n default:\r\n return tableStore.leafColumns.filter(({ hidden }) => !hidden);\r\n }\r\n }\r\n handleResizeEnd() {\r\n const { tableStore } = this.context;\r\n if (tableStore.rowHeight === 'auto') {\r\n this.syncFixedTableRowHeight();\r\n }\r\n }\r\n getCol(column, width) {\r\n if (!column.hidden) {\r\n const { prefixCls } = this.props;\r\n return (<TableCol key={getColumnKey(column)} prefixCls={prefixCls} width={width} minWidth={minColumnWidth(column)} onResizeEnd={this.handleResizeEnd}/>);\r\n }\r\n }\r\n getColGroup() {\r\n const { lock, hasHeader, hasFooter } = this.props;\r\n const { tableStore: { overflowY, overflowX }, } = this.context;\r\n let hasEmptyWidth = false;\r\n const cols = this.leafColumns.map((column, index, array) => {\r\n let width = get(column, 'width');\r\n if (!overflowX) {\r\n if (!hasEmptyWidth && index === array.length - 1) {\r\n width = undefined;\r\n }\r\n else if (isNil(width)) {\r\n hasEmptyWidth = true;\r\n }\r\n }\r\n return this.getCol(column, width);\r\n });\r\n if (overflowY && lock !== ColumnLock.left && (hasHeader || hasFooter)) {\r\n cols.push(<col key=\"fixed-column\" style={{ width: pxToRem(measureScrollbar()) }}/>);\r\n }\r\n return <colgroup>{cols}</colgroup>;\r\n }\r\n getEditors() {\r\n const { prefixCls } = this.props;\r\n return this.leafEditorColumns.map(column => (<TableEditor key={column.name} prefixCls={prefixCls} column={column}/>));\r\n }\r\n saveRef(node) {\r\n this.tableWrapper = node;\r\n }\r\n get tableWidth() {\r\n const { lock, hasBody } = this.props;\r\n const { tableStore: { overflowY, overflowX }, } = this.context;\r\n if (overflowX) {\r\n let tableWidth = this.leafColumnsWidth;\r\n if (tableWidth !== undefined && overflowY && lock !== ColumnLock.left && !hasBody) {\r\n tableWidth += measureScrollbar();\r\n }\r\n return pxToRem(tableWidth);\r\n }\r\n return '100%';\r\n }\r\n render() {\r\n const { children, lock, hasBody, prefixCls } = this.props;\r\n const { tableStore: { overflowY, height }, } = this.context;\r\n const editors = hasBody && this.getEditors();\r\n const className = classNames({\r\n [`${prefixCls}-last-row-bordered`]: hasBody && !overflowY && height !== undefined,\r\n });\r\n const table = (<table key=\"table\" ref={lock ? undefined : this.saveRef} className={className} style={{ width: this.tableWidth }}>\n {this.getColGroup()}\n {children}\n </table>);\r\n return [editors, table];\r\n }\r\n syncFixedTableRowHeight() {\r\n const { prefixCls, hasFooter, hasBody, hasHeader } = this.props;\r\n if (this.tableWrapper) {\r\n const { tableStore } = this.context;\r\n const { lockColumnsHeadRowsHeight, lockColumnsBodyRowsHeight, lockColumnsFootRowsHeight, } = tableStore;\r\n if (hasHeader) {\r\n const headRows = Array.from(this.tableWrapper.querySelectorAll('thead tr'));\r\n headRows.forEach((row, index) => set(lockColumnsHeadRowsHeight, index, row.offsetHeight));\r\n }\r\n if (hasBody) {\r\n const bodyRows = Array.from(this.tableWrapper.querySelectorAll(`.${prefixCls}-row`));\r\n bodyRows.forEach(row => set(lockColumnsBodyRowsHeight, row.dataset.index, row.offsetHeight));\r\n }\r\n if (hasFooter) {\r\n const footRows = Array.from(this.tableWrapper.querySelectorAll('tfoot tr'));\r\n footRows.forEach((row, index) => set(lockColumnsFootRowsHeight, index, row.offsetHeight));\r\n }\r\n }\r\n }\r\n};\r\nTableWrapper.contextType = TableContext;\r\nTableWrapper.propTypes = {\r\n lock: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.oneOf([ColumnLock.right, ColumnLock.left]),\r\n ]),\r\n hasBody: PropTypes.bool,\r\n hasHeader: PropTypes.bool,\r\n hasFooter: PropTypes.bool,\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], TableWrapper.prototype, \"leafColumnsWidth\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableWrapper.prototype, \"leafEditorColumns\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableWrapper.prototype, \"leafColumns\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableWrapper.prototype, \"handleResizeEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableWrapper.prototype, \"saveRef\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TableWrapper.prototype, \"tableWidth\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TableWrapper.prototype, \"syncFixedTableRowHeight\", null);\r\nTableWrapper = tslib_1.__decorate([\r\n observer\r\n], TableWrapper);\r\nexport default TableWrapper;\r\n","export var ColumnLock;\r\n(function (ColumnLock) {\r\n ColumnLock[\"left\"] = \"left\";\r\n ColumnLock[\"right\"] = \"right\";\r\n})(ColumnLock || (ColumnLock = {}));\r\nexport var ColumnAlign;\r\n(function (ColumnAlign) {\r\n ColumnAlign[\"left\"] = \"left\";\r\n ColumnAlign[\"center\"] = \"center\";\r\n ColumnAlign[\"right\"] = \"right\";\r\n})(ColumnAlign || (ColumnAlign = {}));\r\nexport var ScrollPosition;\r\n(function (ScrollPosition) {\r\n ScrollPosition[\"left\"] = \"left\";\r\n ScrollPosition[\"right\"] = \"right\";\r\n ScrollPosition[\"both\"] = \"both\";\r\n ScrollPosition[\"middle\"] = \"middle\";\r\n})(ScrollPosition || (ScrollPosition = {}));\r\nexport var SelectionMode;\r\n(function (SelectionMode) {\r\n SelectionMode[\"rowbox\"] = \"rowbox\";\r\n SelectionMode[\"click\"] = \"click\";\r\n SelectionMode[\"none\"] = \"none\";\r\n SelectionMode[\"dblclick\"] = \"dblclick\";\r\n SelectionMode[\"mousedown\"] = \"mousedown\";\r\n})(SelectionMode || (SelectionMode = {}));\r\nexport var TableButtonType;\r\n(function (TableButtonType) {\r\n TableButtonType[\"add\"] = \"add\";\r\n TableButtonType[\"delete\"] = \"delete\";\r\n TableButtonType[\"remove\"] = \"remove\";\r\n TableButtonType[\"save\"] = \"save\";\r\n TableButtonType[\"query\"] = \"query\";\r\n TableButtonType[\"reset\"] = \"reset\";\r\n TableButtonType[\"expandAll\"] = \"expandAll\";\r\n TableButtonType[\"collapseAll\"] = \"collapseAll\";\r\n TableButtonType[\"export\"] = \"export\";\r\n})(TableButtonType || (TableButtonType = {}));\r\nexport var TableCommandType;\r\n(function (TableCommandType) {\r\n TableCommandType[\"edit\"] = \"edit\";\r\n TableCommandType[\"delete\"] = \"delete\";\r\n})(TableCommandType || (TableCommandType = {}));\r\nexport var TableMode;\r\n(function (TableMode) {\r\n TableMode[\"list\"] = \"list\";\r\n TableMode[\"tree\"] = \"tree\";\r\n})(TableMode || (TableMode = {}));\r\nexport var TableEditMode;\r\n(function (TableEditMode) {\r\n TableEditMode[\"cell\"] = \"cell\";\r\n TableEditMode[\"inline\"] = \"inline\";\r\n})(TableEditMode || (TableEditMode = {}));\r\nexport var TableQueryBarType;\r\n(function (TableQueryBarType) {\r\n TableQueryBarType[\"normal\"] = \"normal\";\r\n TableQueryBarType[\"bar\"] = \"bar\";\r\n TableQueryBarType[\"none\"] = \"none\";\r\n TableQueryBarType[\"advancedBar\"] = \"advancedBar\";\r\n})(TableQueryBarType || (TableQueryBarType = {}));\r\nexport var TablePaginationPosition;\r\n(function (TablePaginationPosition) {\r\n TablePaginationPosition[\"top\"] = \"top\";\r\n TablePaginationPosition[\"bottom\"] = \"bottom\";\r\n TablePaginationPosition[\"both\"] = \"both\";\r\n})(TablePaginationPosition || (TablePaginationPosition = {}));\r\nexport var TableColumnTooltip;\r\n(function (TableColumnTooltip) {\r\n TableColumnTooltip[\"none\"] = \"none\";\r\n TableColumnTooltip[\"always\"] = \"always\";\r\n TableColumnTooltip[\"overflow\"] = \"overflow\";\r\n})(TableColumnTooltip || (TableColumnTooltip = {}));\r\n","import Table from './Table';\r\nexport default Table;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Component } from 'react';\r\nimport { action, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport Menu, { Item } from 'choerodon-ui/lib/rc-components/menu/index';\r\nimport Button from '../../button/Button';\r\nimport Dropdown from '../../dropdown/Dropdown';\r\nimport { Size } from '../../core/enum';\r\nimport { FuncType } from '../../button/enum';\r\nimport TableContext from '../TableContext';\r\nimport { getColumnKey, getHeader } from '../utils';\r\nimport { Placements } from '../../dropdown/enum';\r\nimport { stopEvent, stopPropagation } from '../../_util/EventManager';\r\nimport autobind from '../../_util/autobind';\r\nfunction handleMenuClick({ domEvent }) {\r\n domEvent.preventDefault();\r\n}\r\nlet ColumnFilter = class ColumnFilter extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.setDropDownHidden(true);\r\n }\r\n saveMenu(node) {\r\n this.menu = node;\r\n }\r\n handleHiddenChange(hidden) {\r\n this.setDropDownHidden(hidden);\r\n }\r\n handleKeyDown(e) {\r\n if (this.menu && this.menu.onKeyDown(e)) {\r\n stopEvent(e);\r\n }\r\n }\r\n setDropDownHidden(hidden) {\r\n this.hidden = hidden;\r\n }\r\n render() {\r\n const { prefixCls: rootPrefixCls } = this.props;\r\n const prefixCls = `${rootPrefixCls}-columns-chooser`;\r\n return (<div className={prefixCls} onFocus={stopPropagation} onMouseDown={stopPropagation} tabIndex={-1}>\n <Dropdown placement={Placements.bottomRight} overlay={this.getMenu(prefixCls)} hidden={this.hidden} onHiddenChange={this.handleHiddenChange}>\n <Button funcType={FuncType.flat} icon=\"view_column\" size={Size.small} onKeyDown={this.handleKeyDown}/>\n </Dropdown>\n </div>);\r\n }\r\n handleMenuSelect({ item: { props: { value }, }, }) {\r\n value.hidden = false;\r\n }\r\n handleMenuUnSelect({ item: { props: { value }, }, }) {\r\n value.hidden = true;\r\n }\r\n getMenu(prefixCls) {\r\n const { tableStore: { leafColumns, dataSet }, } = this.context;\r\n const selectedKeys = [];\r\n const columns = [];\r\n leafColumns.forEach(column => {\r\n if (column.hideable) {\r\n const header = getHeader(column, dataSet);\r\n if (header) {\r\n const key = getColumnKey(column);\r\n if (!column.hidden) {\r\n selectedKeys.push(key);\r\n }\r\n columns.push([column, header, key]);\r\n }\r\n }\r\n });\r\n return (<Menu ref={this.saveMenu} multiple defaultActiveFirst prefixCls={`${prefixCls}-dropdown-menu`} selectedKeys={selectedKeys} onSelect={this.handleMenuSelect} onDeselect={this.handleMenuUnSelect} onClick={handleMenuClick}>\n {this.getOptions(columns)}\n </Menu>);\r\n }\r\n getOptions(columns) {\r\n return columns.map(([column, header, key]) => (<Item key={key} value={column}>\n <span>{header}</span>\n </Item>));\r\n }\r\n};\r\nColumnFilter.displayName = 'ColumnFilter';\r\nColumnFilter.contextType = TableContext;\r\ntslib_1.__decorate([\r\n observable\r\n], ColumnFilter.prototype, \"hidden\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColumnFilter.prototype, \"saveMenu\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColumnFilter.prototype, \"handleHiddenChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], ColumnFilter.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ColumnFilter.prototype, \"setDropDownHidden\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ColumnFilter.prototype, \"handleMenuSelect\", null);\r\ntslib_1.__decorate([\r\n action\r\n], ColumnFilter.prototype, \"handleMenuUnSelect\", null);\r\nColumnFilter = tslib_1.__decorate([\r\n observer\r\n], ColumnFilter);\r\nexport default ColumnFilter;\r\n","import * as tslib_1 from \"tslib\";\r\nimport Set from 'core-js/library/fn/set';\r\nimport React, { cloneElement } from 'react';\r\nimport omit from 'lodash/omit';\r\nimport isPlainObject from 'lodash/isPlainObject';\r\nimport isNil from 'lodash/isNil';\r\nimport defer from 'lodash/defer';\r\nimport noop from 'lodash/noop';\r\nimport debounce from 'lodash/debounce';\r\nimport throttle from 'lodash/throttle';\r\nimport isString from 'lodash/isString';\r\nimport { observer } from 'mobx-react';\r\nimport { action, computed, get, isArrayLike, observable, reaction, runInAction, toJS, } from 'mobx';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport Icon from '../../icon';\r\nimport { TextField } from '../../text-field/TextField';\r\nimport autobind from '../../_util/autobind';\r\nimport measureTextWidth from '../../_util/measureTextWidth';\r\nimport { getEditorByField } from '../utils';\r\nimport ObserverSelect from '../../select/Select';\r\nimport Option from '../../option/Option';\r\nimport isSameLike from '../../_util/isSameLike';\r\nimport { DataSetEvents } from '../../data-set/enum';\r\nimport { processFieldValue } from '../../data-set/utils';\r\nlet FilterSelect = class FilterSelect extends TextField {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.setFilterText = debounce(action((text) => {\r\n this.filterText = text;\r\n }), 500);\r\n this.doQuery = throttle(() => {\r\n const { optionDataSet } = this.observableProps;\r\n optionDataSet.query();\r\n }, 500);\r\n const { observableProps } = this;\r\n this.on(observableProps.queryDataSet);\r\n this.reaction = reaction(() => observableProps.queryDataSet, this.on);\r\n }\r\n get value() {\r\n const { filter } = this.props;\r\n const { value, queryDataSet } = this.observableProps;\r\n if (value) {\r\n return filter ? value.filter(filter) : value;\r\n }\r\n const { paramName } = this.props;\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n const result = [];\r\n const keys = queryDataSet.fields.keys();\r\n [...new Set(paramName ? [...keys, paramName] : keys)].forEach((key) => {\r\n if (key && (!filter || filter(key))) {\r\n const values = current.get(key);\r\n if (isArrayLike(values)) {\r\n values.forEach(item => !isNil(item) && result.push(key));\r\n }\r\n else if (!isNil(values)) {\r\n result.push(key);\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n }\r\n return undefined;\r\n }\r\n set value(value) {\r\n runInAction(() => {\r\n this.observableProps.value = value;\r\n });\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n ...super.getObservableProps(props, context),\r\n optionDataSet: props.optionDataSet,\r\n queryDataSet: props.queryDataSet,\r\n };\r\n }\r\n on(ds) {\r\n this.off();\r\n if (ds) {\r\n ds.addEventListener(DataSetEvents.update, this.handleDataSetUpdate);\r\n ds.addEventListener(DataSetEvents.reset, this.handleDataSetReset);\r\n }\r\n this.queryDataSet = ds;\r\n }\r\n off() {\r\n const { queryDataSet } = this;\r\n if (queryDataSet) {\r\n queryDataSet.removeEventListener(DataSetEvents.update, this.handleDataSetUpdate);\r\n queryDataSet.removeEventListener(DataSetEvents.reset, this.handleDataSetReset);\r\n }\r\n }\r\n componentWillUnmount() {\r\n super.componentWillUnmount();\r\n this.setFilterText.cancel();\r\n this.off();\r\n this.reaction();\r\n }\r\n setText(text) {\r\n super.setText(text);\r\n this.setFilterText(text);\r\n }\r\n getPlaceholders() {\r\n if (!this.selectField) {\r\n return super.getPlaceholders();\r\n }\r\n return [];\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), [\r\n 'paramName',\r\n 'optionDataSet',\r\n 'queryDataSet',\r\n 'dropdownMenuStyle',\r\n 'hiddenIfNone',\r\n 'editable',\r\n 'filter',\r\n ]);\r\n }\r\n getRootDomNode() {\r\n return this.element;\r\n }\r\n defaultRenderer({ value, repeat = 0 }) {\r\n const { paramName } = this.props;\r\n const { queryDataSet } = this.observableProps;\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n let fieldValue = current.get(value);\r\n if (value === paramName) {\r\n return fieldValue;\r\n }\r\n const field = queryDataSet.getField(value);\r\n if (field) {\r\n if (field.get('multiple')) {\r\n fieldValue = (fieldValue || [])[repeat];\r\n }\r\n return `${this.getFieldLabel(field)}: ${processFieldValue(isPlainObject(fieldValue) ? fieldValue : super.processValue(fieldValue), field, this.lang)}`;\r\n }\r\n return value;\r\n }\r\n }\r\n }\r\n getQueryRecord() {\r\n const { queryDataSet } = this.observableProps;\r\n if (queryDataSet) {\r\n return queryDataSet.current;\r\n }\r\n }\r\n getQueryField(fieldName) {\r\n const { queryDataSet } = this.observableProps;\r\n if (queryDataSet) {\r\n return queryDataSet.getField(fieldName);\r\n }\r\n }\r\n addQueryParams(value) {\r\n const { paramName } = this.props;\r\n if (paramName) {\r\n this.setQueryValue(paramName, value);\r\n }\r\n }\r\n afterRemoveValue(value, repeat) {\r\n const values = this.getQueryValues(value);\r\n if (repeat === -1) {\r\n values.pop();\r\n }\r\n else {\r\n values.splice(repeat, 1);\r\n }\r\n const multiple = this.getQueryFieldMultiple(value);\r\n this.setQueryValue(value, multiple ? values : values[0]);\r\n }\r\n getQueryFieldMultiple(value) {\r\n const { paramName } = this.props;\r\n if (paramName !== value) {\r\n const field = this.getQueryField(value);\r\n if (field && field.get('multiple')) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n handleDataSetReset() {\r\n this.setValue(undefined);\r\n }\r\n handleDataSetUpdate({ name, value }) {\r\n const values = this.getValues();\r\n if (isArrayLike(value)) {\r\n const { length } = value;\r\n if (length) {\r\n let repeat = 0;\r\n const filtered = values.filter(item => {\r\n if (item === name) {\r\n repeat += 1;\r\n if (repeat > length) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n for (let i = 0, n = length - repeat; i < n; i += 1) {\r\n filtered.push(name);\r\n }\r\n this.setValue(filtered);\r\n }\r\n else {\r\n this.setValue(values.filter(item => item === name));\r\n }\r\n }\r\n else if (isNil(value)) {\r\n this.setValue(values.filter(item => item !== name));\r\n }\r\n else {\r\n if (values.indexOf(name) === -1) {\r\n values.push(name);\r\n }\r\n this.setValue(values);\r\n }\r\n this.doQuery();\r\n }\r\n handleBlur(e) {\r\n super.handleBlur(e);\r\n this.setSelectField(undefined);\r\n }\r\n isEditorReadOnly() {\r\n const { paramName, editable } = this.props;\r\n return (this.getQueryValues(paramName).length > 0 && !this.selectField) || !editable;\r\n }\r\n handleFieldChange(value) {\r\n const { selectField } = this;\r\n if (selectField) {\r\n const { name } = selectField;\r\n this.setQueryValue(name, value);\r\n }\r\n else if (isString(value)) {\r\n this.addQueryParams(value);\r\n if (this.isFocused) {\r\n this.element.expand();\r\n }\r\n }\r\n else {\r\n this.setSelectField(value);\r\n }\r\n }\r\n handleInput(e) {\r\n this.setText(e.target.value);\r\n }\r\n handleFieldEnterDown() {\r\n defer(() => this.focus());\r\n }\r\n handleKeyDown(e) {\r\n if (this.selectField) {\r\n if (e.keyCode === KeyCode.BACKSPACE && !this.text) {\r\n this.setSelectField(undefined);\r\n }\r\n }\r\n else {\r\n super.handleKeyDown(e);\r\n }\r\n }\r\n handleEnterDown() { }\r\n setSelectField(value) {\r\n this.selectField = value;\r\n this.setFilterText(undefined);\r\n }\r\n getQueryValues(fieldName) {\r\n const current = this.getQueryRecord();\r\n if (current) {\r\n return [].concat(toJS(current.get(fieldName)) || []);\r\n }\r\n return [];\r\n }\r\n syncValueOnBlur() { }\r\n setQueryValue(fieldName, value) {\r\n const current = this.getQueryRecord();\r\n if (current) {\r\n current.set(fieldName, value);\r\n }\r\n this.setSelectField(undefined);\r\n }\r\n getFieldLabel(field) {\r\n return field.get('label') || field.name;\r\n }\r\n multipleFieldExistsValue(field, current) {\r\n if (field.get('multiple')) {\r\n const { lookup } = field;\r\n if (lookup && current) {\r\n const values = current.get(field.name);\r\n return lookup.some(obj => !values.some(value => isSameLike(get(obj, field.get('valueField')), value)));\r\n }\r\n }\r\n return false;\r\n }\r\n getInputFilterOptions(filterText) {\r\n const { optionDataSet, optionDataSet: { fields }, } = this.observableProps;\r\n const values = new Set();\r\n optionDataSet.forEach(record => {\r\n [...fields.keys()].forEach(key => {\r\n const value = record.get(key);\r\n if (isString(value) && value.toLowerCase().indexOf(filterText.toLowerCase()) !== -1) {\r\n values.add(value);\r\n }\r\n });\r\n });\r\n return [...values].map(value => (<Option key={value} value={value}>\n {value}\n </Option>));\r\n }\r\n getFieldSelectOptions() {\r\n const { paramName } = this.props;\r\n const { queryDataSet } = this.observableProps;\r\n const data = [];\r\n if (queryDataSet) {\r\n [...queryDataSet.fields.entries()].forEach(([key, field]) => {\r\n if (key !== paramName &&\r\n (this.getValues().indexOf(key) === -1 ||\r\n this.multipleFieldExistsValue(field, this.getQueryRecord()))) {\r\n data.push(<Option key={key} value={field}>\n {this.getFieldLabel(field)}\n </Option>);\r\n }\r\n });\r\n }\r\n return data;\r\n }\r\n getFieldEditor(props, selectField) {\r\n const editor = getEditorByField(selectField);\r\n const editorProps = {\r\n ...props,\r\n key: 'value',\r\n record: this.getQueryRecord(),\r\n name: selectField.name,\r\n autoFocus: true,\r\n onInput: this.handleInput,\r\n onEnterDown: this.handleFieldEnterDown,\r\n renderer: noop,\r\n };\r\n if (editor.type === ObserverSelect) {\r\n editorProps.dropdownMenuStyle = this.props.dropdownMenuStyle;\r\n }\r\n return cloneElement(editor, editorProps);\r\n }\r\n getFieldSelect(props) {\r\n const { filterText, props: { dropdownMenuStyle }, } = this;\r\n const editable = !this.isEditorReadOnly();\r\n const options = editable\r\n ? filterText\r\n ? this.getInputFilterOptions(filterText)\r\n : this.getFieldSelectOptions()\r\n : null;\r\n return (<ObserverSelect {...props} key=\"key\" combo={editable} searchable={editable} value={null} onInput={this.handleInput} onEnterDown={this.handleFieldEnterDown} autoFocus={this.isFocused} dropdownMenuStyle={dropdownMenuStyle}>\n {options}\n </ObserverSelect>);\r\n }\r\n clear() {\r\n const record = this.getQueryRecord();\r\n if (record) {\r\n record.clear();\r\n }\r\n }\r\n renderWrapper() {\r\n const { hiddenIfNone } = this.props;\r\n if (this.isEmpty() && hiddenIfNone) {\r\n return null;\r\n }\r\n return super.renderWrapper();\r\n }\r\n renderMultipleEditor(props) {\r\n const { text, selectField, prefixCls } = this;\r\n const editorProps = {\r\n ...omit(props, ['multiple', 'prefixCls']),\r\n clearButton: false,\r\n prefix: null,\r\n suffix: null,\r\n elementClassName: `${prefixCls}-inner-editor`,\r\n onChange: this.handleFieldChange,\r\n };\r\n if (text) {\r\n editorProps.style = { width: pxToRem(measureTextWidth(text)) };\r\n }\r\n return (<li key=\"text\">\n {selectField ? (<span className={`${prefixCls}-select-field`}>{this.getFieldLabel(selectField)}:</span>) : null}\n {selectField\r\n ? this.getFieldEditor(editorProps, selectField)\r\n : this.getFieldSelect(editorProps)}\n </li>);\r\n }\r\n};\r\nFilterSelect.defaultProps = {\r\n ...TextField.defaultProps,\r\n multiple: true,\r\n clearButton: true,\r\n editable: true,\r\n prefix: <Icon type=\"filter_list\"/>,\r\n dropdownMenuStyle: { minWidth: pxToRem(180) },\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], FilterSelect.prototype, \"selectField\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], FilterSelect.prototype, \"filterText\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], FilterSelect.prototype, \"value\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"on\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FilterSelect.prototype, \"setText\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"getRootDomNode\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"defaultRenderer\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleDataSetReset\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], FilterSelect.prototype, \"handleDataSetUpdate\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleBlur\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleFieldChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleInput\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleFieldEnterDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], FilterSelect.prototype, \"handleEnterDown\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FilterSelect.prototype, \"setSelectField\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FilterSelect.prototype, \"setQueryValue\", null);\r\ntslib_1.__decorate([\r\n action\r\n], FilterSelect.prototype, \"clear\", null);\r\nFilterSelect = tslib_1.__decorate([\r\n observer\r\n], FilterSelect);\r\nexport default FilterSelect;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport Button from '../../button';\r\nimport TableContext from '../TableContext';\r\nimport { ButtonColor, FuncType } from '../../button/enum';\r\nimport { $l } from '../../locale-context';\r\nimport autobind from '../../_util/autobind';\r\nimport TableButtons from './TableButtons';\r\nimport FilterSelect from './FilterSelect';\r\nimport Modal from '../../modal';\r\nimport Form from '../../form/Form';\r\nimport { LabelLayout } from '../../form/enum';\r\nlet TableAdvancedQueryBar = class TableAdvancedQueryBar extends Component {\r\n componentWillUnmount() {\r\n if (this.modal) {\r\n this.modal.close(true);\r\n }\r\n }\r\n handleFieldEnter() {\r\n this.handleQuery();\r\n if (this.modal) {\r\n this.modal.close();\r\n }\r\n }\r\n handleQuery() {\r\n const { dataSet } = this.props;\r\n dataSet.query();\r\n }\r\n valueFilter(value) {\r\n const { queryFields, queryFieldsLimit } = this.props;\r\n return queryFields.slice(0, queryFieldsLimit).every(element => element.props.name !== value);\r\n }\r\n getMoreFieldsButton(fields) {\r\n if (fields.length) {\r\n return (<Button funcType={FuncType.raised} color={ButtonColor.primary} onClick={() => this.openMore(fields)}>\n {$l('Table', 'advanced_query')}\n </Button>);\r\n }\r\n }\r\n openMore(children) {\r\n this.modal = Modal.open({\r\n title: $l('Table', 'advanced_query'),\r\n children: <Form labelLayout={LabelLayout.float}>{children}</Form>,\r\n okText: $l('Table', 'query_button'),\r\n onOk: this.handleQuery,\r\n style: {\r\n width: pxToRem(380),\r\n },\r\n drawer: true,\r\n });\r\n }\r\n getResetButton() {\r\n return (<Button funcType={FuncType.raised} onClick={this.handleQueryReset}>\n {$l('Table', 'reset_button')}\n </Button>);\r\n }\r\n getQueryBar() {\r\n const { prefixCls, queryFieldsLimit, queryFields, buttons, queryDataSet } = this.props;\r\n if (queryDataSet && queryFields.length) {\r\n const currentFields = this.createFields(queryFields.slice(0, queryFieldsLimit), queryDataSet, false);\r\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit), queryDataSet, true);\r\n const moreFieldsButton = this.getMoreFieldsButton(moreFields);\r\n return (<div key=\"toolbar\" className={`${prefixCls}-advanced-query-bar`}>\n {currentFields}\n <span className={`${prefixCls}-advanced-query-bar-button`}>\n {this.getResetButton()}\n {moreFieldsButton}\n {buttons}\n </span>\n </div>);\r\n }\r\n }\r\n createFields(elements, dataSet, isMore) {\r\n return elements.map(element => {\r\n const { name, style } = element.props;\r\n const newStyle = {};\r\n if (!isMore) {\r\n newStyle.width = pxToRem(260);\r\n newStyle.marginRight = pxToRem(10);\r\n }\r\n const props = {\r\n onEnterDown: this.handleFieldEnter,\r\n labelLayout: LabelLayout.float,\r\n style: {\r\n marginRight: !isMore ? pxToRem(10) : 0,\r\n ...style,\r\n },\r\n };\r\n const field = dataSet.getField(name);\r\n if (field) {\r\n const label = field.get('label');\r\n if (label) {\r\n if (isMore) {\r\n props.label = label;\r\n }\r\n else {\r\n props.placeholder = label;\r\n }\r\n }\r\n }\r\n return cloneElement(element, props);\r\n });\r\n }\r\n handleQueryReset() {\r\n const { queryDataSet } = this.props;\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n current.reset();\r\n }\r\n this.handleQuery();\r\n }\r\n }\r\n getFilterSelect() {\r\n const { prefixCls, dataSet, queryDataSet } = this.props;\r\n return (<FilterSelect key=\"filter\" prefixCls={`${prefixCls}-filter-select`} className={`${prefixCls}-advanced-query-bar-options`} optionDataSet={dataSet} queryDataSet={queryDataSet} prefix={`${$l('Table', 'advanced_query_conditions')}:`} editable={false} filter={this.valueFilter} hiddenIfNone/>);\r\n }\r\n render() {\r\n const { buttons, prefixCls } = this.props;\r\n const queryBar = this.getQueryBar();\r\n if (queryBar) {\r\n return [queryBar, this.getFilterSelect()];\r\n }\r\n return <TableButtons key=\"toolbar\" prefixCls={prefixCls} buttons={buttons}/>;\r\n }\r\n};\r\nTableAdvancedQueryBar.contextType = TableContext;\r\nTableAdvancedQueryBar.defaultProps = {\r\n queryFieldsLimit: 1,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], TableAdvancedQueryBar.prototype, \"handleFieldEnter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableAdvancedQueryBar.prototype, \"handleQuery\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableAdvancedQueryBar.prototype, \"valueFilter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableAdvancedQueryBar.prototype, \"handleQueryReset\", null);\r\nTableAdvancedQueryBar = tslib_1.__decorate([\r\n observer\r\n], TableAdvancedQueryBar);\r\nexport default TableAdvancedQueryBar;\r\n","import React from 'react';\r\nexport default function TableButtons({ prefixCls, buttons, children }) {\r\n const buttonGroup = buttons.length ? (<span className={`${prefixCls}-toolbar-button-group`}>{buttons}</span>) : null;\r\n if (buttonGroup || children) {\r\n return (<div className={`${prefixCls}-toolbar`}>\n {buttonGroup}\n {children}\n </div>);\r\n }\r\n return null;\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport FilterSelect from './FilterSelect';\r\nimport ColumnFilter from './ColumnFilter';\r\nimport { $l } from '../../locale-context';\r\nexport default class TableFilterBar extends PureComponent {\r\n renderSuffix() {\r\n const { prefixCls } = this.props;\r\n return <ColumnFilter prefixCls={prefixCls}/>;\r\n }\r\n getButtons() {\r\n const { prefixCls, buttons } = this.props;\r\n if (buttons.length) {\r\n return (<div key=\"toolbar\" className={`${prefixCls}-toolbar`}>\n <span className={`${prefixCls}-toolbar-button-group`}>{buttons}</span>\n </div>);\r\n }\r\n }\r\n render() {\r\n const { prefixCls, dataSet, queryDataSet, paramName, placeholder = $l('Table', 'filter_bar_placeholder'), pagination, } = this.props;\r\n const buttons = this.getButtons();\r\n return [\r\n buttons,\r\n pagination,\r\n <FilterSelect key=\"filter\" prefixCls={`${prefixCls}-filter-select`} optionDataSet={dataSet} queryDataSet={queryDataSet} placeholder={placeholder} suffix={this.renderSuffix()} paramName={paramName}/>,\r\n ];\r\n }\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport Button from '../../button/Button';\r\nimport { ButtonColor, FuncType } from '../../button/enum';\r\nimport Modal from '../../modal';\r\nimport Form from '../../form/Form';\r\nimport Icon from '../../icon';\r\nimport TableContext from '../TableContext';\r\nimport { $l } from '../../locale-context';\r\nimport autobind from '../../_util/autobind';\r\nimport TableButtons from './TableButtons';\r\n/**\r\n * 去除级联字段\r\n *\r\n * @export\r\n * @param {Fields} fields 待筛选的字段数组\r\n * @returns {{ [key: string]: Field }} 不含级联字段的字段数组\r\n */\r\nexport function filterBindField(fields) {\r\n return [...fields.entries()].reduce((newFields, [key, field]) => {\r\n if (!field.get('bind')) {\r\n newFields[key] = field;\r\n }\r\n return newFields;\r\n }, {});\r\n}\r\nlet TableToolBar = class TableToolBar extends Component {\r\n handleFieldEnter() {\r\n this.handleQuery();\r\n if (this.modal) {\r\n this.modal.close();\r\n }\r\n }\r\n handleQueryReset() {\r\n const { queryDataSet } = this.props;\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n current.reset();\r\n }\r\n this.handleQuery();\r\n }\r\n }\r\n handleQuery() {\r\n const { dataSet } = this.props;\r\n dataSet.query();\r\n }\r\n componentWillUnmount() {\r\n if (this.modal) {\r\n this.modal.close(true);\r\n }\r\n }\r\n getQueryBar() {\r\n const { prefixCls, queryFieldsLimit, queryFields, queryDataSet } = this.props;\r\n if (queryDataSet && queryFields.length) {\r\n const currentFields = this.createFields(queryFields.slice(0, queryFieldsLimit), queryDataSet, false);\r\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit), queryDataSet, true);\r\n let more;\r\n let dirtyInfo;\r\n if (moreFields.length) {\r\n more = this.getMoreButton(moreFields);\r\n dirtyInfo = this.getDirtyInfo(queryDataSet.current, moreFields);\r\n }\r\n return (<span className={`${prefixCls}-query-bar`}>\n {dirtyInfo}\n {currentFields}\n <Button color={ButtonColor.primary} onClick={this.handleQuery}>\n {$l('Table', 'query_button')}\n </Button>\n {more}\n </span>);\r\n }\r\n }\r\n getDirtyInfo(current, moreFields) {\r\n if (current &&\r\n moreFields.some(element => {\r\n const { name } = element.props;\r\n const field = current.getField(name);\r\n return field ? field.dirty : false;\r\n })) {\r\n const { prefixCls } = this.props;\r\n return (<span className={`${prefixCls}-query-bar-dirty-info`}>\n <Icon type=\"info\"/>\n <span>{$l('Table', 'dirty_info')}</span>\n <a onClick={this.handleQueryReset}>{$l('Table', 'restore')}</a>\n </span>);\r\n }\r\n }\r\n getMoreButton(moreFields) {\r\n return (<Button color={ButtonColor.primary} funcType={FuncType.flat} onClick={() => this.openMore(moreFields)}>\n {$l('Table', 'advanced_search')}\n </Button>);\r\n }\r\n createFields(elements, dataSet, isMore) {\r\n return elements.map((element, index) => {\r\n const { name } = element.props;\r\n const props = {\r\n autoFocus: isMore && index === 0,\r\n onEnterDown: this.handleFieldEnter,\r\n style: isMore ? undefined : { width: pxToRem(130) },\r\n };\r\n const field = dataSet.getField(name);\r\n if (field) {\r\n const label = field.get('label');\r\n if (label) {\r\n if (isMore) {\r\n props.label = label;\r\n }\r\n else {\r\n props.placeholder = label;\r\n }\r\n }\r\n }\r\n return cloneElement(element, props);\r\n });\r\n }\r\n openMore(children) {\r\n this.modal = Modal.open({\r\n title: $l('Table', 'advanced_search'),\r\n children: <Form>{children}</Form>,\r\n okText: $l('Table', 'query_button'),\r\n onOk: this.handleQuery,\r\n style: {\r\n width: pxToRem(400),\r\n },\r\n drawer: true,\r\n });\r\n }\r\n render() {\r\n const { prefixCls, pagination = null, buttons } = this.props;\r\n return [\r\n <TableButtons key=\"toolbar\" prefixCls={prefixCls} buttons={buttons}>\n {this.getQueryBar()}\n </TableButtons>,\r\n pagination,\r\n ];\r\n }\r\n};\r\nTableToolBar.displayName = 'TableToolBar';\r\nTableToolBar.contextType = TableContext;\r\nTableToolBar.defaultProps = {\r\n queryFieldsLimit: 1,\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], TableToolBar.prototype, \"handleFieldEnter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableToolBar.prototype, \"handleQueryReset\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableToolBar.prototype, \"handleQuery\", null);\r\nTableToolBar = tslib_1.__decorate([\r\n observer\r\n], TableToolBar);\r\nexport default TableToolBar;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { cloneElement, Component, isValidElement } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { isArrayLike } from 'mobx';\r\nimport isObject from 'lodash/isObject';\r\nimport isString from 'lodash/isString';\r\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport { TableButtonType, TableQueryBarType } from '../enum';\r\nimport TableButtons from './TableButtons';\r\nimport Table from '../Table';\r\nimport Button from '../../button/Button';\r\nimport { ButtonColor, ButtonType, FuncType } from '../../button/enum';\r\nimport { DataSetStatus, FieldType } from '../../data-set/enum';\r\nimport { $l } from '../../locale-context';\r\nimport TableContext from '../TableContext';\r\nimport autobind from '../../_util/autobind';\r\nimport DataSet from '../../data-set';\r\nimport Modal from '../../modal';\r\nimport Column from '../Column';\r\nimport { getEditorByField } from '../utils';\r\nimport TableToolBar from './TableToolBar';\r\nimport TableFilterBar from './TableFilterBar';\r\nimport TableAdvancedQueryBar from './TableAdvancedQueryBar';\r\nimport { findBindFieldBy } from '../../data-set/utils';\r\nlet TableQueryBar = class TableQueryBar extends Component {\r\n get showQueryBar() {\r\n const { props: { showQueryBar }, context: { tableStore: { queryBar }, }, } = this;\r\n return showQueryBar !== false && queryBar !== TableQueryBarType.none;\r\n }\r\n componentWillUnmount() {\r\n if (this.exportModal) {\r\n this.exportModal.close(true);\r\n }\r\n }\r\n handleButtonCreate() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.create({}, 0);\r\n }\r\n handleButtonSubmit() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.submit();\r\n }\r\n handleButtonDelete() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.delete(dataSet.selected);\r\n }\r\n handleButtonRemove() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.remove(dataSet.selected);\r\n }\r\n handleButtonReset() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.reset();\r\n }\r\n handleQueryReset() {\r\n const { tableStore: { dataSet: { queryDataSet }, }, } = this.context;\r\n if (queryDataSet) {\r\n const { current } = queryDataSet;\r\n if (current) {\r\n current.reset();\r\n }\r\n this.handleQuery();\r\n }\r\n }\r\n handleExpandAll() {\r\n const { tableStore } = this.context;\r\n tableStore.expandAll();\r\n }\r\n handleCollapseAll() {\r\n const { tableStore } = this.context;\r\n tableStore.collapseAll();\r\n }\r\n async handleButtonExport() {\r\n const { tableStore } = this.context;\r\n const columnHeaders = await tableStore.getColumnHeaders();\r\n this.exportDataSet = new DataSet({ data: columnHeaders, paging: false });\r\n this.exportDataSet.selectAll();\r\n this.exportModal = Modal.open({\r\n title: $l('Table', 'choose_export_columns'),\r\n children: (<Table dataSet={this.exportDataSet} style={{ height: pxToRem(300) }}>\n <Column header={$l('Table', 'column_name')} name=\"label\" resizable={false}/>\n </Table>),\r\n okText: $l('Table', 'export_button'),\r\n onOk: this.handleExport,\r\n style: {\r\n width: pxToRem(400),\r\n },\r\n });\r\n }\r\n handleQuery() {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.query();\r\n }\r\n handleExport() {\r\n const { selected } = this.exportDataSet;\r\n if (selected.length) {\r\n const { tableStore: { dataSet }, } = this.context;\r\n dataSet.export(selected.reduce((columns, record) => {\r\n let myName = record.get('name');\r\n const myField = dataSet.getField(myName);\r\n if (myField && myField.type === FieldType.object) {\r\n const bindField = findBindFieldBy(myField, dataSet.fields, 'textField');\r\n if (bindField) {\r\n myName = bindField.name;\r\n }\r\n }\r\n columns[myName] = record.get('label');\r\n return columns;\r\n }, {}));\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n getButtonProps(type) {\r\n const { tableStore: { isTree, dataSet }, } = this.context;\r\n const disabled = dataSet.status !== DataSetStatus.ready;\r\n switch (type) {\r\n case TableButtonType.add:\r\n return {\r\n icon: 'playlist_add',\r\n onClick: this.handleButtonCreate,\r\n children: $l('Table', 'create_button'),\r\n disabled: disabled || (dataSet.parent ? !dataSet.parent.current : false),\r\n };\r\n case TableButtonType.save:\r\n return {\r\n icon: 'save',\r\n onClick: this.handleButtonSubmit,\r\n children: $l('Table', 'save_button'),\r\n type: ButtonType.submit,\r\n disabled,\r\n };\r\n case TableButtonType.delete:\r\n return {\r\n icon: 'delete',\r\n onClick: this.handleButtonDelete,\r\n children: $l('Table', 'delete_button'),\r\n disabled: disabled || dataSet.selected.length === 0,\r\n };\r\n case TableButtonType.remove:\r\n return {\r\n icon: 'remove_circle',\r\n onClick: this.handleButtonRemove,\r\n children: $l('Table', 'remove_button'),\r\n disabled: disabled || dataSet.selected.length === 0,\r\n };\r\n case TableButtonType.reset:\r\n return {\r\n icon: 'undo',\r\n onClick: this.handleButtonReset,\r\n children: $l('Table', 'reset_button'),\r\n type: ButtonType.reset,\r\n };\r\n case TableButtonType.query:\r\n return { icon: 'search', onClick: this.handleQuery, children: $l('Table', 'query_button') };\r\n case TableButtonType.export:\r\n return {\r\n icon: 'export',\r\n onClick: this.handleButtonExport,\r\n children: $l('Table', 'export_button'),\r\n };\r\n case TableButtonType.expandAll:\r\n return isTree\r\n ? {\r\n icon: 'add_box',\r\n onClick: this.handleExpandAll,\r\n children: $l('Table', 'expand_button'),\r\n }\r\n : undefined;\r\n case TableButtonType.collapseAll:\r\n return isTree\r\n ? {\r\n icon: 'short_text',\r\n onClick: this.handleCollapseAll,\r\n children: $l('Table', 'collapse_button'),\r\n }\r\n : undefined;\r\n default:\r\n }\r\n }\r\n getButtons() {\r\n const { buttons } = this.props;\r\n const children = [];\r\n if (buttons) {\r\n buttons.forEach(button => {\r\n let props = {};\r\n if (isArrayLike(button)) {\r\n props = button[1];\r\n button = button[0];\r\n }\r\n if (isString(button) && button in TableButtonType) {\r\n const defaultButtonProps = this.getButtonProps(button);\r\n if (defaultButtonProps) {\r\n children.push(<Button color={ButtonColor.primary} funcType={FuncType.flat} key={button} {...defaultButtonProps} {...props}/>);\r\n }\r\n }\r\n else if (isValidElement(button)) {\r\n children.push(button);\r\n }\r\n });\r\n }\r\n return children;\r\n }\r\n getQueryFields() {\r\n const { context: { tableStore: { dataSet }, }, props: { queryFields }, } = this;\r\n const { queryDataSet } = dataSet;\r\n const result = [];\r\n if (queryDataSet) {\r\n const { fields } = queryDataSet;\r\n return [...fields.entries()].reduce((list, [name, field]) => {\r\n if (!field.get('bind')) {\r\n const props = {\r\n key: name,\r\n name,\r\n dataSet: queryDataSet,\r\n };\r\n const element = queryFields[name];\r\n list.push(isValidElement(element)\r\n ? cloneElement(element, props)\r\n : cloneElement(getEditorByField(field), {\r\n ...props,\r\n ...(isObject(element) ? element : {}),\r\n }));\r\n }\r\n return list;\r\n }, result);\r\n }\r\n return result;\r\n }\r\n renderToolBar(props) {\r\n const { prefixCls } = this.props;\r\n return <TableToolBar key=\"toolbar\" prefixCls={prefixCls} {...props}/>;\r\n }\r\n renderFilterBar(props) {\r\n const { props: { prefixCls, filterBarFieldName, filterBarPlaceholder }, } = this;\r\n return (<TableFilterBar key=\"toolbar\" prefixCls={prefixCls} paramName={filterBarFieldName} placeholder={filterBarPlaceholder} {...props}/>);\r\n }\r\n renderAdvancedQueryBar(props) {\r\n const { prefixCls } = this.props;\r\n return <TableAdvancedQueryBar key=\"toolbar\" prefixCls={prefixCls} {...props}/>;\r\n }\r\n render() {\r\n const buttons = this.getButtons();\r\n const { context: { tableStore: { dataSet, queryBar }, }, props: { queryFieldsLimit, prefixCls, pagination }, showQueryBar, } = this;\r\n if (showQueryBar) {\r\n const { queryDataSet } = dataSet;\r\n const queryFields = this.getQueryFields();\r\n const props = {\r\n dataSet,\r\n queryDataSet,\r\n buttons,\r\n pagination,\r\n queryFields,\r\n queryFieldsLimit: queryFieldsLimit,\r\n };\r\n if (typeof queryBar === 'function') {\r\n return queryBar(props);\r\n }\r\n switch (queryBar) {\r\n case TableQueryBarType.normal:\r\n return this.renderToolBar(props);\r\n case TableQueryBarType.bar:\r\n return this.renderFilterBar(props);\r\n case TableQueryBarType.advancedBar:\r\n return this.renderAdvancedQueryBar(props);\r\n default:\r\n }\r\n }\r\n return [<TableButtons key=\"toolbar\" prefixCls={prefixCls} buttons={buttons}/>, pagination];\r\n }\r\n};\r\nTableQueryBar.displayName = 'TableQueryBar';\r\nTableQueryBar.contextType = TableContext;\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonCreate\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonSubmit\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonDelete\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonRemove\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonReset\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleQueryReset\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleExpandAll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleCollapseAll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleButtonExport\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleQuery\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TableQueryBar.prototype, \"handleExport\", null);\r\nTableQueryBar = tslib_1.__decorate([\r\n observer\r\n], TableQueryBar);\r\nexport default TableQueryBar;\r\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../output/style';\r\nimport '../../button/style';\r\nimport '../../radio/style';\r\nimport '../../check-box/style';\r\nimport '../../text-field/style';\r\nimport '../../number-field/style';\r\nimport '../../lov/style';\r\nimport '../../select/style';\r\nimport '../../date-picker/style';\r\nimport '../../spin/style';\r\nimport '../../pagination/style';\r\nimport '../../modal-container/style';\r\nimport '../../tooltip/style';\r\nimport '../../validator/style';\r\nimport '../../switch/style';\r\nimport '../../menu/style';\r\nimport './filter-select.less';\r\n","import React, { isValidElement } from 'react';\r\nimport isString from 'lodash/isString';\r\nimport warning from 'choerodon-ui/lib/_util/warning';\r\nimport ObserverCheckBox from '../check-box/CheckBox';\r\nimport Switch from '../switch/Switch';\r\nimport ObserverRadio from '../radio/Radio';\r\nimport { FieldType, RecordStatus } from '../data-set/enum';\r\nimport ObserverSelect from '../select/Select';\r\nimport SelectBox from '../select-box/SelectBox';\r\nimport Lov from '../lov/Lov';\r\nimport ObserverNumberField from '../number-field/NumberField';\r\nimport Currency from '../currency/Currency';\r\nimport DatePicker from '../date-picker/DatePicker';\r\nimport DateTimePicker from '../date-time-picker/DateTimePicker';\r\nimport WeekPicker from '../week-picker/WeekPicker';\r\nimport MonthPicker from '../month-picker/MonthPicker';\r\nimport YearPicker from '../year-picker/YearPicker';\r\nimport ObserverTextField from '../text-field/TextField';\r\nimport { ColumnAlign, ColumnLock, TablePaginationPosition } from './enum';\r\nimport IntlField from '../intl-field/IntlField';\r\nimport UrlField from '../url-field/UrlField';\r\nimport EmailField from '../email-field/EmailField';\r\nimport ColorPicker from '../color-picker/ColorPicker';\r\nexport function getEditorByField(field) {\r\n const lookupCode = field.get('lookupCode');\r\n const lookupUrl = field.get('lookupUrl');\r\n const lovCode = field.get('lovCode');\r\n const { type, name } = field;\r\n if (lookupCode ||\r\n isString(lookupUrl) ||\r\n (lovCode && type !== FieldType.object) ||\r\n field.getOptions()) {\r\n return <ObserverSelect />;\r\n }\r\n if (lovCode) {\r\n return <Lov />;\r\n }\r\n switch (type) {\r\n case FieldType.boolean:\r\n return <ObserverCheckBox />;\r\n case FieldType.number:\r\n return <ObserverNumberField />;\r\n case FieldType.currency:\r\n return <Currency />;\r\n case FieldType.date:\r\n return <DatePicker />;\r\n case FieldType.dateTime:\r\n return <DateTimePicker />;\r\n case FieldType.week:\r\n return <WeekPicker />;\r\n case FieldType.month:\r\n return <MonthPicker />;\r\n case FieldType.year:\r\n return <YearPicker />;\r\n case FieldType.intl:\r\n return <IntlField />;\r\n case FieldType.email:\r\n return <EmailField />;\r\n case FieldType.url:\r\n return <UrlField />;\r\n case FieldType.color:\r\n return <ColorPicker />;\r\n case FieldType.string:\r\n return <ObserverTextField />;\r\n default:\r\n warning(false, `Table auto editor: No editor exists on the field<${name}>'s type<${type}>, so use the TextField as default editor`);\r\n return <ObserverTextField />;\r\n }\r\n}\r\nexport function getAlignByField(field) {\r\n if (field) {\r\n const { type } = field;\r\n switch (type) {\r\n case FieldType.number:\r\n return ColumnAlign.right;\r\n case FieldType.boolean:\r\n return ColumnAlign.center;\r\n default:\r\n }\r\n }\r\n}\r\nexport function getEditorByColumnAndRecord(column, record) {\r\n const { name, editor } = column;\r\n if (record) {\r\n let cellEditor = editor;\r\n if (typeof editor === 'function') {\r\n cellEditor = editor(record, name);\r\n }\r\n if (cellEditor === true) {\r\n const field = record.getField(name);\r\n if (field) {\r\n if (!field.get('unique') ||\r\n field.get('multiple') ||\r\n field.get('range') ||\r\n record.status === RecordStatus.add) {\r\n return getEditorByField(field);\r\n }\r\n }\r\n }\r\n if (isValidElement(cellEditor)) {\r\n return cellEditor;\r\n }\r\n }\r\n}\r\nexport function isRadio(element) {\r\n if (element) {\r\n switch (element.type) {\r\n case ObserverCheckBox:\r\n case ObserverRadio:\r\n case Switch:\r\n case SelectBox:\r\n return true;\r\n default:\r\n }\r\n }\r\n return false;\r\n}\r\nexport function findCell(tableStore, prefixCls, name, lock) {\r\n const { node, dataSet, overflowX, currentEditRecord } = tableStore;\r\n const current = currentEditRecord || dataSet.current;\r\n const tableCellPrefixCls = `${prefixCls}-cell`;\r\n if (name !== undefined && current) {\r\n const wrapperSelector = overflowX && lock ? `.${prefixCls}-fixed-${lock === true ? ColumnLock.left : lock} ` : '';\r\n const selector = `${wrapperSelector}tr[data-index=\"${current.id}\"] td[data-index=\"${name}\"] span.${tableCellPrefixCls}-inner`;\r\n return node.element.querySelector(selector);\r\n }\r\n}\r\nexport function findFirstFocusableElement(node) {\r\n if (node.children) {\r\n let found;\r\n [...node.children].some(child => {\r\n if (child.tabIndex > -1) {\r\n found = child;\r\n }\r\n else {\r\n found = findFirstFocusableElement(child);\r\n }\r\n return !!found;\r\n });\r\n return found;\r\n }\r\n}\r\nexport function findIndexedSibling(element, direction) {\r\n const sibling = direction > 0 ? element.nextElementSibling : element.previousElementSibling;\r\n if (!sibling ||\r\n ('index' in sibling.dataset &&\r\n !sibling.getAttributeNodeNS('', 'disabled') &&\r\n (!document.defaultView || document.defaultView.getComputedStyle(sibling).display !== 'none'))) {\r\n return sibling;\r\n }\r\n return findIndexedSibling(sibling, direction);\r\n}\r\nexport function isDisabledRow(record) {\r\n return record.isCached || record.status === RecordStatus.delete;\r\n}\r\nexport function getHeader(column, dataSet) {\r\n const { header, name } = column;\r\n if (typeof header === 'function') {\r\n return header(dataSet, name);\r\n }\r\n if (header !== undefined) {\r\n return header;\r\n }\r\n const field = dataSet.getField(name);\r\n if (field) {\r\n return field.get('label');\r\n }\r\n}\r\nexport function getColumnKey({ name, key }) {\r\n return key || name;\r\n}\r\nexport function getPaginationPosition(pagination) {\r\n if (pagination) {\r\n const { position } = pagination;\r\n if (position) {\r\n return position;\r\n }\r\n }\r\n return TablePaginationPosition.bottom;\r\n}\r\nexport function getHeight(el) {\r\n return el.getBoundingClientRect().height;\r\n}\r\n","import Tabs from 'choerodon-ui/lib/tabs';\r\nexport default Tabs;\r\n","import 'choerodon-ui/lib/tabs/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport isString from 'lodash/isString';\r\nimport omit from 'lodash/omit';\r\nimport PropTypes from 'prop-types';\r\nimport { TextField } from '../text-field/TextField';\r\nimport { ResizeType } from './enum';\r\nlet TextArea = class TextArea extends TextField {\r\n getOtherProps() {\r\n const { resize } = this.props;\r\n const otherProps = omit(super.getOtherProps(), ['resize']);\r\n const { style = {} } = otherProps;\r\n style.resize = resize;\r\n if (resize !== ResizeType.none) {\r\n style.transition = 'none';\r\n }\r\n otherProps.style = style;\r\n return otherProps;\r\n }\r\n renderWrapper() {\r\n const text = this.getTextNode();\r\n return (<div key=\"wrapper\" {...this.getWrapperProps()}>\n {this.renderPlaceHolder()}\n <label>\n <textarea {...this.getOtherProps()} readOnly={!this.editable} value={isString(text) ? text : this.getText(this.getValue())}/>\n {this.renderFloatLabel()}\n </label>\n </div>);\r\n }\r\n handleEnterDown() { }\r\n};\r\nTextArea.displayName = 'TextArea';\r\nTextArea.propTypes = {\r\n cols: PropTypes.number,\r\n rows: PropTypes.number,\r\n resize: PropTypes.oneOf([\r\n ResizeType.vertical,\r\n ResizeType.horizontal,\r\n ResizeType.none,\r\n ResizeType.both,\r\n ]),\r\n ...TextField.propTypes,\r\n};\r\nTextArea.defaultProps = {\r\n ...TextField.defaultProps,\r\n suffixCls: 'textarea',\r\n resize: ResizeType.none,\r\n rows: 4,\r\n};\r\nTextArea = tslib_1.__decorate([\r\n observer\r\n], TextArea);\r\nexport default TextArea;\r\n","export var ResizeType;\r\n(function (ResizeType) {\r\n ResizeType[\"both\"] = \"both\";\r\n ResizeType[\"vertical\"] = \"vertical\";\r\n ResizeType[\"horizontal\"] = \"horizontal\";\r\n ResizeType[\"none\"] = \"none\";\r\n})(ResizeType || (ResizeType = {}));\r\n","import TextArea from './TextArea';\r\nexport default TextArea;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../field/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { createElement, isValidElement } from 'react';\r\nimport omit from 'lodash/omit';\r\nimport defer from 'lodash/defer';\r\nimport isArray from 'lodash/isArray';\r\nimport isString from 'lodash/isString';\r\nimport noop from 'lodash/noop';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { action, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\r\nimport { pxToRem, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\r\nimport { FormField } from '../field/FormField';\r\nimport autobind from '../_util/autobind';\r\nimport isEmpty from '../_util/isEmpty';\r\nimport Icon from '../icon';\r\nimport { preventDefault, stopPropagation } from '../_util/EventManager';\r\nimport measureTextWidth from '../_util/measureTextWidth';\r\nimport Animate from '../animate';\r\nimport Tooltip from '../tooltip/Tooltip';\r\nimport { GroupItemCategory } from './enum';\r\nimport { ShowHelp } from '../field/enum';\r\nimport { FieldFormat } from '../data-set/enum';\r\nlet PLACEHOLDER_SUPPORT;\r\nexport function isPlaceHolderSupport() {\r\n if (PLACEHOLDER_SUPPORT !== undefined) {\r\n return PLACEHOLDER_SUPPORT;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return (PLACEHOLDER_SUPPORT = 'placeholder' in document.createElement('input'));\r\n }\r\n return true;\r\n}\r\nexport class TextField extends FormField {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'text';\r\n }\r\n saveTagContainer(node) {\r\n this.tagContainer = node;\r\n }\r\n isEmpty() {\r\n return isEmpty(this.text) && super.isEmpty();\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'prefix',\r\n 'suffix',\r\n 'clearButton',\r\n 'addonBefore',\r\n 'addonAfter',\r\n 'restrict',\r\n 'placeholder',\r\n 'placeHolder',\r\n ]);\r\n otherProps.type = this.type;\r\n otherProps.maxLength = this.getProp('maxLength');\r\n otherProps.onKeyDown = this.handleKeyDown;\r\n return otherProps;\r\n }\r\n getValidatorProps() {\r\n const pattern = this.getProp('pattern');\r\n const maxLength = this.getProp('maxLength');\r\n const minLength = this.getProp('minLength');\r\n return {\r\n ...super.getValidatorProps(),\r\n pattern,\r\n maxLength,\r\n minLength,\r\n };\r\n }\r\n getWrapperClassNames(...args) {\r\n const { prefixCls, multiple, range } = this;\r\n const suffix = this.getSuffix();\r\n const prefix = this.getPrefix();\r\n return super.getWrapperClassNames({\r\n [`${prefixCls}-empty`]: this.isEmpty(),\r\n [`${prefixCls}-suffix-button`]: isValidElement(suffix),\r\n [`${prefixCls}-multiple`]: multiple,\r\n [`${prefixCls}-range`]: range,\r\n [`${prefixCls}-prefix-button`]: isValidElement(prefix),\r\n }, ...args);\r\n }\r\n renderWrapper() {\r\n return this.renderGroup();\r\n }\r\n renderInputElement() {\r\n const input = this.getWrappedEditor();\r\n const button = this.getInnerSpanButton();\r\n const suffix = this.getSuffix();\r\n const prefix = this.getPrefix();\r\n const otherPrevNode = this.getOtherPrevNode();\r\n const otherNextNode = this.getOtherNextNode();\r\n const placeholderDiv = this.renderPlaceHolder();\r\n const renderedValue = this.renderRenderedValue();\r\n const floatLabel = this.renderFloatLabel();\r\n const multipleHolder = this.renderMultipleHolder();\r\n return (<span key=\"element\" {...this.getWrapperProps()}>\n {multipleHolder}\n {otherPrevNode}\n {placeholderDiv}\n {renderedValue}\n <label onMouseDown={this.handleMouseDown}>\n {prefix}\n {input}\n {floatLabel}\n {button}\n {suffix}\n </label>\n {otherNextNode}\n </span>);\r\n }\r\n renderGroup() {\r\n const { prefixCls, props: { addonBefore, addonAfter, showHelp }, } = this;\r\n const inputElement = this.renderInputElement();\r\n const help = showHelp === ShowHelp.tooltip ? this.renderTooltipHelp() : null;\r\n if (!addonBefore && !addonAfter && !help) {\r\n return inputElement;\r\n }\r\n const classString = classNames(`${prefixCls}-group`, {\r\n [`${prefixCls}-float-label-group`]: this.hasFloatLabel,\r\n });\r\n return (<div key=\"wrapper\" className={`${prefixCls}-group-wrapper`}>\n <div {...this.getWrapperProps()} className={classString}>\n {this.wrapGroupItem(addonBefore, GroupItemCategory.before)}\n {this.wrapGroupItem(inputElement, GroupItemCategory.input)}\n {this.wrapGroupItem(help, GroupItemCategory.help)}\n {this.wrapGroupItem(addonAfter, GroupItemCategory.after)}\n </div>\n </div>);\r\n }\r\n renderTooltipHelp() {\r\n return (<Tooltip title={this.getProp('help')} placement=\"bottom\">\n <Icon type=\"help\"/>\n </Tooltip>);\r\n }\r\n getPlaceholders() {\r\n const { placeholder } = this.props;\r\n const holders = [];\r\n return placeholder ? holders.concat(placeholder) : holders;\r\n }\r\n getLabel() {\r\n const [placeholder] = this.getPlaceholders();\r\n if (this.isEmpty() && placeholder) {\r\n return placeholder;\r\n }\r\n return this.getProp('label');\r\n }\r\n wrapGroupItem(node, category) {\r\n const { prefixCls } = this;\r\n if (!node) {\r\n return null;\r\n }\r\n return <div className={`${prefixCls}-group-${category}`}>{node}</div>;\r\n }\r\n renderRangeEditor(props) {\r\n const { prefixCls, rangeTarget, isFocused } = this;\r\n const [startPlaceholder, endPlaceHolder = startPlaceholder] = this.getPlaceholders();\r\n const [startValue = '', endValue = ''] = this.processRangeValue();\r\n const editorStyle = {};\r\n if (rangeTarget === 1) {\r\n editorStyle.right = 0;\r\n }\r\n else {\r\n editorStyle.left = 0;\r\n }\r\n return (<span key=\"text\" className={`${prefixCls}-range-text`}>\n <input tabIndex={-1} className={`${prefixCls}-range-start`} onChange={noop} onMouseDown={this.handleRangeStart} value={rangeTarget === 0 && isFocused ? '' : startValue} placeholder={rangeTarget === 0 && isFocused ? '' : startPlaceholder} readOnly/>\n <span className={`${prefixCls}-range-split`}>~</span>\n <input tabIndex={-1} className={`${prefixCls}-range-end`} onChange={noop} onMouseDown={this.handleRangeEnd} value={rangeTarget === 1 && isFocused ? '' : endValue} placeholder={rangeTarget === 1 && isFocused ? '' : endPlaceHolder} readOnly/>\n <input {...props} className={`${prefixCls}-range-input`} key=\"text\" value={rangeTarget === undefined || !this.isFocused\r\n ? ''\r\n : rangeTarget === 0\r\n ? startValue\r\n : endValue} placeholder={rangeTarget === undefined || !this.isFocused\r\n ? ''\r\n : rangeTarget === 0\r\n ? startPlaceholder\r\n : endPlaceHolder} readOnly={!this.editable} style={editorStyle}/>\n </span>);\r\n }\r\n renderMultipleEditor(props) {\r\n const { style } = this.props;\r\n const { text } = this;\r\n const editorStyle = {};\r\n if (!this.editable) {\r\n editorStyle.position = 'absolute';\r\n editorStyle.left = 0;\r\n editorStyle.top = 0;\r\n editorStyle.zIndex = -1;\r\n props.readOnly = true;\r\n }\r\n else if (text) {\r\n editorStyle.width = pxToRem(measureTextWidth(text, style));\r\n }\r\n return (<li key=\"text\">\n <input {...props} value={text || ''} style={editorStyle}/>\n </li>);\r\n }\r\n getWrappedEditor() {\r\n return this.getEditor();\r\n }\r\n getClassName(...props) {\r\n const { prefixCls, format } = this;\r\n return super.getClassName({\r\n [`${prefixCls}-${format}`]: [\r\n FieldFormat.uppercase,\r\n FieldFormat.lowercase,\r\n FieldFormat.capitalize,\r\n ].includes(format),\r\n }, ...props);\r\n }\r\n getEditor() {\r\n const { prefixCls, multiple, range, props: { style }, } = this;\r\n const otherProps = this.getOtherProps();\r\n const { height } = (style || {});\r\n if (multiple) {\r\n return (<div key=\"text\" className={otherProps.className}>\n <Animate component=\"ul\" componentProps={{\r\n ref: this.saveTagContainer,\r\n onScroll: stopPropagation,\r\n style: height && height !== 'auto' ? { height: pxToRem(toPx(height) - 2) } : undefined,\r\n }} transitionName=\"zoom\" exclusive onEnd={this.handleTagAnimateEnd} onEnter={this.handleTagAnimateEnter}>\n {this.renderMultipleValues()}\n {range\r\n ? this.renderRangeEditor(otherProps)\r\n : this.renderMultipleEditor({\r\n ...otherProps,\r\n className: `${prefixCls}-multiple-input`,\r\n })}\n </Animate>\n </div>);\r\n }\r\n if (range) {\r\n return (<span key=\"text\" className={otherProps.className}>\n {this.renderRangeEditor(otherProps)}\n </span>);\r\n }\r\n const text = this.getTextNode();\r\n if (isValidElement(text)) {\r\n otherProps.style = { ...otherProps.style, textIndent: -1000 };\r\n }\r\n return (<input key=\"text\" {...otherProps} placeholder={this.hasFloatLabel ? undefined : this.getPlaceholders()[0]} value={isString(text) ? text : this.getText(this.getValue())} readOnly={!this.editable}/>);\r\n }\r\n getSuffix() {\r\n const { suffix = this.getDefaultSuffix() } = this.props;\r\n if (suffix) {\r\n return this.wrapperSuffix(suffix);\r\n }\r\n }\r\n getDefaultSuffix() {\r\n return undefined;\r\n }\r\n wrapperSuffix(children, props) {\r\n const { prefixCls } = this;\r\n if (isValidElement(children)) {\r\n const { type } = children;\r\n const { onClick, ...otherProps } = children.props;\r\n if (onClick) {\r\n children = createElement(type, otherProps);\r\n props = {\r\n onClick,\r\n ...props,\r\n };\r\n }\r\n }\r\n return (<div className={`${prefixCls}-suffix`} onMouseDown={preventDefault} {...props}>\n {children}\n </div>);\r\n }\r\n getPrefix() {\r\n const { prefix } = this.props;\r\n if (prefix) {\r\n return this.wrapperPrefix(prefix);\r\n }\r\n }\r\n wrapperPrefix(children) {\r\n const { prefixCls } = this;\r\n return <div className={`${prefixCls}-prefix`}>{children}</div>;\r\n }\r\n renderMultipleHolder() {\r\n const { name, multiple } = this;\r\n if (multiple) {\r\n return (<input key=\"value\" className={`${this.prefixCls}-multiple-value`} value={this.toValueString(this.getValue()) || ''} name={name} onChange={noop}/>);\r\n }\r\n }\r\n getOtherPrevNode() {\r\n return undefined;\r\n }\r\n getOtherNextNode() {\r\n return undefined;\r\n }\r\n renderPlaceHolder() {\r\n if ((this.multiple || !isPlaceHolderSupport()) && !this.hasFloatLabel && !this.range) {\r\n return this.getPlaceHolderNode();\r\n }\r\n }\r\n renderRenderedValue() {\r\n const { prefixCls, range, multiple } = this;\r\n if (!range && !multiple) {\r\n const text = this.getTextNode();\r\n if ((!this.isFocused || !this.editable) && isValidElement(text)) {\r\n return (<span key=\"renderedText\" className={`${prefixCls}-rendered-value`}>\n <span className={`${prefixCls}-rendered-value-inner`}>{text}</span>\n </span>);\r\n }\r\n }\r\n }\r\n getPlaceHolderNode() {\r\n const { prefixCls } = this;\r\n const [placeholder] = this.getPlaceholders();\r\n if (placeholder) {\r\n return <div className={`${prefixCls}-placeholder`}>{placeholder}</div>;\r\n }\r\n }\r\n getInnerSpanButton() {\r\n const { props: { clearButton }, prefixCls, } = this;\r\n if (clearButton && !this.isReadOnly()) {\r\n return this.wrapperInnerSpanButton(<Icon type=\"close\" onClick={this.handleClearButtonClick}/>, {\r\n className: `${prefixCls}-clear-button`,\r\n });\r\n }\r\n }\r\n wrapperInnerSpanButton(children, props = {}) {\r\n const { prefixCls } = this;\r\n const { className, ...otherProps } = props;\r\n return (!this.isDisabled() && (<div key=\"inner-button\" {...otherProps} className={classNames(`${prefixCls}-inner-button`, className)}>\n {children}\n </div>));\r\n }\r\n removeLastValue() {\r\n const values = this.getValues();\r\n const value = values.pop();\r\n this.setValue(values);\r\n this.afterRemoveValue(value, -1);\r\n }\r\n handleTagAnimateEnd() { }\r\n handleTagAnimateEnter() {\r\n const { tagContainer } = this;\r\n const { style } = this.props;\r\n if (tagContainer && style && style.height) {\r\n tagContainer.scrollTo(0, tagContainer.getBoundingClientRect().height);\r\n }\r\n }\r\n handleRangeStart() {\r\n this.setRangeTarget(0);\r\n }\r\n handleRangeEnd() {\r\n this.setRangeTarget(1);\r\n }\r\n handleKeyDown(e) {\r\n const { disabled, clearButton } = this.props;\r\n if (!this.isReadOnly() && !disabled) {\r\n if (this.range && e.keyCode === KeyCode.TAB) {\r\n if (this.rangeTarget === 0 && !e.shiftKey) {\r\n this.setRangeTarget(1);\r\n e.preventDefault();\r\n }\r\n if (this.rangeTarget === 1 && e.shiftKey) {\r\n this.setRangeTarget(0);\r\n e.preventDefault();\r\n }\r\n }\r\n if (this.multiple) {\r\n if (!this.text) {\r\n switch (e.keyCode) {\r\n case KeyCode.DELETE:\r\n this.clear();\r\n break;\r\n case KeyCode.BACKSPACE:\r\n this.removeLastValue();\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n else if (clearButton && !this.editable) {\r\n switch (e.keyCode) {\r\n case KeyCode.DELETE:\r\n case KeyCode.BACKSPACE:\r\n this.clear();\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n super.handleKeyDown(e);\r\n }\r\n handleMouseDown(e) {\r\n if (e.target !== this.element) {\r\n e.preventDefault();\r\n if (!this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n handleClearButtonClick() {\r\n this.clear();\r\n }\r\n handleFocus(e) {\r\n super.handleFocus(e);\r\n defer(() => this.isFocused && this.select());\r\n }\r\n handleBlur(e) {\r\n if (!e.isDefaultPrevented()) {\r\n if (this.editable) {\r\n this.syncValueOnBlur(e.target.value);\r\n }\r\n else if (!this.getValues().length) {\r\n this.setValue(null);\r\n }\r\n }\r\n super.handleBlur(e);\r\n }\r\n setValue(value) {\r\n super.setValue(value);\r\n this.setText(undefined);\r\n }\r\n getTextNode() {\r\n return this.text === undefined ? super.getTextNode() : this.text;\r\n }\r\n setText(text) {\r\n this.text = text;\r\n }\r\n select() {\r\n const { element } = this;\r\n if (element && this.editable) {\r\n element.select();\r\n }\r\n }\r\n handleChange(e) {\r\n const { target, target: { value }, } = e;\r\n const restricted = this.restrictInput(value);\r\n if (restricted !== value) {\r\n const selectionEnd = target.selectionEnd + restricted.length - value.length;\r\n target.value = restricted;\r\n target.setSelectionRange(selectionEnd, selectionEnd);\r\n }\r\n this.setText(restricted);\r\n }\r\n restrictInput(value) {\r\n const { restrict } = this.props;\r\n if (restrict) {\r\n return value.replace(new RegExp(`[^${restrict}]+`, 'g'), '');\r\n }\r\n return value;\r\n }\r\n toValueString(value) {\r\n if (isArray(value)) {\r\n return value.join(',');\r\n }\r\n return value;\r\n }\r\n}\r\nTextField.displayName = 'TextField';\r\nTextField.propTypes = {\r\n /**\r\n * 占位词\r\n */\r\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n /**\r\n * 最小长度\r\n */\r\n minLength: PropTypes.number,\r\n /**\r\n * 最大长度\r\n */\r\n maxLength: PropTypes.number,\r\n /**\r\n * 正则校验\r\n */\r\n pattern: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n /**\r\n * 自动完成\r\n */\r\n autoComplete: PropTypes.string,\r\n /**\r\n * 前缀\r\n */\r\n prefix: PropTypes.node,\r\n /**\r\n * 后缀\r\n */\r\n suffix: PropTypes.node,\r\n /**\r\n * 是否显示清除按钮\r\n */\r\n clearButton: PropTypes.bool,\r\n /**\r\n * 前置标签\r\n */\r\n addonBefore: PropTypes.node,\r\n /**\r\n * 后置标签\r\n */\r\n addonAfter: PropTypes.node,\r\n /**\r\n * 限制可输入的字符\r\n */\r\n restrict: PropTypes.string,\r\n ...FormField.propTypes,\r\n};\r\nTextField.defaultProps = {\r\n ...FormField.defaultProps,\r\n suffixCls: 'input',\r\n autoComplete: 'off',\r\n clearButton: false,\r\n multiple: false,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], TextField.prototype, \"text\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"saveTagContainer\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TextField.prototype, \"removeLastValue\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleTagAnimateEnter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleRangeStart\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleRangeEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleKeyDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleClearButtonClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleFocus\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleBlur\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TextField.prototype, \"setValue\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TextField.prototype, \"setText\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TextField.prototype, \"handleChange\", null);\r\nlet ObserverTextField = class ObserverTextField extends TextField {\r\n};\r\nObserverTextField.defaultProps = TextField.defaultProps;\r\nObserverTextField = tslib_1.__decorate([\r\n observer\r\n], ObserverTextField);\r\nexport default ObserverTextField;\r\n","export var GroupItemCategory;\r\n(function (GroupItemCategory) {\r\n GroupItemCategory[\"before\"] = \"before\";\r\n GroupItemCategory[\"after\"] = \"after\";\r\n GroupItemCategory[\"help\"] = \"help\";\r\n GroupItemCategory[\"input\"] = \"input\";\r\n})(GroupItemCategory || (GroupItemCategory = {}));\r\n","import ObserverTextField from './TextField';\r\nexport default ObserverTextField;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../field/style';\r\n","import DatePicker from '../date-picker/DatePicker';\r\nimport { ViewMode } from '../date-picker/enum';\r\nexport default class TimePicker extends DatePicker {\r\n getLimitWithType(limit, _minOrMax) {\r\n return limit;\r\n }\r\n}\r\nTimePicker.displayName = 'TimePicker';\r\nTimePicker.defaultProps = {\r\n ...DatePicker.defaultProps,\r\n mode: ViewMode.time,\r\n};\r\n","import TimePicker from './TimePicker';\r\nexport default TimePicker;\r\n","// style dependencies\r\nimport '../../date-picker/style';\r\n","import React, { Children, Component, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport Trigger from '../trigger/Trigger';\r\nimport { Action } from '../trigger/enum';\r\nimport getPlacements from './placements';\r\nexport default class Tooltip extends Component {\r\n get prefixCls() {\r\n const { suffixCls, prefixCls } = this.props;\r\n return getProPrefixCls(suffixCls, prefixCls);\r\n }\r\n get popupContent() {\r\n const { title } = this.props;\r\n if (!title) {\r\n return null;\r\n }\r\n const { prefixCls, props: { overlay, theme }, } = this;\r\n let content = '';\r\n if (typeof overlay === 'function') {\r\n content = overlay();\r\n }\r\n else if (overlay) {\r\n content = overlay;\r\n }\r\n else {\r\n content = title || '';\r\n }\r\n const arrowCls = `${prefixCls}-popup-arrow`;\r\n const contentCls = `${prefixCls}-popup-inner`;\r\n return (<div>\n <div className={`${arrowCls} ${arrowCls}-${theme}`} key=\"arrow\"/>\n <div className={`${contentCls} ${contentCls}-${theme}`} key=\"content\">\n {content}\n </div>\n </div>);\r\n }\r\n get placements() {\r\n const { builtinPlacements, arrowPointAtCenter, autoAdjustOverflow } = this.props;\r\n return (builtinPlacements ||\r\n getPlacements({\r\n arrowPointAtCenter,\r\n verticalArrowShift: 8,\r\n autoAdjustOverflow,\r\n }));\r\n }\r\n render() {\r\n const { prefixCls, popupContent, props: { children, placement, onHiddenChange, trigger, defaultHidden, hidden, ...restProps }, } = this;\r\n const child = Children.map(children, node => {\r\n if (node && !isValidElement(node)) {\r\n return <span key={`text-${node}`}>{node}</span>;\r\n }\r\n return node;\r\n });\r\n const extraProps = { ...restProps };\r\n if ('hidden' in this.props) {\r\n extraProps.popupHidden = hidden;\r\n }\r\n return (<Trigger prefixCls={prefixCls} action={trigger} builtinPlacements={this.placements} popupPlacement={placement} popupContent={popupContent} onPopupHiddenChange={onHiddenChange} defaultPopupHidden={defaultHidden} {...extraProps}>\n {child}\n </Trigger>);\r\n }\r\n}\r\nTooltip.displayName = 'Tooltip';\r\nTooltip.propTypes = {\r\n title: PropTypes.any,\r\n arrowPointAtCenter: PropTypes.bool,\r\n autoAdjustOverflow: PropTypes.bool,\r\n defaultHidden: PropTypes.bool,\r\n mouseEnterDelay: PropTypes.number,\r\n mouseLeaveDelay: PropTypes.number,\r\n placement: PropTypes.oneOf([\r\n 'top',\r\n 'topLeft',\r\n 'topRight',\r\n 'bottom',\r\n 'bottomLeft',\r\n 'bottomRight',\r\n 'left',\r\n 'leftTop',\r\n 'leftBottom',\r\n 'right',\r\n 'rightTop',\r\n 'rightBottom',\r\n ]),\r\n trigger: PropTypes.arrayOf(PropTypes.oneOf([Action.click, Action.hover, Action.contextMenu, Action.focus])),\r\n hidden: PropTypes.bool,\r\n onHiddenChange: PropTypes.func,\r\n suffixCls: PropTypes.string,\r\n transitionName: PropTypes.string,\r\n theme: PropTypes.oneOf(['light', 'dark']),\r\n};\r\nTooltip.defaultProps = {\r\n suffixCls: 'tooltip',\r\n placement: 'bottom',\r\n transitionName: 'zoom-big-fast',\r\n mouseEnterDelay: 100,\r\n mouseLeaveDelay: 100,\r\n arrowPointAtCenter: false,\r\n autoAdjustOverflow: true,\r\n theme: 'dark',\r\n defaultHidden: true,\r\n trigger: [Action.hover],\r\n};\r\n","import Tooltip from './Tooltip';\r\nexport default Tooltip;\r\n","const rcAutoAdjustOverflow = {\r\n adjustX: 1,\r\n adjustY: 1,\r\n};\r\nconst targetOffset = [0, 0];\r\nconst OFFSET_UNIT = 10;\r\nexport const rcPlacements = {\r\n left: {\r\n points: ['cr', 'cl'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [-OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n right: {\r\n points: ['cl', 'cr'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n top: {\r\n points: ['bc', 'tc'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, -OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n bottom: {\r\n points: ['tc', 'bc'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n topLeft: {\r\n points: ['bl', 'tl'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, -OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n leftTop: {\r\n points: ['tr', 'tl'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [-OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n topRight: {\r\n points: ['br', 'tr'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, -OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n rightTop: {\r\n points: ['tl', 'tr'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n bottomRight: {\r\n points: ['tr', 'br'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n rightBottom: {\r\n points: ['bl', 'br'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n bottomLeft: {\r\n points: ['tl', 'bl'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [0, OFFSET_UNIT],\r\n targetOffset,\r\n },\r\n leftBottom: {\r\n points: ['br', 'bl'],\r\n overflow: rcAutoAdjustOverflow,\r\n offset: [-OFFSET_UNIT, 0],\r\n targetOffset,\r\n },\r\n};\r\nconst autoAdjustOverflowEnabled = {\r\n adjustX: 1,\r\n adjustY: 1,\r\n};\r\nconst autoAdjustOverflowDisabled = {\r\n adjustX: 0,\r\n adjustY: 0,\r\n};\r\nexport function getOverflowOptions(autoAdjustOverflow) {\r\n if (typeof autoAdjustOverflow === 'boolean') {\r\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\r\n }\r\n return {\r\n ...autoAdjustOverflowDisabled,\r\n ...autoAdjustOverflow,\r\n };\r\n}\r\nexport default function getPlacements(config = {}) {\r\n const { arrowWidth = 5, horizontalArrowShift = 16, verticalArrowShift = 12, autoAdjustOverflow = true } = config;\r\n const placementMap = {\r\n left: {\r\n points: ['cr', 'cl'],\r\n offset: [-4, 0],\r\n },\r\n right: {\r\n points: ['cl', 'cr'],\r\n offset: [4, 0],\r\n },\r\n top: {\r\n points: ['bc', 'tc'],\r\n offset: [0, -4],\r\n },\r\n bottom: {\r\n points: ['tc', 'bc'],\r\n offset: [0, 4],\r\n },\r\n topLeft: {\r\n points: ['bl', 'tc'],\r\n offset: [-(horizontalArrowShift + arrowWidth), -4],\r\n },\r\n leftTop: {\r\n points: ['tr', 'cl'],\r\n offset: [-4, -(verticalArrowShift + arrowWidth)],\r\n },\r\n topRight: {\r\n points: ['br', 'tc'],\r\n offset: [horizontalArrowShift + arrowWidth, -4],\r\n },\r\n rightTop: {\r\n points: ['tl', 'cr'],\r\n offset: [4, -(verticalArrowShift + arrowWidth)],\r\n },\r\n bottomRight: {\r\n points: ['tr', 'bc'],\r\n offset: [horizontalArrowShift + arrowWidth, 4],\r\n },\r\n rightBottom: {\r\n points: ['bl', 'cr'],\r\n offset: [4, verticalArrowShift + arrowWidth],\r\n },\r\n bottomLeft: {\r\n points: ['tl', 'bc'],\r\n offset: [-(horizontalArrowShift + arrowWidth), 4],\r\n },\r\n leftBottom: {\r\n points: ['br', 'cl'],\r\n offset: [-4, verticalArrowShift + arrowWidth],\r\n },\r\n };\r\n Object.keys(placementMap).forEach(key => {\r\n placementMap[key] = config.arrowPointAtCenter ? {\r\n ...placementMap[key],\r\n overflow: getOverflowOptions(autoAdjustOverflow),\r\n targetOffset,\r\n } : {\r\n ...rcPlacements[key],\r\n overflow: getOverflowOptions(autoAdjustOverflow),\r\n };\r\n });\r\n return placementMap;\r\n}\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport { Select } from '../select/Select';\r\nimport Option from '../option/Option';\r\nimport OptGroup from '../option/OptGroup';\r\nimport TransferList from './TransferList';\r\nimport TransferOperation from './TransferOperation';\r\nimport autobind from '../_util/autobind';\r\nimport isSameLike from '../_util/isSameLike';\r\nlet Transfer = class Transfer extends Select {\r\n constructor(props, context) {\r\n super(props, context);\r\n runInAction(() => {\r\n this.sourceSelected = [];\r\n this.targetSelected = [];\r\n });\r\n }\r\n sourceFilter(record, index, array) {\r\n const { valueField, props: { optionsFilter }, } = this;\r\n if (optionsFilter && !optionsFilter(record, index, array)) {\r\n return false;\r\n }\r\n const values = this.getValues();\r\n if (values.length) {\r\n return values.every(v => !isSameLike(record.get(valueField), v));\r\n }\r\n return true;\r\n }\r\n targetFilter(record, index, array) {\r\n const { valueField, props: { optionsFilter }, } = this;\r\n if (optionsFilter && !optionsFilter(record, index, array)) {\r\n return false;\r\n }\r\n const values = this.getValues();\r\n if (values.length) {\r\n return values.some(v => isSameLike(record.get(valueField), v));\r\n }\r\n return false;\r\n }\r\n handleMenuClick({ item: { props: { value }, }, }) {\r\n if (this.multiple) {\r\n this.selectRecord(value, this.sourceSelected);\r\n }\r\n else {\r\n this.prepareSetValue(this.processRecordToObject(value));\r\n }\r\n }\r\n handleTargetMenuClick({ item: { props: { value }, }, }) {\r\n if (this.multiple) {\r\n this.selectRecord(value, this.targetSelected);\r\n }\r\n else {\r\n this.removeValue(value);\r\n }\r\n }\r\n handleMoveToLeft() {\r\n const { valueField } = this;\r\n this.removeValues(this.targetSelected.map(record => record.get(valueField)));\r\n this.targetSelected = [];\r\n }\r\n handleMoveToRight() {\r\n const { valueField } = this;\r\n this.prepareSetValue(...this.sourceSelected.map(record => record.get(valueField)));\r\n this.sourceSelected = [];\r\n }\r\n handleSourceSelectAllChange(selected) {\r\n this.sourceSelected = selected;\r\n }\r\n handleTargetSelectAllChange(selected) {\r\n this.targetSelected = selected;\r\n }\r\n selectRecord(value, selected) {\r\n const index = selected.indexOf(value);\r\n if (index !== -1) {\r\n selected.splice(index, 1);\r\n }\r\n else {\r\n selected.push(value);\r\n }\r\n }\r\n renderWrapper() {\r\n const { prefixCls, targetSelected, sourceSelected, multiple, props: { titles = [] }, } = this;\r\n const disabled = this.isDisabled();\r\n return (<span key=\"wrapper\" className={`${prefixCls}-wrapper`}>\n <TransferList {...this.props} options={this.options} selected={sourceSelected} header={titles[0]} onSelectAll={this.handleSourceSelectAllChange} onSelect={this.handleMenuClick} optionsFilter={this.sourceFilter}/>\n <TransferOperation className={`${prefixCls}-operation`} leftActive={!(!targetSelected.length || disabled)} rightActive={!(!sourceSelected.length || disabled)} moveToLeft={this.handleMoveToLeft} moveToRight={this.handleMoveToRight} multiple={multiple}/>\n <TransferList {...this.props} options={this.options} selected={targetSelected} header={titles[1]} onSelectAll={this.handleTargetSelectAllChange} onSelect={this.handleTargetMenuClick} optionsFilter={this.targetFilter}/>\n </span>);\r\n }\r\n};\r\nTransfer.displayName = 'Transfer';\r\nTransfer.propTypes = {\r\n ...Select.propTypes,\r\n titles: PropTypes.arrayOf(PropTypes.node),\r\n};\r\nTransfer.defaultProps = {\r\n ...Select.defaultProps,\r\n suffixCls: 'transfer',\r\n multiple: true,\r\n};\r\nTransfer.Option = Option;\r\nTransfer.OptGroup = OptGroup;\r\ntslib_1.__decorate([\r\n observable\r\n], Transfer.prototype, \"sourceSelected\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Transfer.prototype, \"targetSelected\", void 0);\r\ntslib_1.__decorate([\r\n autobind\r\n], Transfer.prototype, \"sourceFilter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Transfer.prototype, \"targetFilter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Transfer.prototype, \"handleMenuClick\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Transfer.prototype, \"handleTargetMenuClick\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Transfer.prototype, \"handleMoveToLeft\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Transfer.prototype, \"handleMoveToRight\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Transfer.prototype, \"handleSourceSelectAllChange\", null);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Transfer.prototype, \"handleTargetSelectAllChange\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Transfer.prototype, \"selectRecord\", null);\r\nTransfer = tslib_1.__decorate([\r\n observer\r\n], Transfer);\r\nexport default Transfer;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { computed } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport classNames from 'classnames';\r\nimport omit from 'lodash/omit';\r\nimport ObserverCheckBox from '../check-box/CheckBox';\r\nimport { $l } from '../locale-context';\r\nimport ObserverTextField from '../text-field/TextField';\r\nimport Icon from '../icon';\r\nimport { getItemKey, Select } from '../select/Select';\r\nimport autobind from '../_util/autobind';\r\nimport { stopPropagation } from '../_util/EventManager';\r\nimport ViewComponent from '../core/ViewComponent';\r\nlet TransferList = class TransferList extends Select {\r\n get popup() {\r\n return true;\r\n }\r\n get header() {\r\n const { prefixCls, multiple, observableProps: { header }, } = this;\r\n if (multiple || header) {\r\n return (<div className={`${prefixCls}-header`}>\n {this.getHeaderSelected()}\n {header && <span className={`${prefixCls}-header-title`}>{header}</span>}\n </div>);\r\n }\r\n return undefined;\r\n }\r\n get footer() {\r\n const { prefixCls, filteredOptions, observableProps: { footer }, } = this;\r\n if (footer) {\r\n return <div className={`${prefixCls}-footer`}>{footer(filteredOptions)}</div>;\r\n }\r\n return undefined;\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), [\r\n 'type',\r\n 'autoComplete',\r\n 'ref',\r\n 'body',\r\n 'footer',\r\n 'header',\r\n 'selected',\r\n 'onChange',\r\n 'onSelect',\r\n 'onSelectAll',\r\n 'onKeyDown',\r\n ]);\r\n }\r\n getObservableProps(props, context) {\r\n return {\r\n ...super.getObservableProps(props, context),\r\n header: props.header,\r\n footer: props.footer,\r\n };\r\n }\r\n getMenuPrefixCls() {\r\n return `${this.prefixCls}-content`;\r\n }\r\n handleSelectAllChange(value) {\r\n const { onSelectAll } = this.props;\r\n if (onSelectAll) {\r\n onSelectAll(value ? this.filteredOptions : []);\r\n }\r\n }\r\n handleClear() {\r\n this.setText(undefined);\r\n }\r\n getHeaderSelected() {\r\n const { filteredOptions: { length }, multiple, prefixCls, props: { selected: { length: selectedLength }, }, } = this;\r\n const selectedText = selectedLength ? `${selectedLength}/` : '';\r\n if (multiple) {\r\n return (<ObserverCheckBox disabled={this.isDisabled()} onChange={this.handleSelectAllChange} onFocus={stopPropagation} checked={!!length && length === selectedLength} indeterminate={!!selectedLength && length !== selectedLength}>\n <span className={`${prefixCls}-header-selected`}>\n {`${selectedText}${length}${$l('Transfer', 'items')}`}\n </span>\n </ObserverCheckBox>);\r\n }\r\n }\r\n getSearchField() {\r\n const { prefixCls } = this;\r\n return (<div className={`${prefixCls}-body-search-wrapper`}>\n <ObserverTextField ref={this.elementReference} onInput={this.handleChange} onClear={this.handleClear} onKeyDown={this.handleKeyDown} suffix={<Icon type=\"search\"/>} clearButton/>\n </div>);\r\n }\r\n renderBody() {\r\n const { prefixCls, searchable, textField, valueField, props: { selected, onSelect }, } = this;\r\n const searchField = searchable && this.getSearchField();\r\n const classString = classNames(`${prefixCls}-body`, {\r\n [`${prefixCls}-body-with-search`]: searchable,\r\n });\r\n const selectedKeys = selected.map(record => getItemKey(record, record.get(textField), record.get(valueField)));\r\n return (<div className={classString}>\n {searchField}\n <div className={`${prefixCls}-content-wrapper`} onFocus={searchable ? stopPropagation : undefined}>\n {this.getMenu({ selectedKeys, onClick: onSelect, focusable: !this.searchable })}\n </div>\n </div>);\r\n }\r\n getClassName() {\r\n const { prefixCls, header, footer } = this;\r\n return super.getClassName({\r\n [`${prefixCls}-with-header`]: header,\r\n [`${prefixCls}-with-footer`]: footer,\r\n });\r\n }\r\n removeLastValue() { }\r\n handleBlur(e) {\r\n ViewComponent.prototype.handleBlur.call(this, e);\r\n }\r\n render() {\r\n const { header, footer } = this;\r\n return (<div {...this.getOtherProps()}>\n {header}\n {this.renderBody()}\n {footer}\n </div>);\r\n }\r\n};\r\ntslib_1.__decorate([\r\n computed\r\n], TransferList.prototype, \"popup\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TransferList.prototype, \"header\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], TransferList.prototype, \"footer\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TransferList.prototype, \"handleSelectAllChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TransferList.prototype, \"handleClear\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TransferList.prototype, \"handleBlur\", null);\r\nTransferList = tslib_1.__decorate([\r\n observer\r\n], TransferList);\r\nexport default TransferList;\r\n","import React from 'react';\r\nimport noop from 'lodash/noop';\r\nimport Button from '../button';\r\nimport { Size } from '../core/enum';\r\nimport { ButtonColor } from '../button/enum';\r\nexport default function TransferOperation(props) {\r\n const { moveToLeft = noop, moveToRight = noop, leftActive, rightActive, className, multiple, } = props;\r\n if (multiple) {\r\n return (<div className={className}>\n <Button color={ButtonColor.primary} size={Size.small} disabled={!leftActive} onClick={moveToLeft} icon=\"navigate_before\"/>\n <Button color={ButtonColor.primary} size={Size.small} disabled={!rightActive} onClick={moveToRight} icon=\"navigate_next\"/>\n </div>);\r\n }\r\n return null;\r\n}\r\n","import Transfer from './Transfer';\r\nexport default Transfer;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport 'choerodon-ui/lib/menu/style';\r\nimport 'choerodon-ui/lib/checkbox/style';\r\nimport '../../check-box/style';\r\nimport '../../text-field/style';\r\nimport '../../button/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport Set from 'core-js/library/fn/set';\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { computed, observable, runInAction } from 'mobx';\r\nimport noop from 'lodash/noop';\r\nimport C7NTree, { TreeNode, } from 'choerodon-ui/lib/tree';\r\nimport { getKey, getTreeNodes } from './util';\r\nimport { BooleanValue, DataSetSelection } from '../data-set/enum';\r\nimport Spin from '../spin';\r\nfunction defaultRenderer({ text }) {\r\n return text;\r\n}\r\nlet Tree = class Tree extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.stateForceRenderKeys = [];\r\n this.handleExpand = (expandedKeys, eventObj) => {\r\n if (this.setExpand(eventObj)) {\r\n runInAction(() => {\r\n this.stateExpandedKeys = expandedKeys;\r\n });\r\n }\r\n const { onExpand = noop } = this.props;\r\n onExpand(expandedKeys, eventObj);\r\n };\r\n this.handleCheck = (checkedKeys, eventObj) => {\r\n if (this.setCheck(eventObj)) {\r\n runInAction(() => {\r\n this.stateCheckedKeys = checkedKeys;\r\n });\r\n }\r\n const { onCheck = noop } = this.props;\r\n onCheck(checkedKeys, eventObj);\r\n };\r\n this.handleSelect = (_selectedKeys, eventObj) => {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { idField } = dataSet.props;\r\n const { node, selected } = eventObj;\r\n const { eventKey } = node.props;\r\n const found = dataSet.find(record => eventKey === String(idField ? record.get(idField) : record.id));\r\n if (found) {\r\n if (selected) {\r\n dataSet.select(found);\r\n }\r\n else {\r\n dataSet.unSelect(found);\r\n }\r\n }\r\n }\r\n };\r\n runInAction(() => {\r\n this.stateCheckedKeys = [];\r\n this.stateExpandedKeys = [];\r\n });\r\n }\r\n get forceRenderKeys() {\r\n return (this.stateForceRenderKeys = [\r\n ...new Set([...this.stateForceRenderKeys, ...this.expandedKeys]),\r\n ]);\r\n }\r\n get expandedKeys() {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { expandField, idField } = dataSet.props;\r\n if (expandField) {\r\n const keys = [];\r\n dataSet.forEach(record => {\r\n if (record.isExpanded) {\r\n keys.push(getKey(record, idField));\r\n }\r\n });\r\n return keys;\r\n }\r\n }\r\n return this.stateExpandedKeys;\r\n }\r\n get checkedKeys() {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { checkField, idField } = dataSet.props;\r\n if (checkField) {\r\n const keys = [];\r\n dataSet.forEach(record => {\r\n const field = record.getField(checkField);\r\n if (record.get(checkField) === (field ? field.get(BooleanValue.trueValue) : true)) {\r\n keys.push(getKey(record, idField));\r\n }\r\n });\r\n return keys;\r\n }\r\n }\r\n return this.stateCheckedKeys;\r\n }\r\n get selectedKeys() {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { idField } = dataSet.props;\r\n return dataSet.selected.map(record => getKey(record, idField));\r\n }\r\n return [];\r\n }\r\n setExpand(eventObj) {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { expandField, idField } = dataSet.props;\r\n if (expandField) {\r\n const { node, expanded } = eventObj;\r\n const { eventKey } = node.props;\r\n const found = dataSet.find(record => eventKey === getKey(record, idField));\r\n if (found) {\r\n found.isExpanded = expanded;\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n setCheck(eventObj) {\r\n const { dataSet } = this.props;\r\n if (dataSet) {\r\n const { checkField, idField } = dataSet.props;\r\n if (checkField) {\r\n const { node, checked } = eventObj;\r\n const { eventKey } = node.props;\r\n const found = dataSet.find(record => eventKey === String(idField ? record.get(idField) : record.id));\r\n if (found) {\r\n const field = found.getField(checkField);\r\n found.set(checkField, field\r\n ? checked\r\n ? field.get(BooleanValue.trueValue)\r\n : field.get(BooleanValue.falseValue)\r\n : checked);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n render() {\r\n const { dataSet, renderer = defaultRenderer, titleField, ...otherProps } = this.props;\r\n if (dataSet) {\r\n const props = {};\r\n props.children = getTreeNodes(dataSet, dataSet.treeData, this.forceRenderKeys, renderer, titleField);\r\n props.onExpand = this.handleExpand;\r\n props.onCheck = this.handleCheck;\r\n props.onSelect = this.handleSelect;\r\n props.expandedKeys = this.expandedKeys.slice();\r\n props.checkedKeys = this.checkedKeys.slice();\r\n props.multiple = dataSet.props.selection === DataSetSelection.multiple;\r\n props.selectedKeys = this.selectedKeys.slice();\r\n return (<Spin dataSet={dataSet}>\n <C7NTree {...otherProps} {...props}/>\n </Spin>);\r\n }\r\n return <C7NTree {...otherProps}/>;\r\n }\r\n};\r\nTree.displayName = 'Tree<PRO>';\r\nTree.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n children: PropTypes.any,\r\n treeData: PropTypes.array,\r\n showLine: PropTypes.bool,\r\n showIcon: PropTypes.bool,\r\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\r\n focusable: PropTypes.bool,\r\n selectable: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n multiple: PropTypes.bool,\r\n checkable: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),\r\n checkStrictly: PropTypes.bool,\r\n draggable: PropTypes.bool,\r\n defaultExpandParent: PropTypes.bool,\r\n autoExpandParent: PropTypes.bool,\r\n defaultExpandAll: PropTypes.bool,\r\n defaultExpandedKeys: PropTypes.arrayOf(PropTypes.string),\r\n expandedKeys: PropTypes.arrayOf(PropTypes.string),\r\n defaultCheckedKeys: PropTypes.arrayOf(PropTypes.string),\r\n checkedKeys: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\r\n PropTypes.object,\r\n ]),\r\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\r\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\r\n onClick: PropTypes.func,\r\n onDoubleClick: PropTypes.func,\r\n onExpand: PropTypes.func,\r\n onCheck: PropTypes.func,\r\n onSelect: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n loadData: PropTypes.func,\r\n loadedKeys: PropTypes.arrayOf(PropTypes.string),\r\n onMouseEnter: PropTypes.func,\r\n onMouseLeave: PropTypes.func,\r\n onRightClick: PropTypes.func,\r\n onDragStart: PropTypes.func,\r\n onDragEnter: PropTypes.func,\r\n onDragOver: PropTypes.func,\r\n onDragLeave: PropTypes.func,\r\n onDragEnd: PropTypes.func,\r\n onDrop: PropTypes.func,\r\n filterTreeNode: PropTypes.func,\r\n openTransitionName: PropTypes.string,\r\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\r\n};\r\nTree.TreeNode = TreeNode;\r\ntslib_1.__decorate([\r\n observable\r\n], Tree.prototype, \"stateCheckedKeys\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Tree.prototype, \"stateExpandedKeys\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Tree.prototype, \"forceRenderKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Tree.prototype, \"expandedKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Tree.prototype, \"checkedKeys\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Tree.prototype, \"selectedKeys\", null);\r\nTree = tslib_1.__decorate([\r\n observer\r\n], Tree);\r\nexport default Tree;\r\n","import 'choerodon-ui/lib/tree/style';\r\n// style dependencies\r\nimport 'choerodon-ui/lib/spin/style';\r\n","import React from 'react';\r\nimport { TreeNode } from 'choerodon-ui/lib/tree';\r\nexport function getKey(record, idField) {\r\n return String(idField ? record.get(idField) : record.id);\r\n}\r\nfunction getTreeNode(record, children, idField, text) {\r\n const key = getKey(record, idField);\r\n return (<TreeNode title={text} key={key} eventKey={key} hasChildren={!!record.children} selectable={record.selectable}>\n {children}\n </TreeNode>);\r\n}\r\nexport function getTreeNodes(dataSet, records = [], forceRenderKeys, renderer, titleField) {\r\n const { idField } = dataSet.props;\r\n return records.map(record => {\r\n const children = forceRenderKeys.indexOf(getKey(record, idField)) !== -1\r\n ? getTreeNodes(dataSet, record.children, forceRenderKeys, renderer)\r\n : null;\r\n return getTreeNode(record, children, idField, renderer({ dataSet, record, text: record.get(titleField) }));\r\n });\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport noop from 'lodash/noop';\r\nimport { action, computed, observable } from 'mobx';\r\nimport { PropTypes as MobxPropTypes } from 'mobx-react';\r\nimport Trigger from '../trigger/Trigger';\r\nimport { TextField } from '../text-field/TextField';\r\nimport autobind from '../_util/autobind';\r\nimport Icon from '../icon';\r\nimport TaskRunner from '../_util/TaskRunner';\r\nconst BUILT_IN_PLACEMENTS = {\r\n bottomLeft: {\r\n points: ['tl', 'bl'],\r\n offset: [0, 4],\r\n overflow: {\r\n adjustX: 1,\r\n adjustY: 1,\r\n },\r\n },\r\n bottomRight: {\r\n points: ['tr', 'br'],\r\n offset: [0, 4],\r\n overflow: {\r\n adjustX: 1,\r\n adjustY: 1,\r\n },\r\n },\r\n topLeft: {\r\n points: ['bl', 'tl'],\r\n offset: [0, -4],\r\n overflow: {\r\n adjustX: 1,\r\n adjustY: 1,\r\n },\r\n },\r\n topRight: {\r\n points: ['br', 'tr'],\r\n offset: [0, -4],\r\n overflow: {\r\n adjustX: 1,\r\n adjustY: 1,\r\n },\r\n },\r\n};\r\nexport default class TriggerField extends TextField {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.popupTask = new TaskRunner();\r\n this.setPopup(false);\r\n }\r\n get popup() {\r\n return this.statePopup;\r\n }\r\n isValidationMessageHidden(message) {\r\n return super.isValidationMessageHidden(message) || this.popup;\r\n }\r\n setPopup(statePopup) {\r\n this.statePopup = statePopup;\r\n }\r\n getRootDomNode() {\r\n return findDOMNode(this);\r\n }\r\n getOtherProps() {\r\n return omit(super.getOtherProps(), [\r\n 'popupContent',\r\n 'popupCls',\r\n 'editable',\r\n 'trigger',\r\n 'triggerShowDelay',\r\n 'triggerHiddenDelay',\r\n 'onPopupHiddenChange',\r\n ]);\r\n }\r\n getPopupProps() {\r\n return {};\r\n }\r\n getWrappedEditor() {\r\n const { prefixCls, props: { popupCls, popupStyle, popupContent, hidden, trigger, triggerShowDelay, triggerHiddenDelay, }, } = this;\r\n let content;\r\n if (popupContent !== undefined) {\r\n if (popupContent instanceof Function) {\r\n content = popupContent(this.getPopupProps());\r\n }\r\n else {\r\n content = popupContent;\r\n }\r\n }\r\n else {\r\n content = this.getPopupContent();\r\n }\r\n return (<Trigger ref={node => (this.trigger = node)} action={this.isReadOnly() || this.isDisabled() ? [] : trigger} focusDelay={triggerShowDelay} blurDelay={triggerHiddenDelay} mouseEnterDelay={triggerShowDelay} mouseLeaveDelay={triggerHiddenDelay} prefixCls={prefixCls} popupCls={popupCls} popupStyle={popupStyle} popupContent={content} popupPlacement=\"bottomLeft\" popupHidden={hidden || !this.popup} builtinPlacements={BUILT_IN_PLACEMENTS} onPopupAnimateAppear={this.handlePopupAnimateAppear} onPopupAnimateEnd={this.handlePopupAnimateEnd} onPopupHiddenChange={this.handlePopupHiddenChange} getPopupStyleFromAlign={this.getPopupStyleFromAlign} getRootDomNode={this.getRootDomNode}>\n {this.getEditor()}\n </Trigger>);\r\n }\r\n getWrapperClassNames(...args) {\r\n const { prefixCls } = this;\r\n return super.getWrapperClassNames(...args, {\r\n [`${prefixCls}-expand`]: this.popup,\r\n [`${prefixCls}-not-editable`]: !this.isDisabled() && !this.editable,\r\n });\r\n }\r\n getDefaultSuffix() {\r\n const { prefixCls } = this;\r\n return <Icon type={this.getTriggerIconFont()} className={`${prefixCls}-trigger`}/>;\r\n }\r\n handleTagAnimateEnd() {\r\n this.forcePopupAlign();\r\n }\r\n handlePopupMouseDown(e) {\r\n e.preventDefault();\r\n const { onMouseDown = noop } = this.props;\r\n onMouseDown(e);\r\n }\r\n handlePopupHiddenChange(hidden) {\r\n this.setPopup(!hidden);\r\n const { onPopupHiddenChange = noop } = this.props;\r\n onPopupHiddenChange(hidden);\r\n }\r\n forcePopupAlign() {\r\n if (this.trigger) {\r\n this.trigger.forcePopupAlign();\r\n }\r\n }\r\n expand() {\r\n this.popupTask.cancel();\r\n if (!this.isReadOnly() && !this.popup) {\r\n this.popupTask.delay(this.props.triggerShowDelay, () => {\r\n this.setPopup(true);\r\n });\r\n }\r\n }\r\n collapse() {\r\n this.popupTask.cancel();\r\n if (!this.isReadOnly() && this.popup) {\r\n this.popupTask.delay(this.props.triggerHiddenDelay, () => {\r\n this.setPopup(false);\r\n });\r\n }\r\n }\r\n}\r\nTriggerField.displayName = 'TriggerField';\r\nTriggerField.propTypes = {\r\n /**\r\n * 下拉框的自定义内容\r\n */\r\n popupContent: PropTypes.element,\r\n /**\r\n * 下拉框的自定义样式名\r\n */\r\n popupCls: PropTypes.string,\r\n /**\r\n * 下拉框的内链样式\r\n */\r\n popupStyle: PropTypes.object,\r\n /**\r\n * 触发下拉框的方式\r\n * 可选值:click | focus | hover | contextMenu\r\n */\r\n trigger: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.string),\r\n /**\r\n * 下拉框显示延迟\r\n * @defualt 150\r\n */\r\n triggerShowDelay: PropTypes.number,\r\n /**\r\n * 下拉框隐藏延迟\r\n * @defualt 50\r\n */\r\n triggerHiddenDelay: PropTypes.number,\r\n /**\r\n * 下拉框变化钩子\r\n */\r\n onPopupHiddenChange: PropTypes.func,\r\n ...TextField.propTypes,\r\n};\r\nTriggerField.defaultProps = {\r\n ...TextField.defaultProps,\r\n suffixCls: 'trigger',\r\n clearButton: true,\r\n trigger: ['focus', 'click'],\r\n triggerShowDelay: 150,\r\n triggerHiddenDelay: 50,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], TriggerField.prototype, \"statePopup\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], TriggerField.prototype, \"popup\", null);\r\ntslib_1.__decorate([\r\n action\r\n], TriggerField.prototype, \"setPopup\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TriggerField.prototype, \"getRootDomNode\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TriggerField.prototype, \"handleTagAnimateEnd\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TriggerField.prototype, \"handlePopupMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], TriggerField.prototype, \"handlePopupHiddenChange\", null);\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../trigger/style';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport shallowEqual from 'lodash/isEqual';\r\nimport noop from 'lodash/noop';\r\nimport Align from 'choerodon-ui/lib/align';\r\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\r\nimport Animate from '../animate';\r\nimport ViewComponent from '../core/ViewComponent';\r\nimport PopupInner from './PopupInner';\r\nimport autobind from '../_util/autobind';\r\nlet popupContainer;\r\nfunction getContainer() {\r\n if (!popupContainer && typeof window !== 'undefined') {\r\n const doc = window.document;\r\n popupContainer = doc.createElement('div');\r\n popupContainer.className = getProPrefixCls('popup-container');\r\n doc.body.appendChild(popupContainer);\r\n }\r\n return popupContainer;\r\n}\r\n/**\r\n * 记录ID生成器\r\n */\r\nconst PopupKeyGen = (function* (start) {\r\n while (true) {\r\n yield `popup-key-${start++}`;\r\n }\r\n})(1);\r\nexport default class Popup extends ViewComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.contentRendered = false;\r\n this.popupKey = PopupKeyGen.next().value;\r\n this.saveRef = align => (this.align = align);\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'align',\r\n 'transitionName',\r\n 'getRootDomNode',\r\n 'getClassNameFromAlign',\r\n 'getStyleFromAlign',\r\n 'onAlign',\r\n 'onAnimateAppear',\r\n 'onAnimateEnter',\r\n 'onAnimateLeave',\r\n 'onAnimateEnd',\r\n ]);\r\n return otherProps;\r\n }\r\n render() {\r\n const { hidden, align, transitionName, getRootDomNode, children, onAnimateAppear = noop, onAnimateEnter = noop, onAnimateLeave = noop, onAnimateEnd = noop, } = this.props;\r\n if (!hidden) {\r\n this.contentRendered = true;\r\n }\r\n const container = getContainer();\r\n return container && this.contentRendered\r\n ? createPortal(<Animate component=\"\" exclusive transitionAppear transitionName={transitionName} hiddenProp=\"hidden\" onAppear={onAnimateAppear} onEnter={onAnimateEnter} onLeave={onAnimateLeave} onEnd={onAnimateEnd}>\n <Align ref={this.saveRef} key=\"align\" childrenProps={{ hidden: 'hidden' }} align={align} onAlign={this.onAlign} target={getRootDomNode} hidden={hidden} monitorWindowResize>\n <PopupInner {...omit(this.getMergedProps(), ['ref'])}>{children}</PopupInner>\n </Align>\n </Animate>, container, this.popupKey)\r\n : null;\r\n }\r\n onAlign(source, align, target) {\r\n const { getClassNameFromAlign = noop, getStyleFromAlign = noop, onAlign = noop } = this.props;\r\n const currentAlignClassName = getClassNameFromAlign(align);\r\n if (this.currentAlignClassName !== currentAlignClassName) {\r\n this.currentAlignClassName = currentAlignClassName;\r\n source.className = this.getMergedClassNames(currentAlignClassName);\r\n }\r\n const currentAlignStyle = getStyleFromAlign(target, align);\r\n if (!shallowEqual(this.currentAlignStyle, currentAlignStyle)) {\r\n this.currentAlignStyle = currentAlignStyle;\r\n Object.assign(source.style, currentAlignStyle);\r\n }\r\n onAlign(source, align, target);\r\n }\r\n forceAlign() {\r\n if (this.align) {\r\n this.align.forceAlign();\r\n }\r\n }\r\n}\r\nPopup.displayName = 'Popup';\r\nPopup.propTypes = {\r\n align: PropTypes.object,\r\n onAlign: PropTypes.func,\r\n getRootDomNode: PropTypes.func,\r\n transitionName: PropTypes.string,\r\n onAnimateAppear: PropTypes.func,\r\n onAnimateEnter: PropTypes.func,\r\n onAnimateLeave: PropTypes.func,\r\n onAnimateEnd: PropTypes.func,\r\n getStyleFromAlign: PropTypes.func,\r\n getClassNameFromAlign: PropTypes.func,\r\n ...ViewComponent.propTypes,\r\n};\r\nPopup.defaultProps = {\r\n suffixCls: 'popup',\r\n transitionName: 'zoom',\r\n};\r\ntslib_1.__decorate([\r\n autobind\r\n], Popup.prototype, \"onAlign\", null);\r\n","import React from 'react';\r\nconst PopupInner = (props) => (<div {...props}/>);\r\nexport default PopupInner;\r\n","import * as tslib_1 from \"tslib\";\r\nimport React, { Children, Component, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { findDOMNode } from 'react-dom';\r\nimport classNames from 'classnames';\r\nimport raf from 'raf';\r\nimport { action as mobxAction, observable, runInAction } from 'mobx';\r\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\r\nimport noop from 'lodash/noop';\r\nimport Popup from './Popup';\r\nimport autobind from '../_util/autobind';\r\nimport TaskRunner from '../_util/TaskRunner';\r\nimport EventManager from '../_util/EventManager';\r\nimport { Action, HideAction, ShowAction } from './enum';\r\nimport TriggerChild from './TriggerChild';\r\nfunction isPointsEq(a1, a2) {\r\n return a1[0] === a2[0] && a1[1] === a2[1];\r\n}\r\nfunction getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\r\n const { points } = align;\r\n const found = Object.keys(builtinPlacements).find(placement => ({}.hasOwnProperty.call(builtinPlacements, placement) &&\r\n isPointsEq(builtinPlacements[placement].points, points)));\r\n return found ? `${prefixCls}-popup-placement-${found}` : '';\r\n}\r\nfunction getAlignFromPlacement(builtinPlacements, placementStr, align) {\r\n const baseAlign = builtinPlacements[placementStr] || {};\r\n return {\r\n ...baseAlign,\r\n ...align,\r\n };\r\n}\r\nfunction contains(root, n) {\r\n let node = n;\r\n if (root) {\r\n while (node) {\r\n if (node === root || (root.contains && root.contains(node))) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n }\r\n return false;\r\n}\r\nlet Trigger = class Trigger extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.popupTask = new TaskRunner();\r\n this.documentEvent = new EventManager(typeof window !== 'undefined' && document);\r\n this.focusTime = 0;\r\n this.preClickTime = 0;\r\n this.animateFrameId = 0;\r\n this.saveRef = node => (this.popup = node);\r\n runInAction(() => {\r\n this.popupHidden = 'popupHidden' in props ? props.popupHidden : props.defaultPopupHidden;\r\n });\r\n }\r\n render() {\r\n const { children } = this.props;\r\n const popup = this.getPopup();\r\n const newChildren = Children.map(children, child => {\r\n if (isValidElement(child)) {\r\n const newChildProps = {};\r\n if (this.isContextMenuToShow()) {\r\n newChildProps.onContextMenu = this.handleEvent;\r\n }\r\n if (this.isClickToHide() || this.isClickToShow()) {\r\n newChildProps.onClick = this.handleEvent;\r\n newChildProps.onMouseDown = this.handleEvent;\r\n }\r\n if (this.isMouseEnterToShow()) {\r\n newChildProps.onMouseEnter = this.handleEvent;\r\n }\r\n if (this.isMouseLeaveToHide()) {\r\n newChildProps.onMouseLeave = this.handleEvent;\r\n }\r\n if (this.isFocusToShow() || this.isBlurToHide()) {\r\n newChildProps.onFocus = this.handleEvent;\r\n newChildProps.onBlur = this.handleEvent;\r\n }\r\n return <TriggerChild {...newChildProps}>{child}</TriggerChild>;\r\n }\r\n return child;\r\n });\r\n return [newChildren, popup];\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const { popupHidden } = nextProps;\r\n if (popupHidden !== this.popupHidden && popupHidden !== undefined) {\r\n this.popupHidden = popupHidden;\r\n }\r\n }\r\n componentDidUpdate() {\r\n const { popupHidden } = this;\r\n this.documentEvent.clear();\r\n if (!popupHidden) {\r\n this.documentEvent.addEventListener('scroll', this.handleDocumentScroll, true);\r\n if ((this.isClickToHide() || this.isContextMenuToShow()) && !this.isBlurToHide()) {\r\n this.documentEvent.addEventListener('mousedown', this.handleDocumentMouseDown);\r\n }\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.popupTask.cancel();\r\n this.documentEvent.clear();\r\n }\r\n handleEvent(eventName, child, e) {\r\n const { [`on${eventName}`]: handle } = this.props;\r\n const { [`on${eventName}`]: childHandle } = child.props;\r\n if (childHandle) {\r\n childHandle(e);\r\n }\r\n if (!e.isDefaultPrevented()) {\r\n if (handle) {\r\n handle(e);\r\n }\r\n if (!e.isDefaultPrevented()) {\r\n this[`handle${eventName}`].call(this, e);\r\n }\r\n }\r\n }\r\n handleContextMenu(e) {\r\n e.preventDefault();\r\n this.setPopupHidden(false);\r\n }\r\n handleFocus() {\r\n if (this.isFocusToShow()) {\r\n const { focusDelay } = this.props;\r\n this.focusTime = Date.now();\r\n this.delaySetPopupHidden(false, focusDelay);\r\n }\r\n }\r\n handleBlur() {\r\n if (this.isBlurToHide()) {\r\n const { blurDelay } = this.props;\r\n this.delaySetPopupHidden(true, blurDelay);\r\n }\r\n }\r\n handleDocumentMouseDown(e) {\r\n if (this.popup) {\r\n const { target } = e;\r\n if (!contains(findDOMNode(this), target) && !contains(findDOMNode(this.popup), target)) {\r\n this.setPopupHidden(true);\r\n }\r\n }\r\n }\r\n handleDocumentScroll({ target }) {\r\n if (this.popup && target !== document && !contains(findDOMNode(this.popup), target)) {\r\n if (this.animateFrameId) {\r\n raf.cancel(this.animateFrameId);\r\n }\r\n this.animateFrameId = raf(this.forcePopupAlign);\r\n }\r\n }\r\n handleMouseDown() {\r\n this.preClickTime = Date.now();\r\n }\r\n handleClick(e) {\r\n const { popupHidden } = this;\r\n if (this.focusTime) {\r\n if (Math.abs(this.preClickTime - this.focusTime) < 20) {\r\n return;\r\n }\r\n this.focusTime = 0;\r\n }\r\n this.preClickTime = 0;\r\n if ((this.isClickToHide() && !popupHidden) || (popupHidden && this.isClickToShow())) {\r\n e.preventDefault();\r\n this.setPopupHidden(!popupHidden);\r\n }\r\n }\r\n handleMouseEnter() {\r\n const { mouseEnterDelay } = this.props;\r\n this.delaySetPopupHidden(false, mouseEnterDelay);\r\n }\r\n handleMouseLeave() {\r\n const { mouseLeaveDelay } = this.props;\r\n this.delaySetPopupHidden(true, mouseLeaveDelay);\r\n }\r\n handlePopupMouseEnter() {\r\n this.popupTask.cancel();\r\n }\r\n handlePopupMouseLeave() {\r\n const { mouseLeaveDelay } = this.props;\r\n this.delaySetPopupHidden(true, mouseLeaveDelay);\r\n }\r\n getPopup() {\r\n const { prefixCls, popupCls, popupStyle, onPopupAnimateAppear, onPopupAnimateEnter, onPopupAnimateLeave, onPopupAnimateEnd, onPopupAlign, popupContent, getPopupStyleFromAlign, getRootDomNode = this.getRootDomNode, transitionName, } = this.props;\r\n const visible = !this.popupHidden && popupContent;\r\n const mouseProps = {};\r\n if (this.isMouseEnterToShow()) {\r\n mouseProps.onMouseEnter = this.handlePopupMouseEnter;\r\n }\r\n if (this.isMouseLeaveToHide()) {\r\n mouseProps.onMouseLeave = this.handlePopupMouseLeave;\r\n }\r\n return (<Popup key=\"popup\" ref={this.saveRef} transitionName={transitionName} className={classNames(`${prefixCls}-popup`, popupCls)} style={popupStyle} hidden={!visible} align={this.getPopupAlign()} onAlign={onPopupAlign} onMouseDown={this.handlePopupMouseDown} getRootDomNode={getRootDomNode} onAnimateAppear={onPopupAnimateAppear} onAnimateEnter={onPopupAnimateEnter} onAnimateLeave={onPopupAnimateLeave} onAnimateEnd={onPopupAnimateEnd} getStyleFromAlign={getPopupStyleFromAlign} getClassNameFromAlign={this.getPopupClassNameFromAlign} {...mouseProps}>\n {popupContent}\n </Popup>);\r\n }\r\n getPopupAlign() {\r\n const { popupPlacement, popupAlign, builtinPlacements } = this.props;\r\n if (popupPlacement && builtinPlacements) {\r\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\r\n }\r\n return popupAlign;\r\n }\r\n handlePopupMouseDown(e) {\r\n e.preventDefault();\r\n }\r\n getRootDomNode() {\r\n return findDOMNode(this);\r\n }\r\n getPopupClassNameFromAlign(align) {\r\n const className = [];\r\n const { popupPlacement, builtinPlacements, prefixCls, getPopupClassNameFromAlign: getCls, } = this.props;\r\n if (popupPlacement && builtinPlacements) {\r\n className.push(getPopupClassNameFromAlign(builtinPlacements, prefixCls, align));\r\n }\r\n if (getCls) {\r\n const cls = getCls(align);\r\n if (cls) {\r\n className.push(cls);\r\n }\r\n }\r\n return className.join(' ');\r\n }\r\n forcePopupAlign() {\r\n if (!this.popupHidden && this.popup) {\r\n this.popup.forceAlign();\r\n }\r\n }\r\n setPopupHidden(hidden) {\r\n this.popupTask.cancel();\r\n if (this.popupHidden !== hidden) {\r\n const { popupHidden, onPopupHiddenChange = noop } = this.props;\r\n if (popupHidden === undefined) {\r\n this.popupHidden = hidden;\r\n }\r\n onPopupHiddenChange(hidden);\r\n }\r\n }\r\n delaySetPopupHidden(popupHidden, delay) {\r\n this.popupTask.cancel();\r\n if (delay) {\r\n this.popupTask.delay(delay, () => {\r\n this.setPopupHidden(popupHidden);\r\n });\r\n }\r\n else {\r\n this.setPopupHidden(popupHidden);\r\n }\r\n }\r\n isClickToShow() {\r\n const { action = [], showAction = [] } = this.props;\r\n return action.indexOf(Action.click) !== -1 || showAction.indexOf(ShowAction.click) !== -1;\r\n }\r\n isContextMenuToShow() {\r\n const { action = [], showAction = [] } = this.props;\r\n return (action.indexOf(Action.contextMenu) !== -1 || showAction.indexOf(ShowAction.contextMenu) !== -1);\r\n }\r\n isClickToHide() {\r\n const { action = [], hideAction = [] } = this.props;\r\n return action.indexOf(Action.click) !== -1 || hideAction.indexOf(HideAction.click) !== -1;\r\n }\r\n isMouseEnterToShow() {\r\n const { action = [], showAction = [] } = this.props;\r\n return action.indexOf(Action.hover) !== -1 || showAction.indexOf(ShowAction.mouseEnter) !== -1;\r\n }\r\n isMouseLeaveToHide() {\r\n const { action = [], hideAction = [] } = this.props;\r\n return action.indexOf(Action.hover) !== -1 || hideAction.indexOf(HideAction.mouseLeave) !== -1;\r\n }\r\n isFocusToShow() {\r\n const { action = [], showAction = [] } = this.props;\r\n return action.indexOf(Action.focus) !== -1 || showAction.indexOf(ShowAction.focus) !== -1;\r\n }\r\n isBlurToHide() {\r\n const { action = [], hideAction = [] } = this.props;\r\n return action.indexOf(Action.focus) !== -1 || hideAction.indexOf(HideAction.blur) !== -1;\r\n }\r\n};\r\nTrigger.displayName = 'Trigger';\r\nTrigger.propTypes = {\r\n action: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([Action.hover, Action.contextMenu, Action.focus, Action.click])),\r\n showAction: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([\r\n ShowAction.mouseEnter,\r\n ShowAction.contextMenu,\r\n ShowAction.focus,\r\n ShowAction.click,\r\n ])),\r\n hideAction: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([HideAction.blur, HideAction.mouseLeave, HideAction.click])),\r\n popupContent: PropTypes.node,\r\n popupCls: PropTypes.string,\r\n popupStyle: PropTypes.object,\r\n popupHidden: PropTypes.bool,\r\n popupPlacement: PropTypes.string,\r\n popupAlign: PropTypes.object,\r\n builtinPlacements: PropTypes.any,\r\n onPopupAnimateAppear: PropTypes.func,\r\n onPopupAnimateEnter: PropTypes.func,\r\n onPopupAnimateLeave: PropTypes.func,\r\n onPopupAnimateEnd: PropTypes.func,\r\n onPopupAlign: PropTypes.func,\r\n onPopupHiddenChange: PropTypes.func,\r\n getPopupStyleFromAlign: PropTypes.func,\r\n focusDelay: PropTypes.number,\r\n blurDelay: PropTypes.number,\r\n mouseEnterDelay: PropTypes.number,\r\n mouseLeaveDelay: PropTypes.number,\r\n transitionName: PropTypes.string,\r\n defaultPopupHidden: PropTypes.bool,\r\n};\r\nTrigger.defaultProps = {\r\n focusDelay: 150,\r\n blurDelay: 0,\r\n mouseEnterDelay: 100,\r\n mouseLeaveDelay: 100,\r\n transitionName: 'slide-up',\r\n defaultPopupHidden: true,\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], Trigger.prototype, \"popupHidden\", void 0);\r\ntslib_1.__decorate([\r\n mobxAction\r\n], Trigger.prototype, \"componentWillReceiveProps\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handleEvent\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handleDocumentMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handleDocumentScroll\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handlePopupMouseEnter\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handlePopupMouseLeave\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"handlePopupMouseDown\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"getRootDomNode\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"getPopupClassNameFromAlign\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Trigger.prototype, \"forcePopupAlign\", null);\r\ntslib_1.__decorate([\r\n mobxAction\r\n], Trigger.prototype, \"setPopupHidden\", null);\r\nTrigger = tslib_1.__decorate([\r\n observer\r\n], Trigger);\r\nexport default Trigger;\r\n","import { Children, cloneElement, PureComponent } from 'react';\r\nexport default class TriggerChild extends PureComponent {\r\n constructor(props, context) {\r\n super(props, context);\r\n const createChains = eventName => e => {\r\n const { [`on${eventName}`]: handle, children } = this.props;\r\n const child = Children.only(children);\r\n if (handle) {\r\n handle(eventName, child, e);\r\n }\r\n else if (child) {\r\n const { [`on${eventName}`]: childHandle } = child.props;\r\n if (childHandle) {\r\n childHandle(e);\r\n }\r\n }\r\n };\r\n this.handleContextMenu = createChains('ContextMenu');\r\n this.handleClick = createChains('Click');\r\n this.handleMouseDown = createChains('MouseDown');\r\n this.handleMouseEnter = createChains('MouseEnter');\r\n this.handleMouseLeave = createChains('MouseLeave');\r\n this.handleFocus = createChains('Focus');\r\n this.handleBlur = createChains('Blur');\r\n }\r\n render() {\r\n const { children } = this.props;\r\n return cloneElement(Children.only(children), {\r\n onContextMenu: this.handleContextMenu,\r\n onClick: this.handleClick,\r\n onMouseDown: this.handleMouseDown,\r\n onMouseEnter: this.handleMouseEnter,\r\n onMouseLeave: this.handleMouseLeave,\r\n onFocus: this.handleFocus,\r\n onBlur: this.handleBlur,\r\n });\r\n }\r\n}\r\nTriggerChild.displayName = 'TriggerChild';\r\n","export var Action;\r\n(function (Action) {\r\n Action[\"click\"] = \"click\";\r\n Action[\"focus\"] = \"focus\";\r\n Action[\"hover\"] = \"hover\";\r\n Action[\"contextMenu\"] = \"contextMenu\";\r\n})(Action || (Action = {}));\r\nexport var ShowAction;\r\n(function (ShowAction) {\r\n ShowAction[\"click\"] = \"click\";\r\n ShowAction[\"focus\"] = \"focus\";\r\n ShowAction[\"mouseEnter\"] = \"mouseEnter\";\r\n ShowAction[\"contextMenu\"] = \"contextMenu\";\r\n})(ShowAction || (ShowAction = {}));\r\nexport var HideAction;\r\n(function (HideAction) {\r\n HideAction[\"click\"] = \"click\";\r\n HideAction[\"blur\"] = \"blur\";\r\n HideAction[\"mouseLeave\"] = \"mouseLeave\";\r\n})(HideAction || (HideAction = {}));\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport omit from 'lodash/omit';\r\nimport Button from '../button/Button';\r\nimport { ButtonColor } from '../button/enum';\r\nimport autobind from '../_util/autobind';\r\nimport { FormField } from '../field/FormField';\r\nimport Icon from '../icon';\r\nimport message from '../message';\r\nimport Modal from '../modal';\r\nimport UploadList from './UploadList';\r\nimport Tooltip from '../tooltip/Tooltip';\r\nimport { $l } from '../locale-context';\r\n/**\r\n * 把XMLHttpRequest对象的返回信息转化为字符串\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @returns {string}\r\n * @memberof Upload\r\n */\r\nfunction getResponse(xhr) {\r\n const res = xhr.responseText || xhr.response;\r\n if (!res) {\r\n return res;\r\n }\r\n try {\r\n return JSON.parse(res).message;\r\n }\r\n catch (e) {\r\n return '';\r\n }\r\n}\r\nlet Upload = class Upload extends FormField {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.saveNativeInputElement = elem => (this.nativeInputElement = elem);\r\n /**\r\n * 传递包装按钮的点击事件\r\n *\r\n */\r\n this.handleWrapperBtnClick = () => {\r\n this.nativeInputElement.click();\r\n };\r\n this.handleUploadBtnClick = () => {\r\n this.startUpload();\r\n };\r\n this.startUpload = () => {\r\n const fileList = [...this.fileList];\r\n if (fileList.length) {\r\n // <-- 当有文件时才上传\r\n this.uploadFiles(fileList);\r\n this.nativeInputElement.value = '';\r\n }\r\n else {\r\n Modal.error($l('Upload', 'no_file'));\r\n }\r\n };\r\n this.handleRemove = (file) => {\r\n this.removeFileItem(file);\r\n };\r\n runInAction(() => {\r\n this.fileList = [];\r\n });\r\n }\r\n getOtherProps() {\r\n const otherProps = omit(super.getOtherProps(), [\r\n 'accept',\r\n 'action',\r\n 'data',\r\n 'header',\r\n 'multiple',\r\n 'onChange',\r\n 'ref',\r\n 'uploadImmediately',\r\n 'fileListMaxLength',\r\n 'showPreviewImage',\r\n 'previewImageWidth',\r\n 'showUploadBtn',\r\n 'onUploadSuccess',\r\n 'onUploadError',\r\n 'onFileChange',\r\n ]);\r\n return otherProps;\r\n }\r\n render() {\r\n const { prefixCls, props: { action: formAction, children, multiple, accept, name = 'file', // <-- convince ts\r\n uploadImmediately, showPreviewImage, previewImageWidth, showUploadBtn, extra, }, } = this;\r\n const uploadProps = {\r\n multiple,\r\n accept: accept ? accept.join(',') : undefined,\r\n action: formAction,\r\n name,\r\n type: 'file',\r\n ref: this.saveNativeInputElement,\r\n onChange: this.handleChange,\r\n ...this.getOtherProps(),\r\n };\r\n const inputWrapperBtn = [\r\n <Button key=\"upload-btn\" onClick={this.handleWrapperBtnClick}>\n <Icon type=\"insert_drive_file\"/>\n <span>{children || $l('Upload', 'file_selection')}</span>\n </Button>,\r\n <input key=\"upload\" {...uploadProps} hidden/>,\r\n ];\r\n const uploadBtn = (<Tooltip title={$l('Upload', 'click_to_upload')} placement=\"right\">\n <Button color={ButtonColor.primary} onClick={this.handleUploadBtnClick}>\n <Icon type=\"file_upload\"/>\n </Button>\n </Tooltip>);\r\n return (<div className={`${prefixCls}`}>\n <div className=\"flex-wrapper\">\n <div className={`${prefixCls}-select`}>\n {inputWrapperBtn}\n {!uploadImmediately && showUploadBtn ? uploadBtn : null}\n </div>\n <div>{extra}</div>\n </div>\n\n <UploadList previewImageWidth={previewImageWidth} showPreviewImage={showPreviewImage} items={[...this.fileList]} remove={this.handleRemove}/>\n </div>);\r\n }\r\n /**\r\n * 处理<input type=\"file\">元素的change事件,\r\n * 主要是取出事件对象中的files对象并传递给uploadFiles方法\r\n *\r\n * @param {*} e <input>元素的change事件对象\r\n * @memberof Upload\r\n */\r\n handleChange(e) {\r\n const fileList = e.target.files;\r\n const files = Array.from(fileList).slice(0);\r\n this.fileList = [];\r\n const fileBuffer = [];\r\n files.forEach((file, index) => {\r\n file.uid = this.getUid(index);\r\n file.url = URL.createObjectURL(file);\r\n fileBuffer.push(file);\r\n });\r\n this.fileList = fileBuffer;\r\n e.target.value = '';\r\n const { uploadImmediately, onFileChange } = this.props;\r\n if (uploadImmediately) {\r\n this.uploadFiles(this.fileList);\r\n }\r\n if (onFileChange) {\r\n onFileChange(this.fileList.slice());\r\n }\r\n }\r\n /**\r\n * 分别上传fileList中的每个文件对象\r\n *\r\n * @param {UploadFile[]} fileList 文件对象数组\r\n * @returns {void}\r\n * @memberof Upload\r\n */\r\n uploadFiles(fileList) {\r\n const { action: formAction, accept, fileListMaxLength = 0, } = this.props;\r\n if (!formAction) {\r\n Modal.error($l('Upload', 'upload_path_unset'));\r\n return;\r\n }\r\n if (!this.isAcceptFiles(fileList)) {\r\n Modal.error($l('Upload', 'not_acceptable_prompt') + accept.join(','));\r\n return;\r\n }\r\n if (fileListMaxLength !== 0 && this.fileList.length > fileListMaxLength) {\r\n Modal.error(`${$l('Upload', 'file_list_max_length')}: ${fileListMaxLength}`);\r\n return;\r\n }\r\n const files = Array.from(fileList).slice(0);\r\n const that = this;\r\n files.forEach((file, index) => {\r\n file.uid = this.getUid(index);\r\n setTimeout(function () {\r\n // that.handleStart(file);\r\n that.upload(file);\r\n }, 0);\r\n });\r\n }\r\n /**\r\n * 上传每个文件对象\r\n *\r\n * @param {*} file\r\n * @returns {void}\r\n * @memberof Upload\r\n */\r\n upload(file) {\r\n const { data, action: formAction, headers, name: filename } = this.props;\r\n if (typeof XMLHttpRequest === 'undefined') {\r\n return;\r\n }\r\n const xhr = new XMLHttpRequest();\r\n const formData = new FormData();\r\n // 修改文件状态,方便UploadList判断是否展示进度条\r\n file.status = 'uploading';\r\n if (xhr.upload) {\r\n xhr.upload.onprogress = e => {\r\n let percent = 0;\r\n if (e.total > 0) {\r\n percent = (e.loaded / e.total) * 100;\r\n }\r\n this.handleProgress(percent, file);\r\n };\r\n }\r\n if (data) {\r\n const newData = typeof data === 'function' ? data(file) : data;\r\n Object.keys(newData).forEach(key => formData.append(key, newData[key]));\r\n }\r\n // TODO: `filename` default value needs better implementation\r\n formData.append(filename || 'file', file);\r\n const errorMsg = `cannot post ${formAction} ${xhr.status}`;\r\n xhr.open('post', formAction, true);\r\n xhr.onload = () => {\r\n // 以二开头的状态码都认为是成功,暂定?\r\n const isSuccessful = xhr.status.toString().startsWith('2');\r\n if (isSuccessful) {\r\n this.handleSuccess(xhr.status, xhr.response, file);\r\n }\r\n else {\r\n this.handleError(new Error(errorMsg), getResponse(xhr), xhr.response, file);\r\n }\r\n };\r\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\r\n if (headers !== undefined) {\r\n Object.keys(headers).forEach(key => {\r\n if ({}.hasOwnProperty.call(headers, key)) {\r\n xhr.setRequestHeader(key, headers[key]);\r\n }\r\n });\r\n }\r\n xhr.send(formData);\r\n xhr.onerror = () => {\r\n this.handleError(new Error(errorMsg), getResponse(xhr), xhr.response, file);\r\n };\r\n xhr.ontimeout = () => {\r\n const timeoutMsg = `The request post for ${action} timed out`;\r\n this.handleError(new Error(timeoutMsg), getResponse(xhr), xhr.response, file);\r\n };\r\n }\r\n /**\r\n * 处理上传成功的函数,根据结果设置文件对象的状态,\r\n * 用于在UploadList中的展示\r\n *\r\n * @param {number} status HTTP状态码\r\n * @param {string} response 响应对象\r\n * @param {UploadFile} file 文件对象\r\n * @returns\r\n */\r\n handleSuccess(status, response, file) {\r\n const targetItem = this.getFileItem(file);\r\n if (targetItem) {\r\n const { onUploadSuccess } = this.props;\r\n targetItem.status = status === 200 ? 'success' : 'done';\r\n targetItem.response = response;\r\n if (onUploadSuccess) {\r\n onUploadSuccess(response, file);\r\n }\r\n this.forceUpdate();\r\n }\r\n }\r\n /**\r\n * 处理上传进度变化的函数,更新文件对象中的percent值,\r\n * 用于在UploadList中展示\r\n *\r\n * @param {number} percent 上传百分比\r\n * @param {UploadFile} file 文件对象\r\n * @returns\r\n */\r\n handleProgress(percent, file) {\r\n const { onUploadProgress } = this.props;\r\n const targetItem = this.getFileItem(file);\r\n if (targetItem) {\r\n targetItem.percent = percent;\r\n if (onUploadProgress) {\r\n onUploadProgress(percent, file);\r\n }\r\n this.forceUpdate();\r\n }\r\n }\r\n /**\r\n * 处理上传出错的函数,用于设置文件对象的status值,\r\n *\r\n * @param {Error} error 错误对象\r\n * @param {string} responseText 处理成字符串的响应对象\r\n * @param {UploadFile} file 文件对象\r\n * @returns\r\n */\r\n handleError(error, responseText, response, file) {\r\n const { onUploadError } = this.props;\r\n const targetItem = this.getFileItem(file);\r\n if (targetItem) {\r\n targetItem.status = 'error';\r\n targetItem.error = error;\r\n targetItem.response = responseText;\r\n if (onUploadError) {\r\n onUploadError(error, response, file);\r\n }\r\n this.forceUpdate();\r\n }\r\n }\r\n /**\r\n * 判断文件后缀名是否合格\r\n * this.props.accept值为falsy时返回true,否则正常判断\r\n *\r\n * @param {UploadFile[]} fileList 文件对象数组\r\n * @returns {boolean}\r\n * @memberof Upload\r\n */\r\n isAcceptFiles(fileList) {\r\n const { accept } = this.props;\r\n if (!accept) {\r\n return true;\r\n }\r\n const acceptTypes = accept.map(type => {\r\n type = type.replace(/\\./g, '\\\\.');\r\n type = type.replace(/\\*/g, '.*');\r\n return new RegExp(type);\r\n });\r\n return fileList.some(({ name, type }) => acceptTypes.some(acceptType => acceptType.test(name) || acceptType.test(type)));\r\n }\r\n /**\r\n * 使用日期获取一个uid\r\n *\r\n * @param {number} index 索引\r\n * @returns {string}\r\n * @memberof Upload\r\n */\r\n getUid(index) {\r\n const { prefixCls } = this;\r\n const now = new Date();\r\n return `${prefixCls}-${now}-${index}`;\r\n }\r\n /**\r\n * 从文件对象数组中获取一个文件对象的引用,\r\n * 首先尝试通过uid属性匹配文件对象,若失败则尝试name\r\n *\r\n * @param {UploadFile} file\r\n * @param {UploadFile[]} fileList 文件对象数组\r\n * @returns {UploadFile}\r\n * @memberof Upload\r\n */\r\n getFileItem(file) {\r\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\r\n return this.fileList.find(item => item[matchKey] === file[matchKey]);\r\n }\r\n /**\r\n * 从文件对象数组中移除一个文件对象,\r\n * 首先尝试通过uid属性匹配文件对象,若失败则尝试name\r\n *\r\n * @param {UploadFile} file\r\n * @param {UploadFile[]} fileList\r\n * @returns {UploadFile[]}\r\n * @memberof Upload\r\n */\r\n removeFileItem(file) {\r\n const { fileList } = this;\r\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\r\n const index = fileList.findIndex(item => item[matchKey] === file[matchKey]);\r\n fileList.splice(index, 1);\r\n }\r\n};\r\nUpload.displayName = 'Upload';\r\nUpload.propTypes = {\r\n /**\r\n * 可接受的上传文件类型\r\n * 可选值: MIME类型字符串组成的数组\r\n */\r\n accept: PropTypes.arrayOf(PropTypes.string),\r\n /**\r\n * 上传文件路径\r\n */\r\n action: PropTypes.string,\r\n /**\r\n * 上传所需参数或者返回上传参数的方法\r\n * @default\r\n * {}\r\n */\r\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\r\n /**\r\n * 设置上传的请求头部\r\n * @default\r\n * {}\r\n */\r\n headers: PropTypes.object,\r\n /**\r\n * 是否支持多选文件\r\n * @default\r\n * false\r\n */\r\n multiple: PropTypes.bool,\r\n uploadImmediately: PropTypes.bool,\r\n fileListMaxLength: PropTypes.number,\r\n showPreviewImage: PropTypes.bool,\r\n previewImageWidth: PropTypes.number,\r\n extra: PropTypes.any,\r\n onFileChange: PropTypes.func,\r\n onUploadProgress: PropTypes.func,\r\n onUploadSuccess: PropTypes.func,\r\n onUploadError: PropTypes.func,\r\n showUploadBtn: PropTypes.bool,\r\n ...FormField.propTypes,\r\n};\r\nUpload.defaultProps = {\r\n ...FormField.defaultProps,\r\n suffixCls: 'upload',\r\n multiple: false,\r\n headers: {},\r\n data: {},\r\n action: '',\r\n name: 'file',\r\n uploadImmediately: true,\r\n fileListMaxLength: 0,\r\n showPreviewImage: true,\r\n previewImageWidth: 100,\r\n showUploadBtn: true,\r\n onUploadSuccess: () => message.success($l('Upload', 'upload_success')),\r\n onUploadError: () => message.error($l('Upload', 'upload_failure')),\r\n};\r\ntslib_1.__decorate([\r\n observable\r\n], Upload.prototype, \"fileList\", void 0);\r\ntslib_1.__decorate([\r\n autobind,\r\n action\r\n], Upload.prototype, \"handleChange\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Upload.prototype, \"uploadFiles\", null);\r\ntslib_1.__decorate([\r\n autobind\r\n], Upload.prototype, \"upload\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Upload.prototype, \"handleSuccess\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Upload.prototype, \"handleProgress\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Upload.prototype, \"handleError\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Upload.prototype, \"removeFileItem\", null);\r\nUpload = tslib_1.__decorate([\r\n observer\r\n], Upload);\r\nexport default Upload;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { FormField } from '../field/FormField';\r\nimport Icon from '../icon';\r\nimport Progress from '../progress';\r\nimport { Size } from '../core/enum';\r\nexport default class UploadList extends FormField {\r\n render() {\r\n const { prefixCls, props: { items, remove, showPreviewImage, previewImageWidth, }, } = this;\r\n const list = items.map(file => {\r\n let previewImg;\r\n let progress;\r\n let removeIcon;\r\n const progressProps = {\r\n value: file.percent,\r\n size: Size.small,\r\n showInfo: false,\r\n };\r\n if (showPreviewImage && file.type.startsWith('image')) {\r\n // temporarily set img[width] to 100\r\n previewImg = <img width={previewImageWidth} alt={file.filename} src={file.url}/>;\r\n }\r\n if (file.status === 'uploading') {\r\n progress = (<div className={`${prefixCls}-item-progress`}>\n <Progress {...progressProps}/>\n </div>);\r\n }\r\n else {\r\n const rmProps = {\r\n className: classnames(`${prefixCls}-item-icon`, {\r\n [`${prefixCls}-item-remove`]: true,\r\n }),\r\n type: 'close',\r\n onClick: () => {\r\n remove(file);\r\n },\r\n };\r\n removeIcon = <Icon {...rmProps}/>;\r\n }\r\n const listProps = {\r\n className: classnames(`${prefixCls}-item`, {\r\n [`${prefixCls}-item-error`]: file.status === 'error',\r\n [`${prefixCls}-item-success`]: file.status === 'success',\r\n }),\r\n };\r\n return (<div {...listProps} key={file.uid}>\n {previewImg}\n <span className={`${prefixCls}-item-name`}>{file.name}</span>\n {progress}\n {removeIcon}\n </div>);\r\n });\r\n const listWrapperCls = items.length ? `${prefixCls}` : `${prefixCls}-empty`;\r\n return (<div className={listWrapperCls}>\n {list}\n </div>);\r\n }\r\n}\r\nUploadList.displayName = 'UploadList';\r\nUploadList.propTypes = {\r\n items: PropTypes.array,\r\n remove: PropTypes.func,\r\n ...FormField.propTypes,\r\n};\r\nUploadList.defaultProps = {\r\n ...FormField.defaultProps,\r\n suffixCls: 'upload-list',\r\n items: [],\r\n};\r\n","import Upload from './Upload';\r\nexport default Upload;\r\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\r\nimport './index.less';\r\n","import * as tslib_1 from \"tslib\";\r\nimport { observer } from 'mobx-react';\r\nimport { computed } from 'mobx';\r\nimport { TextField } from '../text-field/TextField';\r\nimport { $l } from '../locale-context';\r\nimport { FieldType } from '../data-set/enum';\r\nlet UrlField = class UrlField extends TextField {\r\n constructor() {\r\n super(...arguments);\r\n this.type = 'url';\r\n }\r\n get defaultValidationMessages() {\r\n const label = this.getProp('label');\r\n return {\r\n valueMissing: $l('UrlField', label ? 'value_missing' : 'value_missing_no_label', { label }),\r\n typeMismatch: $l('UrlField', 'type_mismatch'),\r\n };\r\n }\r\n getFieldType() {\r\n return FieldType.url;\r\n }\r\n};\r\nUrlField.displayName = 'UrlField';\r\ntslib_1.__decorate([\r\n computed\r\n], UrlField.prototype, \"defaultValidationMessages\", null);\r\nUrlField = tslib_1.__decorate([\r\n observer\r\n], UrlField);\r\nexport default UrlField;\r\n","import UrlField from './UrlField';\r\nexport default UrlField;\r\n","import '../../text-field/style';\r\n","export default class ValidationResult {\r\n constructor(props) {\r\n Object.assign(this, props);\r\n }\r\n}\r\n","import * as tslib_1 from \"tslib\";\r\nimport React from 'react';\r\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\r\nimport isString from 'lodash/isString';\r\nimport omitBy from 'lodash/omitBy';\r\nimport isUndefined from 'lodash/isUndefined';\r\nimport { getConfig } from 'choerodon-ui/lib/configure';\r\nimport Validity from './Validity';\r\nimport ValidationResult from './ValidationResult';\r\nimport validationRules from './rules';\r\nimport valueMissing from './rules/valueMissing';\r\nimport getReactNodeText from '../_util/getReactNodeText';\r\nexport default class Validator {\r\n constructor(field, control) {\r\n runInAction(() => {\r\n this.field = field;\r\n this.control = control;\r\n this.innerValidationResults = [];\r\n });\r\n }\r\n get props() {\r\n const { control, field } = this;\r\n const controlProps = control && omitBy(control.getValidatorProps(), isUndefined);\r\n const fieldProps = field && field.getValidatorProps();\r\n return {\r\n ...fieldProps,\r\n ...controlProps,\r\n defaultValidationMessages: {\r\n ...(controlProps && controlProps.defaultValidationMessages),\r\n ...getConfig('defaultValidationMessages'),\r\n ...(fieldProps && fieldProps.defaultValidationMessages),\r\n },\r\n };\r\n }\r\n get uniqueRefFields() {\r\n const { name, unique, record } = this.props;\r\n if (record && isString(unique)) {\r\n return [...record.fields.values()].filter(field => field.name !== name &&\r\n field.get('unique') === unique &&\r\n !field.get('multiple') &&\r\n !field.get('range'));\r\n }\r\n return [];\r\n }\r\n // @computed\r\n // private get bindingFieldWithValidationResult(): Field | undefined {\r\n // const { name, record, type } = this.props;\r\n // if (record && name && type === FieldType.object) {\r\n // return findBindField(name, record.fields, field => !field.isValid());\r\n // }\r\n // return undefined;\r\n // }\r\n get uniqueRefValidationResult() {\r\n const { uniqueRefFields } = this;\r\n let validationResult;\r\n if (uniqueRefFields.length &&\r\n this.innerValidationResults.every(result => result.ruleName !== 'uniqueError')) {\r\n uniqueRefFields.some(uniqueRefField => {\r\n validationResult = uniqueRefField.validator.innerValidationResults.find(result => result.ruleName === 'uniqueError');\r\n return !!validationResult;\r\n });\r\n }\r\n return validationResult;\r\n }\r\n get validationResults() {\r\n const { uniqueRefValidationResult } = this;\r\n if (uniqueRefValidationResult) {\r\n return [uniqueRefValidationResult];\r\n }\r\n const { innerValidationResults } = this;\r\n if (innerValidationResults.length) {\r\n return innerValidationResults;\r\n }\r\n // const { bindingFieldWithValidationResult } = this;\r\n // if (bindingFieldWithValidationResult) {\r\n // return bindingFieldWithValidationResult.getValidationErrorValues();\r\n // }\r\n return [];\r\n }\r\n get currentValidationResult() {\r\n const { validationResults } = this;\r\n return validationResults.length ? validationResults[0] : undefined;\r\n }\r\n get validity() {\r\n const { currentValidationResult } = this;\r\n return new Validity(currentValidationResult ? { [currentValidationResult.ruleName]: true } : undefined);\r\n }\r\n get injectionOptions() {\r\n const { currentValidationResult } = this;\r\n return (currentValidationResult && currentValidationResult.injectionOptions) || {};\r\n }\r\n get validationMessage() {\r\n const { currentValidationResult } = this;\r\n return currentValidationResult && currentValidationResult.validationMessage;\r\n }\r\n reset() {\r\n this.clearErrors();\r\n const { uniqueRefFields } = this;\r\n if (uniqueRefFields.length) {\r\n uniqueRefFields.forEach(uniqueRefField => uniqueRefField.validator.clearErrors());\r\n }\r\n }\r\n async report(ret) {\r\n const { name, dataSet, record } = this.props;\r\n if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\r\n const { validationMessage, value } = ret;\r\n const reportMessage = [\r\n 'validation:',\r\n isString(validationMessage)\r\n ? validationMessage\r\n : await getReactNodeText(<span>{validationMessage}</span>),\r\n ];\r\n if (dataSet) {\r\n const { name: dsName, id } = dataSet;\r\n if (dsName || id) {\r\n reportMessage.push(`\n[dataSet<${dsName || id}>]:`, dataSet);\r\n }\r\n else {\r\n reportMessage.push('\\n[dataSet]:', dataSet);\r\n }\r\n }\r\n if (record) {\r\n if (dataSet) {\r\n reportMessage.push(`\n[record<${dataSet.indexOf(record)}>]:`, record);\r\n }\r\n else {\r\n reportMessage.push(`\\n[record]:`, record);\r\n }\r\n reportMessage.push(`\n[field<${name}>]:`, record.getField(name));\r\n }\r\n else {\r\n reportMessage.push('[field]:', name);\r\n }\r\n reportMessage.push('\\n[value]:', value);\r\n console.warn(...reportMessage);\r\n }\r\n }\r\n clearErrors() {\r\n this.innerValidationResults = [];\r\n }\r\n addError(result) {\r\n this.innerValidationResults.push(result);\r\n this.report(result);\r\n }\r\n async execute(rules, value) {\r\n const { props } = this;\r\n const method = rules.shift();\r\n if (method) {\r\n const results = await Promise.all(value.map(item => method(item, props)));\r\n results.forEach(result => {\r\n if (result instanceof ValidationResult) {\r\n this.addError(result);\r\n const index = value.indexOf(result.value);\r\n if (index !== -1) {\r\n value.splice(index, 1);\r\n }\r\n }\r\n });\r\n if (value.length) {\r\n await this.execute(rules, value);\r\n }\r\n }\r\n }\r\n async checkValidity(value = null) {\r\n const valueMiss = valueMissing(value, this.props);\r\n this.clearErrors();\r\n if (valueMiss !== true) {\r\n this.addError(valueMiss);\r\n }\r\n else {\r\n const { multiple } = this.props;\r\n await this.execute(validationRules.slice(), multiple && isArrayLike(value) ? value.slice() : [value]);\r\n }\r\n return this.validity.valid;\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], Validator.prototype, \"field\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validator.prototype, \"control\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validator.prototype, \"innerValidationResults\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"props\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"uniqueRefFields\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"uniqueRefValidationResult\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"validationResults\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"currentValidationResult\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"validity\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"injectionOptions\", null);\r\ntslib_1.__decorate([\r\n computed\r\n], Validator.prototype, \"validationMessage\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Validator.prototype, \"reset\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Validator.prototype, \"report\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Validator.prototype, \"clearErrors\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Validator.prototype, \"addError\", null);\r\n","import * as tslib_1 from \"tslib\";\r\nimport { action, computed, observable } from 'mobx';\r\nexport default class Validity {\r\n constructor(props) {\r\n this.init(props);\r\n }\r\n get valid() {\r\n return Object.keys(this)\r\n .filter(key => key !== 'valid')\r\n .every(key => !this[key]);\r\n }\r\n reset() {\r\n this.init();\r\n }\r\n init(props) {\r\n this.badInput = false;\r\n this.customError = false;\r\n this.patternMismatch = false;\r\n this.rangeOverflow = false;\r\n this.rangeUnderflow = false;\r\n this.stepMismatch = false;\r\n this.tooLong = false;\r\n this.tooShort = false;\r\n this.typeMismatch = false;\r\n this.valueMissing = false;\r\n this.uniqueError = false;\r\n if (props) {\r\n Object.assign(this, props);\r\n }\r\n }\r\n}\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"badInput\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"customError\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"patternMismatch\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"rangeOverflow\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"rangeUnderflow\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"stepMismatch\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"tooLong\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"tooShort\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"typeMismatch\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"valueMissing\", void 0);\r\ntslib_1.__decorate([\r\n observable\r\n], Validity.prototype, \"uniqueError\", void 0);\r\ntslib_1.__decorate([\r\n computed\r\n], Validity.prototype, \"valid\", null);\r\ntslib_1.__decorate([\r\n action\r\n], Validity.prototype, \"init\", null);\r\n","import isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport { FieldType } from '../../data-set/enum';\r\nexport default function badInput(value, props) {\r\n const { type, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && type === FieldType.number && isNaN(value)) {\r\n const ruleName = 'badInput';\r\n const { [ruleName]: validationMessage = $l('Validator', 'bad_input'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n return true;\r\n}\r\n","import isString from 'lodash/isString';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nexport default async function customError(value, props) {\r\n const { customValidator, name, record, form } = props;\r\n if (typeof customValidator === 'function') {\r\n const result = await customValidator(value, name, record || form);\r\n if (isString(result) || result === false) {\r\n return new ValidationResult({\r\n validationMessage: result || $l('Validator', 'unknown'),\r\n value,\r\n ruleName: 'customError',\r\n });\r\n }\r\n }\r\n return true;\r\n}\r\n","import badInput from './badInput';\r\nimport patternMismatch from './patternMismatch';\r\nimport rangeOverflow from './rangeOverflow';\r\nimport rangeUnderflow from './rangeUnderflow';\r\nimport stepMismatch from './stepMismatch';\r\nimport tooLong from './tooLong';\r\nimport tooShort from './tooShort';\r\nimport typeMismatch from './typeMismatch';\r\nimport customError from './customError';\r\nimport uniqueError from './uniqueError';\r\nconst validationRules = [\r\n badInput,\r\n patternMismatch,\r\n rangeOverflow,\r\n rangeUnderflow,\r\n stepMismatch,\r\n tooLong,\r\n tooShort,\r\n typeMismatch,\r\n customError,\r\n uniqueError,\r\n];\r\nexport default validationRules;\r\n","import isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nfunction generatePattern(pattern) {\r\n if (pattern instanceof RegExp) {\r\n return pattern;\r\n }\r\n const begin = pattern.startsWith('^') ? '' : '^';\r\n const end = pattern.endsWith('$') ? '' : '$';\r\n return new RegExp(`${begin}${pattern}${end}`);\r\n}\r\nexport default function patternMismatch(value, props) {\r\n const { pattern, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && !!pattern && !generatePattern(pattern).test(value)) {\r\n const ruleName = 'patternMismatch';\r\n const { [ruleName]: validationMessage = $l('Validator', 'pattern_mismatch'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n return true;\r\n}\r\n","import { isMoment } from 'moment';\r\nimport isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nexport default function rangeOverflow(value, props) {\r\n const { max, label, format, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && max !== undefined && Number(value) > Number(max)) {\r\n const injectionOptions = { max: isMoment(max) ? max.format(format) : max, label };\r\n const ruleName = 'rangeOverflow';\r\n const { [ruleName]: validationMessage = $l('Validator', 'range_overflow'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n return true;\r\n}\r\n","import { isMoment } from 'moment';\r\nimport isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nexport default function rangeUnderflow(value, props) {\r\n const { min, label, format, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && min !== undefined && Number(value) < Number(min)) {\r\n const injectionOptions = { min: isMoment(min) ? min.format(format) : min, label };\r\n const ruleName = 'rangeUnderflow';\r\n const { [ruleName]: validationMessage = $l('Validator', 'range_underflow'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n return true;\r\n}\r\n","import isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport { getNearStepValues } from '../../number-field/utils';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nexport default function stepMismatch(value, props) {\r\n const { step, min, max, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && step !== undefined) {\r\n const nearStepValues = getNearStepValues(Number(value), step, min, max);\r\n if (nearStepValues !== undefined) {\r\n const injectionOptions = {\r\n 0: nearStepValues[0],\r\n 1: nearStepValues[1],\r\n };\r\n const ruleName = nearStepValues.length === 2 ? 'stepMismatchBetween' : 'stepMismatch';\r\n const key = nearStepValues.length === 2 ? 'step_mismatch_between' : 'step_mismatch';\r\n const { [ruleName]: validationMessage = $l('Validator', key) } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n }\r\n return true;\r\n}\r\n","import isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nexport default function tooLong(value, props) {\r\n const { maxLength, defaultValidationMessages } = props;\r\n if (!isEmpty(value)) {\r\n const { length } = value.toString();\r\n if (!!maxLength && maxLength > 0 && length > maxLength) {\r\n const injectionOptions = { maxLength, length };\r\n const ruleName = 'tooLong';\r\n const { [ruleName]: validationMessage = $l('Validator', 'too_long'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n }\r\n return true;\r\n}\r\n","import isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nexport default function tooShort(value, props) {\r\n const { minLength, defaultValidationMessages } = props;\r\n if (!isEmpty(value)) {\r\n const { length } = value.toString();\r\n if (!!minLength && minLength > 0 && length < minLength) {\r\n const injectionOptions = { minLength, length };\r\n const ruleName = 'tooShort';\r\n const { [ruleName]: validationMessage = $l('Validator', 'too_short'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n }\r\n return true;\r\n}\r\n","import { isMoment } from 'moment';\r\nimport isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport { FieldType } from '../../data-set/enum';\r\nimport { toRangeValue } from '../../field/utils';\r\n/* eslint-disable */\r\nconst emailReg = /^([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d))*$/;\r\nconst urlReg = /^(?:(?:https?|HTTPS?|ftp|FTP):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)*)(?::\\d{2,5})?(?:[\\/?#]\\S*)?$/;\r\nconst colorRgbaReg = /^[rR][gG][Bb][Aa]?\\((\\s*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)\\s*,){2}\\s*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)\\s*,?\\s*(0?\\.\\d{1,2}|1|0)?\\s*\\){1}$/;\r\nconst colorHexReg = /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/;\r\n/* eslint-enable */\r\nconst isDate = (value, range) => {\r\n if (range) {\r\n return toRangeValue(value, range).some(item => item && (!isMoment(item) || !item.isValid()));\r\n }\r\n return !isMoment(value) || !value.isValid();\r\n};\r\nconst types = {\r\n [FieldType.email]: [value => !emailReg.test(value), 'EmailField'],\r\n [FieldType.url]: [value => !urlReg.test(value), 'UrlField'],\r\n [FieldType.color]: [\r\n value => !(colorRgbaReg.test(value) || colorHexReg.test(value)),\r\n 'ColorPicker',\r\n ],\r\n [FieldType.date]: [isDate, 'DatePicker'],\r\n [FieldType.dateTime]: [isDate, 'DatePicker'],\r\n [FieldType.week]: [isDate, 'DatePicker'],\r\n [FieldType.month]: [isDate, 'DatePicker'],\r\n [FieldType.year]: [isDate, 'DatePicker'],\r\n [FieldType.time]: [isDate, 'DatePicker'],\r\n};\r\nexport default function typeMismatch(value, props) {\r\n const { type, defaultValidationMessages, range } = props;\r\n if (!isEmpty(value) && type) {\r\n const validateType = types[type];\r\n if (validateType) {\r\n const [validate, component] = validateType;\r\n if (validate(value, range)) {\r\n const ruleName = 'typeMismatch';\r\n const { [ruleName]: validationMessage = $l(component, 'type_mismatch'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n","import isString from 'lodash/isString';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport isEmpty from '../../_util/isEmpty';\r\nimport { axiosConfigAdapter } from '../../data-set/utils';\r\nexport default async function uniqueError(value, props) {\r\n const { dataSet, record, unique, name, multiple, range, defaultValidationMessages } = props;\r\n if (!isEmpty(value) && dataSet && record && unique && name && !multiple && !range) {\r\n const myField = record.getField(name);\r\n if (myField) {\r\n let { dirty } = myField;\r\n const fields = { [name]: value };\r\n if (isString(unique) &&\r\n [...record.fields.entries()].some(([fieldName, field]) => {\r\n if (fieldName !== name &&\r\n field &&\r\n field.get('unique') === unique &&\r\n !field.get('multiple') &&\r\n !field.get('range')) {\r\n const otherValue = record.get(fieldName);\r\n if (isEmpty(otherValue)) {\r\n return true;\r\n }\r\n if (!dirty && field.dirty) {\r\n dirty = true;\r\n }\r\n fields[fieldName] = otherValue;\r\n }\r\n return false;\r\n })) {\r\n return true;\r\n }\r\n if (!dirty) {\r\n return true;\r\n }\r\n let invalid = dataSet.data.some(item => item !== record && Object.keys(fields).every(field => fields[field] === item.get(field)));\r\n if (!invalid) {\r\n const newConfig = axiosConfigAdapter('validate', dataSet, { unique: [fields] });\r\n if (newConfig.url) {\r\n const results = await dataSet.axios(newConfig);\r\n invalid = [].concat(results).some(result => !result);\r\n }\r\n }\r\n if (invalid) {\r\n const ruleName = 'uniqueError';\r\n const { [ruleName]: validationMessage = $l('Validator', 'unique'), } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n","import { isArrayLike } from 'mobx';\r\nimport isEmpty from '../../_util/isEmpty';\r\nimport ValidationResult from '../ValidationResult';\r\nimport { $l } from '../../locale-context';\r\nimport formatReactTemplate from '../../formatter/formatReactTemplate';\r\nfunction isEmptyArray(value) {\r\n return isEmpty(value) || (isArrayLike(value) && value.length === 0);\r\n}\r\nexport default function valueMissing(value, props) {\r\n const { required, label, multiple, range, defaultValidationMessages } = props;\r\n if (required &&\r\n (isEmptyArray(value) || (multiple && range && value.every(item => isEmptyArray(item))))) {\r\n const injectionOptions = { label };\r\n const key = label ? 'value_missing' : 'value_missing_no_label';\r\n const ruleName = label ? 'valueMissing' : 'valueMissingNoLabel';\r\n const { [ruleName]: validationMessage = $l('Validator', key) } = defaultValidationMessages;\r\n return new ValidationResult({\r\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\r\n injectionOptions,\r\n value,\r\n ruleName,\r\n });\r\n }\r\n return true;\r\n}\r\n","// extracted by mini-css-extract-plugin","import './index.less';\r\n","import DatePicker from '../date-picker/DatePicker';\r\nimport { ViewMode } from '../date-picker/enum';\r\nexport default class WeekPicker extends DatePicker {\r\n}\r\nWeekPicker.displayName = 'WeekPicker';\r\nWeekPicker.defaultProps = {\r\n ...DatePicker.defaultProps,\r\n mode: ViewMode.week,\r\n};\r\n","import WeekPicker from './WeekPicker';\r\nexport default WeekPicker;\r\n","// style dependencies\r\nimport '../../date-picker/style';\r\n","import DatePicker from '../date-picker/DatePicker';\r\nimport { ViewMode } from '../date-picker/enum';\r\nexport default class YearPicker extends DatePicker {\r\n}\r\nYearPicker.displayName = 'YearPicker';\r\nYearPicker.defaultProps = {\r\n ...DatePicker.defaultProps,\r\n mode: ViewMode.year,\r\n};\r\n","import YearPicker from './YearPicker';\r\nexport default YearPicker;\r\n","// style dependencies\r\nimport '../../date-picker/style';\r\n","function on(eventName, fn, el, useCapture) {\r\n if (el) {\r\n if (el.addEventListener) {\r\n el.addEventListener(eventName, fn, useCapture);\r\n }\r\n else if (el.attachEvent) {\r\n el.attachEvent(`on${eventName}`, fn);\r\n }\r\n }\r\n}\r\nfunction off(eventName, fn, el, useCapture) {\r\n if (el) {\r\n if (el.removeEventListener) {\r\n el.removeEventListener(eventName, fn, useCapture);\r\n }\r\n else if (el.attachEvent) {\r\n el.detachEvent(`on${eventName}`, fn);\r\n }\r\n }\r\n}\r\nexport default class EventManager {\r\n constructor(el) {\r\n this.events = {};\r\n this.el = el;\r\n }\r\n addEventListener(eventName, fn, useCapture = false) {\r\n eventName = eventName.toLowerCase();\r\n const events = this.events[eventName] || [];\r\n const index = events.findIndex(([event]) => event === fn);\r\n if (index === -1) {\r\n events.push([fn, useCapture]);\r\n this.events[eventName] = events;\r\n on(eventName, fn, this.el, useCapture);\r\n }\r\n return this;\r\n }\r\n removeEventListener(eventName, fn, useCapture = false) {\r\n eventName = eventName.toLowerCase();\r\n const events = this.events[eventName];\r\n if (events) {\r\n if (fn) {\r\n const index = events.findIndex(([event]) => event === fn);\r\n if (index !== -1) {\r\n events.splice(index, 1);\r\n }\r\n off(eventName, fn, this.el, useCapture);\r\n }\r\n else {\r\n this.events[eventName] = this.el\r\n ? (this.events[eventName] || []).filter(([event, capture]) => {\r\n off(eventName, event, this.el, capture);\r\n return false;\r\n })\r\n : [];\r\n }\r\n }\r\n return this;\r\n }\r\n fireEvent(eventName, ...rest) {\r\n const events = this.events[eventName.toLowerCase()];\r\n return events\r\n ? Promise.all(events.map(([fn]) => fn(...rest))).then(all => all.every(result => result !== false))\r\n : Promise.resolve(true);\r\n }\r\n clear() {\r\n if (this.el) {\r\n Object.keys(this.events).forEach(eventName => this.removeEventListener(eventName));\r\n }\r\n this.events = {};\r\n return this;\r\n }\r\n}\r\nexport function preventDefault(e) {\r\n e.preventDefault();\r\n}\r\nexport function stopPropagation(e) {\r\n e.stopPropagation();\r\n}\r\nexport function stopEvent(e) {\r\n preventDefault(e);\r\n stopPropagation(e);\r\n}\r\n","export default class KeyCode {\r\n /*\r\n whether text and modified key is entered at the same time.\r\n */\r\n static isTextModifyingKeyEvent(e) {\r\n const keyCode = e.keyCode;\r\n if ((e.altKey && !e.ctrlKey) ||\r\n e.metaKey ||\r\n // Function keys don't generate text\r\n (keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12)) {\r\n return false;\r\n }\r\n // The following keys are quite harmless, even in combination with\r\n // CTRL, ALT or SHIFT.\r\n switch (keyCode) {\r\n case KeyCode.ALT:\r\n case KeyCode.CAPS_LOCK:\r\n case KeyCode.CONTEXT_MENU:\r\n case KeyCode.CTRL:\r\n case KeyCode.DOWN:\r\n case KeyCode.END:\r\n case KeyCode.ESC:\r\n case KeyCode.HOME:\r\n case KeyCode.INSERT:\r\n case KeyCode.LEFT:\r\n case KeyCode.MAC_FF_META:\r\n case KeyCode.META:\r\n case KeyCode.NUMLOCK:\r\n case KeyCode.NUM_CENTER:\r\n case KeyCode.PAGE_DOWN:\r\n case KeyCode.PAGE_UP:\r\n case KeyCode.PAUSE:\r\n case KeyCode.PRINT_SCREEN:\r\n case KeyCode.RIGHT:\r\n case KeyCode.SHIFT:\r\n case KeyCode.UP:\r\n case KeyCode.WIN_KEY:\r\n case KeyCode.WIN_KEY_RIGHT:\r\n return false;\r\n default:\r\n return true;\r\n }\r\n }\r\n /*\r\n whether character is entered.\r\n */\r\n static isCharacterKey(keyCode) {\r\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\r\n return true;\r\n }\r\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\r\n return true;\r\n }\r\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\r\n return true;\r\n }\r\n // Safari sends zero key code for non-latin characters.\r\n if (keyCode === 0 &&\r\n typeof window !== 'undefined' &&\r\n window.navigator.userAgent.indexOf('WebKit') !== -1) {\r\n return true;\r\n }\r\n switch (keyCode) {\r\n case KeyCode.SPACE:\r\n case KeyCode.QUESTION_MARK:\r\n case KeyCode.NUM_PLUS:\r\n case KeyCode.NUM_MINUS:\r\n case KeyCode.NUM_PERIOD:\r\n case KeyCode.NUM_DIVISION:\r\n case KeyCode.SEMICOLON:\r\n case KeyCode.DASH:\r\n case KeyCode.EQUALS:\r\n case KeyCode.COMMA:\r\n case KeyCode.PERIOD:\r\n case KeyCode.SLASH:\r\n case KeyCode.APOSTROPHE:\r\n case KeyCode.SINGLE_QUOTE:\r\n case KeyCode.OPEN_SQUARE_BRACKET:\r\n case KeyCode.BACKSLASH:\r\n case KeyCode.CLOSE_SQUARE_BRACKET:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n/**\r\n * MAC_ENTER\r\n */\r\nKeyCode.MAC_ENTER = 3;\r\n/**\r\n * BACKSPACE\r\n */\r\nKeyCode.BACKSPACE = 8;\r\n/**\r\n * TAB\r\n */\r\nKeyCode.TAB = 9;\r\n/**\r\n * NUMLOCK on FF/Safari Mac\r\n */\r\nKeyCode.NUM_CENTER = 12; // NUMLOCK on FF/Safari Mac\r\n/**\r\n * ENTER\r\n */\r\nKeyCode.ENTER = 13;\r\n/**\r\n * SHIFT\r\n */\r\nKeyCode.SHIFT = 16;\r\n/**\r\n * CTRL\r\n */\r\nKeyCode.CTRL = 17;\r\n/**\r\n * ALT\r\n */\r\nKeyCode.ALT = 18;\r\n/**\r\n * PAUSE\r\n */\r\nKeyCode.PAUSE = 19;\r\n/**\r\n * CAPS_LOCK\r\n */\r\nKeyCode.CAPS_LOCK = 20;\r\n/**\r\n * ESC\r\n */\r\nKeyCode.ESC = 27;\r\n/**\r\n * SPACE\r\n */\r\nKeyCode.SPACE = 32;\r\n/**\r\n * PAGE_UP\r\n */\r\nKeyCode.PAGE_UP = 33; // also NUM_NORTH_EAST\r\n/**\r\n * PAGE_DOWN\r\n */\r\nKeyCode.PAGE_DOWN = 34; // also NUM_SOUTH_EAST\r\n/**\r\n * END\r\n */\r\nKeyCode.END = 35; // also NUM_SOUTH_WEST\r\n/**\r\n * HOME\r\n */\r\nKeyCode.HOME = 36; // also NUM_NORTH_WEST\r\n/**\r\n * LEFT\r\n */\r\nKeyCode.LEFT = 37; // also NUM_WEST\r\n/**\r\n * UP\r\n */\r\nKeyCode.UP = 38; // also NUM_NORTH\r\n/**\r\n * RIGHT\r\n */\r\nKeyCode.RIGHT = 39; // also NUM_EAST\r\n/**\r\n * DOWN\r\n */\r\nKeyCode.DOWN = 40; // also NUM_SOUTH\r\n/**\r\n * PRINT_SCREEN\r\n */\r\nKeyCode.PRINT_SCREEN = 44;\r\n/**\r\n * INSERT\r\n */\r\nKeyCode.INSERT = 45; // also NUM_INSERT\r\n/**\r\n * DELETE\r\n */\r\nKeyCode.DELETE = 46; // also NUM_DELETE\r\n/**\r\n * ZERO\r\n */\r\nKeyCode.ZERO = 48;\r\n/**\r\n * ONE\r\n */\r\nKeyCode.ONE = 49;\r\n/**\r\n * TWO\r\n */\r\nKeyCode.TWO = 50;\r\n/**\r\n * THREE\r\n */\r\nKeyCode.THREE = 51;\r\n/**\r\n * FOUR\r\n */\r\nKeyCode.FOUR = 52;\r\n/**\r\n * FIVE\r\n */\r\nKeyCode.FIVE = 53;\r\n/**\r\n * SIX\r\n */\r\nKeyCode.SIX = 54;\r\n/**\r\n * SEVEN\r\n */\r\nKeyCode.SEVEN = 55;\r\n/**\r\n * EIGHT\r\n */\r\nKeyCode.EIGHT = 56;\r\n/**\r\n * NINE\r\n */\r\nKeyCode.NINE = 57;\r\n/**\r\n * QUESTION_MARK\r\n */\r\nKeyCode.QUESTION_MARK = 63; // needs localization\r\n/**\r\n * A\r\n */\r\nKeyCode.A = 65;\r\n/**\r\n * B\r\n */\r\nKeyCode.B = 66;\r\n/**\r\n * C\r\n */\r\nKeyCode.C = 67;\r\n/**\r\n * D\r\n */\r\nKeyCode.D = 68;\r\n/**\r\n * E\r\n */\r\nKeyCode.E = 69;\r\n/**\r\n * F\r\n */\r\nKeyCode.F = 70;\r\n/**\r\n * G\r\n */\r\nKeyCode.G = 71;\r\n/**\r\n * H\r\n */\r\nKeyCode.H = 72;\r\n/**\r\n * I\r\n */\r\nKeyCode.I = 73;\r\n/**\r\n * J\r\n */\r\nKeyCode.J = 74;\r\n/**\r\n * K\r\n */\r\nKeyCode.K = 75;\r\n/**\r\n * L\r\n */\r\nKeyCode.L = 76;\r\n/**\r\n * M\r\n */\r\nKeyCode.M = 77;\r\n/**\r\n * N\r\n */\r\nKeyCode.N = 78;\r\n/**\r\n * O\r\n */\r\nKeyCode.O = 79;\r\n/**\r\n * P\r\n */\r\nKeyCode.P = 80;\r\n/**\r\n * Q\r\n */\r\nKeyCode.Q = 81;\r\n/**\r\n * R\r\n */\r\nKeyCode.R = 82;\r\n/**\r\n * S\r\n */\r\nKeyCode.S = 83;\r\n/**\r\n * T\r\n */\r\nKeyCode.T = 84;\r\n/**\r\n * U\r\n */\r\nKeyCode.U = 85;\r\n/**\r\n * V\r\n */\r\nKeyCode.V = 86;\r\n/**\r\n * W\r\n */\r\nKeyCode.W = 87;\r\n/**\r\n * X\r\n */\r\nKeyCode.X = 88;\r\n/**\r\n * Y\r\n */\r\nKeyCode.Y = 89;\r\n/**\r\n * Z\r\n */\r\nKeyCode.Z = 90;\r\n/**\r\n * META\r\n */\r\nKeyCode.META = 91; // WIN_KEY_LEFT\r\n/**\r\n * WIN_KEY_RIGHT\r\n */\r\nKeyCode.WIN_KEY_RIGHT = 92;\r\n/**\r\n * CONTEXT_MENU\r\n */\r\nKeyCode.CONTEXT_MENU = 93;\r\n/**\r\n * NUM_ZERO\r\n */\r\nKeyCode.NUM_ZERO = 96;\r\n/**\r\n * NUM_ONE\r\n */\r\nKeyCode.NUM_ONE = 97;\r\n/**\r\n * NUM_TWO\r\n */\r\nKeyCode.NUM_TWO = 98;\r\n/**\r\n * NUM_THREE\r\n */\r\nKeyCode.NUM_THREE = 99;\r\n/**\r\n * NUM_FOUR\r\n */\r\nKeyCode.NUM_FOUR = 100;\r\n/**\r\n * NUM_FIVE\r\n */\r\nKeyCode.NUM_FIVE = 101;\r\n/**\r\n * NUM_SIX\r\n */\r\nKeyCode.NUM_SIX = 102;\r\n/**\r\n * NUM_SEVEN\r\n */\r\nKeyCode.NUM_SEVEN = 103;\r\n/**\r\n * NUM_EIGHT\r\n */\r\nKeyCode.NUM_EIGHT = 104;\r\n/**\r\n * NUM_NINE\r\n */\r\nKeyCode.NUM_NINE = 105;\r\n/**\r\n * NUM_MULTIPLY\r\n */\r\nKeyCode.NUM_MULTIPLY = 106;\r\n/**\r\n * NUM_PLUS\r\n */\r\nKeyCode.NUM_PLUS = 107;\r\n/**\r\n * NUM_MINUS\r\n */\r\nKeyCode.NUM_MINUS = 109;\r\n/**\r\n * NUM_PERIOD\r\n */\r\nKeyCode.NUM_PERIOD = 110;\r\n/**\r\n * NUM_DIVISION\r\n */\r\nKeyCode.NUM_DIVISION = 111;\r\n/**\r\n * F1\r\n */\r\nKeyCode.F1 = 112;\r\n/**\r\n * F2\r\n */\r\nKeyCode.F2 = 113;\r\n/**\r\n * F3\r\n */\r\nKeyCode.F3 = 114;\r\n/**\r\n * F4\r\n */\r\nKeyCode.F4 = 115;\r\n/**\r\n * F5\r\n */\r\nKeyCode.F5 = 116;\r\n/**\r\n * F6\r\n */\r\nKeyCode.F6 = 117;\r\n/**\r\n * F7\r\n */\r\nKeyCode.F7 = 118;\r\n/**\r\n * F8\r\n */\r\nKeyCode.F8 = 119;\r\n/**\r\n * F9\r\n */\r\nKeyCode.F9 = 120;\r\n/**\r\n * F10\r\n */\r\nKeyCode.F10 = 121;\r\n/**\r\n * F11\r\n */\r\nKeyCode.F11 = 122;\r\n/**\r\n * F12\r\n */\r\nKeyCode.F12 = 123;\r\n/**\r\n * NUMLOCK\r\n */\r\nKeyCode.NUMLOCK = 144;\r\n/**\r\n * SEMICOLON\r\n */\r\nKeyCode.SEMICOLON = 186; // needs localization\r\n/**\r\n * DASH\r\n */\r\nKeyCode.DASH = 189; // needs localization\r\n/**\r\n * EQUALS\r\n */\r\nKeyCode.EQUALS = 187; // needs localization\r\n/**\r\n * COMMA\r\n */\r\nKeyCode.COMMA = 188; // needs localization\r\n/**\r\n * PERIOD\r\n */\r\nKeyCode.PERIOD = 190; // needs localization\r\n/**\r\n * SLASH\r\n */\r\nKeyCode.SLASH = 191; // needs localization\r\n/**\r\n * APOSTROPHE\r\n */\r\nKeyCode.APOSTROPHE = 192; // needs localization\r\n/**\r\n * SINGLE_QUOTE\r\n */\r\nKeyCode.SINGLE_QUOTE = 222; // needs localization\r\n/**\r\n * OPEN_SQUARE_BRACKET\r\n */\r\nKeyCode.OPEN_SQUARE_BRACKET = 219; // needs localization\r\n/**\r\n * BACKSLASH\r\n */\r\nKeyCode.BACKSLASH = 220; // needs localization\r\n/**\r\n * CLOSE_SQUARE_BRACKET\r\n */\r\nKeyCode.CLOSE_SQUARE_BRACKET = 221; // needs localization\r\n/**\r\n * WIN_KEY\r\n */\r\nKeyCode.WIN_KEY = 224;\r\n/**\r\n * MAC_FF_META\r\n */\r\nKeyCode.MAC_FF_META = 224; // Firefox (Gecko) fires this for the meta key instead of 91\r\n/**\r\n * WIN_IME\r\n */\r\nKeyCode.WIN_IME = 229;\r\n","export default class TaskRunner {\r\n constructor(fn) {\r\n this.callbacks = [];\r\n if (fn) {\r\n this.fn = fn;\r\n }\r\n }\r\n async delay(delay, fn, callback) {\r\n return this.start(true, delay, fn, callback);\r\n }\r\n async run(interval, fn, callback) {\r\n return this.start(false, interval, fn, callback);\r\n }\r\n async start(once, interval, fn, callback) {\r\n this.cancel();\r\n if (fn) {\r\n this.fn = fn;\r\n }\r\n if (typeof callback === 'function') {\r\n this.callbacks.push(callback);\r\n }\r\n if (this.fn) {\r\n return new Promise(resolve => {\r\n this.id = setInterval(() => {\r\n if (once) {\r\n this.cancel();\r\n }\r\n resolve(this.fn());\r\n this.callbacks.forEach(cb => cb());\r\n this.callbacks = [];\r\n }, interval);\r\n });\r\n }\r\n return Promise.reject(new Error('no caller'));\r\n }\r\n cancel() {\r\n if (this.id) {\r\n clearInterval(this.id);\r\n delete this.id;\r\n }\r\n return this;\r\n }\r\n}\r\n","import isNumber from 'lodash/isNumber';\r\nimport isString from 'lodash/isString';\r\nexport function pxToRem(num) {\r\n if (num !== undefined && num !== null) {\r\n if (num === 0) {\r\n return '0';\r\n }\r\n if (isNumber(num)) {\r\n return `${num / 100}rem`;\r\n }\r\n return num;\r\n }\r\n}\r\nexport function toPx(num) {\r\n if (num !== undefined && num !== null) {\r\n if (isNumber(num)) {\r\n return num;\r\n }\r\n if (isString(num) && num !== 'auto' && !num.endsWith('%')) {\r\n return parseFloat(num) * (num.endsWith('rem') ? 100 : 1);\r\n }\r\n }\r\n}\r\n","/* eslint-disable camelcase */\r\nimport addDOMEventListener from 'add-dom-event-listener';\r\nimport { unstable_batchedUpdates } from 'react-dom';\r\nexport default function addEventListenerWrap(target, eventType, cb) {\r\n const callback = unstable_batchedUpdates\r\n ? function run(e) {\r\n unstable_batchedUpdates(cb, e);\r\n }\r\n : cb;\r\n return addDOMEventListener(target, eventType, callback);\r\n}\r\n","export var Size;\r\n(function (Size) {\r\n Size[\"default\"] = \"default\";\r\n Size[\"small\"] = \"small\";\r\n Size[\"large\"] = \"large\";\r\n})(Size || (Size = {}));\r\n","let animation;\r\nfunction isCssAnimationSupported() {\r\n if (animation !== undefined) {\r\n return animation;\r\n }\r\n const domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');\r\n const elm = document.createElement('div');\r\n if (elm.style.animationName !== undefined) {\r\n animation = true;\r\n }\r\n if (animation !== undefined) {\r\n for (let i = 0; i < domPrefixes.length; i++) {\r\n if (elm.style[`${domPrefixes[i]}AnimationName`] !== undefined) {\r\n animation = true;\r\n break;\r\n }\r\n }\r\n }\r\n animation = animation || false;\r\n return animation;\r\n}\r\nexport default isCssAnimationSupported;\r\n","export default function isFlexSupported() {\r\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\r\n const { documentElement } = window.document;\r\n return 'flex' in documentElement.style ||\r\n 'webkitFlex' in documentElement.style ||\r\n 'Flex' in documentElement.style ||\r\n 'msFlex' in documentElement.style;\r\n }\r\n return false;\r\n}\r\n","let scrollbarWidth;\r\nlet rootFontSize = 100;\r\nfunction getRootFontSize() {\r\n if (typeof window !== 'undefined' && document.defaultView) {\r\n const { fontSize } = document.defaultView.getComputedStyle(document.documentElement);\r\n if (fontSize !== null) {\r\n return parseFloat(fontSize);\r\n }\r\n }\r\n return 100;\r\n}\r\nexport default function measureScrollbar(direction = 'vertical') {\r\n if (typeof window === 'undefined') {\r\n return 0;\r\n }\r\n const fontSize = getRootFontSize();\r\n if (scrollbarWidth && fontSize === rootFontSize) {\r\n return scrollbarWidth;\r\n }\r\n rootFontSize = fontSize;\r\n const scrollDiv = document.createElement('div');\r\n scrollDiv.style.cssText = 'position: absolute;width: 50px;height: 50px;top: -9999px; overflow: scroll';\r\n document.body.appendChild(scrollDiv);\r\n let size = 0;\r\n if (direction === 'vertical') {\r\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n }\r\n else if (direction === 'horizontal') {\r\n size = scrollDiv.offsetHeight - scrollDiv.clientHeight;\r\n }\r\n document.body.removeChild(scrollDiv);\r\n scrollbarWidth = size / fontSize * 100;\r\n return scrollbarWidth;\r\n}\r\n","export const matchMediaPolifill = (mediaQuery) => {\r\n // console.warn('`matchMedia` is not supported!');\r\n return {\r\n media: mediaQuery,\r\n matches: false,\r\n addListener() { },\r\n removeListener() { },\r\n };\r\n};\r\n","import cssAnimation from 'css-animation';\r\nimport raf from 'raf';\r\nfunction animate(node, show, done) {\r\n let height;\r\n let requestAnimationFrameId;\r\n return cssAnimation(node, 'c7n-motion-collapse', {\r\n start() {\r\n if (!show) {\r\n node.style.height = `${node.offsetHeight}px`;\r\n node.style.opacity = '1';\r\n }\r\n else {\r\n height = node.offsetHeight;\r\n node.style.height = '0px';\r\n node.style.opacity = '0';\r\n }\r\n },\r\n active() {\r\n if (requestAnimationFrameId) {\r\n raf.cancel(requestAnimationFrameId);\r\n }\r\n requestAnimationFrameId = raf(() => {\r\n node.style.height = `${show ? height : 0}px`;\r\n node.style.opacity = show ? '1' : '0';\r\n });\r\n },\r\n end() {\r\n if (requestAnimationFrameId) {\r\n raf.cancel(requestAnimationFrameId);\r\n }\r\n node.style.height = '';\r\n node.style.opacity = '';\r\n done();\r\n },\r\n });\r\n}\r\nconst animation = {\r\n enter(node, done) {\r\n return animate(node, true, done);\r\n },\r\n leave(node, done) {\r\n return animate(node, false, done);\r\n },\r\n appear(node, done) {\r\n return animate(node, true, done);\r\n },\r\n};\r\nexport default animation;\r\n","import { PureComponent } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport ResizeObserver from 'resize-observer-polyfill';\r\nclass ReactResizeObserver extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.resizeObserver = null;\r\n this.width = 0;\r\n this.height = 0;\r\n this.onResize = (entries) => {\r\n const { onResize, resizeProp } = this.props;\r\n const { target, contentRect: { width, height }, } = entries[0];\r\n /**\r\n * getBoundingClientRect return wrong size in transform case.\r\n */\r\n // const { width, height } = target.getBoundingClientRect();\r\n const fixedWidth = Math.floor(width);\r\n const fixedHeight = Math.floor(height);\r\n if ((this.width !== fixedWidth && ['width', 'both'].includes(resizeProp)) ||\r\n (this.height !== fixedHeight && ['height', 'both'].includes(resizeProp))) {\r\n this.width = fixedWidth;\r\n this.height = fixedHeight;\r\n if (onResize) {\r\n onResize(fixedWidth, fixedHeight, target);\r\n }\r\n }\r\n };\r\n }\r\n componentDidMount() {\r\n this.onComponentUpdated();\r\n }\r\n componentDidUpdate() {\r\n this.onComponentUpdated();\r\n }\r\n componentWillUnmount() {\r\n this.destroyObserver();\r\n }\r\n onComponentUpdated() {\r\n const { disabled } = this.props;\r\n const element = findDOMNode(this);\r\n if (!this.resizeObserver && !disabled && element) {\r\n // Add resize observer\r\n this.resizeObserver = new ResizeObserver(this.onResize);\r\n this.resizeObserver.observe(element);\r\n }\r\n else if (disabled) {\r\n // Remove resize observer\r\n this.destroyObserver();\r\n }\r\n }\r\n destroyObserver() {\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect();\r\n this.resizeObserver = null;\r\n }\r\n }\r\n render() {\r\n const { children = null } = this.props;\r\n return children;\r\n }\r\n}\r\nReactResizeObserver.defaultProps = {\r\n resizeProp: 'both',\r\n};\r\nexport default ReactResizeObserver;\r\n","import warning from 'warning';\r\nconst warned = {};\r\nexport default (valid, message) => {\r\n if (!valid && !warned[message]) {\r\n warning(false, message);\r\n warned[message] = true;\r\n }\r\n};\r\n","import { Children, cloneElement, Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { findDOMNode } from 'react-dom';\r\nimport noop from 'lodash/noop';\r\nimport domAlign from 'dom-align';\r\nimport EventManager from '../_util/EventManager';\r\nimport TaskRunner from '../_util/TaskRunner';\r\nfunction isWindow(obj) {\r\n return obj != null && obj === obj.window;\r\n}\r\nexport default class Align extends Component {\r\n forceAlign() {\r\n const { hidden, onAlign = noop, target = () => window, align } = this.props;\r\n if (!hidden) {\r\n const source = findDOMNode(this);\r\n const ref = target();\r\n onAlign(source, domAlign(source, ref, align), ref);\r\n }\r\n }\r\n componentDidMount() {\r\n const { hidden, monitorWindowResize } = this.props;\r\n this.forceAlign();\r\n if (!hidden && monitorWindowResize) {\r\n this.startMonitorWindowResize();\r\n }\r\n }\r\n componentDidUpdate(prevProps) {\r\n const { hidden, align, target = () => window, monitorWindowResize } = this.props;\r\n const { hidden: preHidden, align: preAlign, target: preTarget } = prevProps;\r\n let reAlign = false;\r\n if (!hidden) {\r\n if (preHidden || preAlign !== align) {\r\n reAlign = true;\r\n }\r\n else {\r\n const lastTarget = preTarget();\r\n const currentTarget = target();\r\n if (isWindow(lastTarget) && isWindow(currentTarget)) {\r\n reAlign = false;\r\n }\r\n else if (lastTarget !== currentTarget) {\r\n reAlign = true;\r\n }\r\n }\r\n }\r\n if (reAlign) {\r\n this.forceAlign();\r\n }\r\n if (monitorWindowResize && !hidden) {\r\n this.startMonitorWindowResize();\r\n }\r\n else {\r\n this.stopMonitorWindowResize();\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.stopMonitorWindowResize();\r\n }\r\n startMonitorWindowResize() {\r\n const { monitorBufferTime } = this.props;\r\n if (!this.resizeHandler) {\r\n this.resizeHandler = new EventManager(window);\r\n this.bufferMonitor = new TaskRunner();\r\n this.resizeHandler.addEventListener('resize', this.bufferMonitor.delay.bind(this.bufferMonitor, monitorBufferTime, this.forceAlign.bind(this)));\r\n }\r\n }\r\n stopMonitorWindowResize() {\r\n if (this.resizeHandler) {\r\n if (this.bufferMonitor) {\r\n this.bufferMonitor.cancel();\r\n }\r\n this.resizeHandler.clear();\r\n this.resizeHandler = null;\r\n }\r\n }\r\n render() {\r\n const { props } = this;\r\n const { childrenProps, children } = props;\r\n if (childrenProps) {\r\n const newProps = {};\r\n Object.keys(childrenProps).forEach(prop => {\r\n if ({}.hasOwnProperty.call(childrenProps, prop)) {\r\n newProps[prop] = props[childrenProps[prop]];\r\n }\r\n });\r\n return cloneElement(Children.only(children), newProps);\r\n }\r\n return children;\r\n }\r\n}\r\nAlign.displayName = 'Align';\r\nAlign.propTypes = {\r\n childrenProps: PropTypes.object,\r\n align: PropTypes.object.isRequired,\r\n target: PropTypes.func,\r\n onAlign: PropTypes.func,\r\n monitorBufferTime: PropTypes.number,\r\n monitorWindowResize: PropTypes.bool,\r\n hidden: PropTypes.bool,\r\n children: PropTypes.any,\r\n};\r\nAlign.defaultProps = {\r\n monitorBufferTime: 50,\r\n monitorWindowResize: false,\r\n hidden: true,\r\n};\r\n","import Align from './Align';\r\nexport default Align;\r\n","import { cloneElement, Component, createElement, isValidElement, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport noop from 'lodash/noop';\r\nimport { findChildInChildrenByKey, findShownChildInChildrenByKey, isSameChildren, mergeChildren, toArrayChildren, } from './ChildrenUtils';\r\nimport AnimateChild from './AnimateChild';\r\nimport animUtil from './util';\r\nconst defaultKey = `animate_${Date.now()}`;\r\nfunction getChildrenFromProps(props) {\r\n const { children } = props;\r\n if (isValidElement(children)) {\r\n if (!children.key) {\r\n return cloneElement(children, {\r\n key: defaultKey,\r\n });\r\n }\r\n }\r\n return children;\r\n}\r\nexport default class Animate extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.currentlyAnimatingKeys = {};\r\n this.keysToEnter = [];\r\n this.keysToLeave = [];\r\n this.state = {\r\n children: toArrayChildren(getChildrenFromProps(this.props)),\r\n };\r\n this.childrenRefs = {};\r\n this.performEnter = (key) => {\r\n const childRef = this.childrenRefs[key];\r\n if (childRef) {\r\n this.currentlyAnimatingKeys[key] = true;\r\n childRef.componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));\r\n }\r\n };\r\n this.performAppear = (key) => {\r\n const childRef = this.childrenRefs[key];\r\n if (childRef) {\r\n this.currentlyAnimatingKeys[key] = true;\r\n childRef.componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));\r\n }\r\n };\r\n this.handleDoneAdding = (key, type, childRef) => {\r\n const { props } = this;\r\n const { exclusive, onAppear = noop, onEnd = noop, onEnter = noop } = props;\r\n delete this.currentlyAnimatingKeys[key];\r\n if (exclusive && props !== this.nextProps) {\r\n return;\r\n }\r\n if (!this.isValidChildByKey(toArrayChildren(getChildrenFromProps(props)), key)) {\r\n this.performLeave(key);\r\n }\r\n else if (type === 'appear') {\r\n if (animUtil.allowAppearCallback(props)) {\r\n onAppear(key, childRef);\r\n onEnd(key, true, childRef);\r\n }\r\n }\r\n else if (animUtil.allowEnterCallback(props)) {\r\n onEnter(key, childRef);\r\n onEnd(key, true, childRef);\r\n }\r\n };\r\n this.performLeave = (key) => {\r\n const childRef = this.childrenRefs[key];\r\n if (childRef) {\r\n this.currentlyAnimatingKeys[key] = true;\r\n childRef.componentWillLeave(this.handleDoneLeaving.bind(this, key));\r\n }\r\n };\r\n this.handleDoneLeaving = (key, childRef) => {\r\n const { props, state: { children }, } = this;\r\n const { exclusive, onEnd = noop, onLeave = noop, hiddenProp } = props;\r\n delete this.currentlyAnimatingKeys[key];\r\n if (exclusive && props !== this.nextProps) {\r\n return;\r\n }\r\n const currentChildren = toArrayChildren(getChildrenFromProps(props));\r\n if (this.isValidChildByKey(currentChildren, key)) {\r\n this.performEnter(key);\r\n }\r\n else {\r\n const end = () => {\r\n if (animUtil.allowLeaveCallback(props)) {\r\n onLeave(key, childRef);\r\n onEnd(key, false, childRef);\r\n }\r\n };\r\n if (!isSameChildren(children, currentChildren, hiddenProp)) {\r\n this.setState({\r\n children: currentChildren,\r\n }, end);\r\n }\r\n else {\r\n end();\r\n }\r\n }\r\n };\r\n }\r\n componentDidMount() {\r\n const { hiddenProp } = this.props;\r\n let { children } = this.state;\r\n if (hiddenProp) {\r\n children = children.filter(child => !child.props[hiddenProp]);\r\n }\r\n children.forEach(child => {\r\n if (child && child.key) {\r\n this.performAppear(child.key);\r\n }\r\n });\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n this.nextProps = nextProps;\r\n const nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\r\n const { exclusive, hiddenProp } = this.props;\r\n const { children } = this.state;\r\n const currentlyAnimatingKeys = this.currentlyAnimatingKeys;\r\n if (exclusive) {\r\n Object.keys(currentlyAnimatingKeys).forEach(key => this.stop(key));\r\n }\r\n const currentChildren = exclusive\r\n ? toArrayChildren(getChildrenFromProps(this.props))\r\n : children;\r\n let newChildren = [];\r\n if (hiddenProp) {\r\n nextChildren.forEach(nextChild => {\r\n if (nextChild) {\r\n let newChild;\r\n const currentChild = findChildInChildrenByKey(currentChildren, nextChild.key);\r\n if (nextChild.props[hiddenProp] && currentChild && !currentChild.props[hiddenProp]) {\r\n newChild = cloneElement(nextChild, { [hiddenProp]: false });\r\n }\r\n else {\r\n newChild = nextChild;\r\n }\r\n if (newChild) {\r\n newChildren.push(newChild);\r\n }\r\n }\r\n });\r\n newChildren = mergeChildren(currentChildren, newChildren);\r\n }\r\n else {\r\n newChildren = mergeChildren(currentChildren, nextChildren);\r\n }\r\n this.setState({\r\n children: newChildren,\r\n });\r\n nextChildren.forEach(child => {\r\n const key = child && child.key;\r\n if (key) {\r\n if (child && currentlyAnimatingKeys[key]) {\r\n return;\r\n }\r\n const hasPrev = child && findChildInChildrenByKey(currentChildren, key);\r\n if (hiddenProp) {\r\n const showInNext = !child.props[hiddenProp];\r\n if (hasPrev) {\r\n const showInNow = findShownChildInChildrenByKey(currentChildren, key, hiddenProp);\r\n if (!showInNow && showInNext) {\r\n this.keysToEnter.push(key);\r\n }\r\n }\r\n else if (showInNext) {\r\n this.keysToEnter.push(key);\r\n }\r\n }\r\n else if (!hasPrev) {\r\n this.keysToEnter.push(key);\r\n }\r\n }\r\n });\r\n currentChildren.forEach(child => {\r\n const key = child && child.key;\r\n if (key) {\r\n if (child && currentlyAnimatingKeys[key]) {\r\n return;\r\n }\r\n const hasNext = child && findChildInChildrenByKey(nextChildren, key);\r\n if (hiddenProp) {\r\n const showInNow = !child.props[hiddenProp];\r\n if (hasNext) {\r\n const showInNext = findShownChildInChildrenByKey(nextChildren, key, hiddenProp);\r\n if (!showInNext && showInNow) {\r\n this.keysToLeave.push(key);\r\n }\r\n }\r\n else if (showInNow) {\r\n this.keysToLeave.push(key);\r\n }\r\n }\r\n else if (!hasNext) {\r\n this.keysToLeave.push(key);\r\n }\r\n }\r\n });\r\n }\r\n componentDidUpdate() {\r\n const keysToEnter = this.keysToEnter;\r\n this.keysToEnter = [];\r\n keysToEnter.forEach(this.performEnter);\r\n const keysToLeave = this.keysToLeave;\r\n this.keysToLeave = [];\r\n keysToLeave.forEach(this.performLeave);\r\n }\r\n isValidChildByKey(currentChildren, key) {\r\n const { hiddenProp } = this.props;\r\n if (hiddenProp) {\r\n return !!findShownChildInChildrenByKey(currentChildren, key, hiddenProp);\r\n }\r\n return !!findChildInChildrenByKey(currentChildren, key);\r\n }\r\n stop(key) {\r\n delete this.currentlyAnimatingKeys[key];\r\n const component = this.childrenRefs[key];\r\n if (component) {\r\n component.stop();\r\n }\r\n }\r\n render() {\r\n const { props } = this;\r\n this.nextProps = props;\r\n const { animation, transitionName, transitionEnter, transitionAppear, transitionLeave, component: Cmp, componentProps, ...otherProps } = props;\r\n const { children: stateChildren } = this.state;\r\n let children = [];\r\n if (stateChildren) {\r\n children = stateChildren.map(child => {\r\n if (child === null || child === undefined) {\r\n return child;\r\n }\r\n if (!child.key) {\r\n throw new Error('must set key for animate children');\r\n }\r\n return createElement(AnimateChild, {\r\n key: child.key,\r\n ref: node => {\r\n if (child.key) {\r\n this.childrenRefs[child.key] = node;\r\n }\r\n },\r\n animation,\r\n transitionName,\r\n transitionEnter,\r\n transitionAppear,\r\n transitionLeave,\r\n }, child);\r\n });\r\n }\r\n if (Cmp) {\r\n const passedProps = omit(otherProps, [\r\n 'exclusive',\r\n 'onEnd',\r\n 'onEnter',\r\n 'onLeave',\r\n 'onAppear',\r\n 'hiddenProp',\r\n ]);\r\n return createElement(Cmp, {\r\n ...passedProps,\r\n ...componentProps,\r\n }, children);\r\n }\r\n return children[0] || null;\r\n }\r\n}\r\nAnimate.displayName = 'Animate';\r\nAnimate.propTypes = {\r\n component: PropTypes.any,\r\n componentProps: PropTypes.object,\r\n animation: PropTypes.object,\r\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n transitionEnter: PropTypes.bool,\r\n transitionAppear: PropTypes.bool,\r\n exclusive: PropTypes.bool,\r\n transitionLeave: PropTypes.bool,\r\n onEnd: PropTypes.func,\r\n onEnter: PropTypes.func,\r\n onLeave: PropTypes.func,\r\n onAppear: PropTypes.func,\r\n hiddenProp: PropTypes.string,\r\n};\r\nAnimate.defaultProps = {\r\n animation: {},\r\n component: 'span',\r\n componentProps: {},\r\n transitionEnter: true,\r\n transitionLeave: true,\r\n transitionAppear: false,\r\n};\r\n","import { cloneElement, Component, isValidElement } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport omit from 'lodash/omit';\r\nimport PropTypes from 'prop-types';\r\nimport cssAnimate, { isCssAnimationSupported } from 'css-animation';\r\nimport animUtil from './util';\r\nconst transitionMap = {\r\n enter: 'transitionEnter',\r\n appear: 'transitionAppear',\r\n leave: 'transitionLeave',\r\n};\r\nexport default class AnimateChild extends Component {\r\n componentWillUnmount() {\r\n this.stop();\r\n }\r\n componentWillEnter(done) {\r\n if (animUtil.isEnterSupported(this.props)) {\r\n this.transition('enter', done);\r\n }\r\n else {\r\n done(this);\r\n }\r\n }\r\n componentWillAppear(done) {\r\n if (animUtil.isAppearSupported(this.props)) {\r\n this.transition('appear', done);\r\n }\r\n else {\r\n done(this);\r\n }\r\n }\r\n componentWillLeave(done) {\r\n if (animUtil.isLeaveSupported(this.props)) {\r\n this.transition('leave', done);\r\n }\r\n else {\r\n done(this);\r\n }\r\n }\r\n transition(animationType, finishCallback) {\r\n const node = findDOMNode(this);\r\n if (node) {\r\n const { props } = this;\r\n const { transitionName, animation = {} } = props;\r\n const nameIsObj = typeof transitionName === 'object';\r\n this.stop();\r\n const end = () => {\r\n this.stopper = null;\r\n finishCallback(this);\r\n };\r\n if ((isCssAnimationSupported || !animation[animationType]) &&\r\n transitionName &&\r\n props[transitionMap[animationType]]) {\r\n const name = nameIsObj\r\n ? transitionName[animationType]\r\n : `${transitionName}-${animationType}`;\r\n let activeName = `${name}-active`;\r\n if (nameIsObj && transitionName[`${animationType}Active`]) {\r\n activeName = transitionName[`${animationType}Active`];\r\n }\r\n this.stopper = cssAnimate(node, {\r\n name,\r\n active: activeName,\r\n }, end);\r\n }\r\n else {\r\n this.stopper = animation[animationType](node, end);\r\n }\r\n }\r\n }\r\n stop() {\r\n const { stopper } = this;\r\n if (stopper) {\r\n this.stopper = null;\r\n stopper.stop();\r\n }\r\n }\r\n render() {\r\n const { children, ...otherProps } = this.props;\r\n if (isValidElement(children)) {\r\n const props = omit(otherProps, [\r\n 'animation',\r\n 'transitionName',\r\n 'transitionEnter',\r\n 'transitionAppear',\r\n 'transitionLeave',\r\n ]);\r\n const { style } = children.props;\r\n return cloneElement(children, { ...props, style: { ...props.style, ...style } });\r\n }\r\n return children;\r\n }\r\n}\r\nAnimateChild.displayName = 'AnimateChild';\r\nAnimateChild.propTypes = {\r\n children: PropTypes.any,\r\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n animation: PropTypes.any,\r\n};\r\n","import { Children, isValidElement } from 'react';\r\nexport function toArrayChildren(children) {\r\n const ret = [];\r\n Children.forEach(children, child => {\r\n if (isValidElement(child)) {\r\n ret.push(child);\r\n }\r\n });\r\n return ret;\r\n}\r\nexport function findChildInChildrenByKey(children, key) {\r\n if (children) {\r\n return children.find(child => child && child.key === key);\r\n }\r\n}\r\nexport function findShownChildInChildrenByKey(children, key, hiddenProp) {\r\n let ret;\r\n if (children) {\r\n children.forEach(child => {\r\n if (child && child.key === key && !child.props[hiddenProp]) {\r\n if (ret) {\r\n throw new Error('two child with same key for animate children');\r\n }\r\n ret = child;\r\n }\r\n });\r\n }\r\n return ret;\r\n}\r\n// export function findHiddenChildInChildrenByKey(children, key, showProp):boolean {\r\n// let found = false;\r\n// if (children) {\r\n// children.forEach(function (child) {\r\n// if (found) {\r\n// return;\r\n// }\r\n// found = child && child.key === key && !child.props[showProp];\r\n// });\r\n// }\r\n// return found;\r\n// }\r\nexport function isSameChildren(c1, c2, hiddenProp) {\r\n let same = c1.length === c2.length;\r\n if (same) {\r\n c1.forEach((child, index) => {\r\n const child2 = c2[index];\r\n if (child && child2) {\r\n if ((child && !child2) || (!child && child2)) {\r\n same = false;\r\n }\r\n else if (child.key !== child2.key) {\r\n same = false;\r\n }\r\n else if (hiddenProp && child.props[hiddenProp] !== child2.props[hiddenProp]) {\r\n same = false;\r\n }\r\n }\r\n });\r\n }\r\n return same;\r\n}\r\nexport function mergeChildren(prev, next) {\r\n let ret = [];\r\n const nextChildrenPending = {};\r\n let pendingChildren = [];\r\n prev.forEach(child => {\r\n if (child && child.key && findChildInChildrenByKey(next, child.key)) {\r\n if (pendingChildren.length) {\r\n nextChildrenPending[child.key] = pendingChildren;\r\n pendingChildren = [];\r\n }\r\n }\r\n else {\r\n pendingChildren.push(child);\r\n }\r\n });\r\n next.forEach(child => {\r\n if (child && child.key && {}.hasOwnProperty.call(nextChildrenPending, child.key)) {\r\n ret = ret.concat(nextChildrenPending[child.key]);\r\n }\r\n ret.push(child);\r\n });\r\n return ret.concat(pendingChildren);\r\n}\r\n","import Animate from './Animate';\r\nexport default Animate;\r\n","// empty file prevent babel-plugin-import error\r\nimport '../../style/index.less';\r\n","export default {\r\n isAppearSupported(props) {\r\n return props.transitionName && props.transitionAppear || props.animation.appear;\r\n },\r\n isEnterSupported(props) {\r\n return props.transitionName && props.transitionEnter || props.animation.enter;\r\n },\r\n isLeaveSupported(props) {\r\n return props.transitionName && props.transitionLeave || props.animation.leave;\r\n },\r\n allowAppearCallback(props) {\r\n return props.transitionAppear || props.animation.appear;\r\n },\r\n allowEnterCallback(props) {\r\n return props.transitionEnter || props.animation.enter;\r\n },\r\n allowLeaveCallback(props) {\r\n return props.transitionLeave || props.animation.leave;\r\n },\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../ripple/style';\r\nimport '../../progress/style';\r\n","import React, { Component, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport shallowEqual from 'lodash/isEqual';\r\nimport RcCheckbox from '../rc-components/checkbox';\r\nimport { getPrefixCls } from '../configure';\r\nexport default class Checkbox extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.saveCheckbox = (node) => {\r\n this.rcCheckbox = node;\r\n };\r\n }\r\n shouldComponentUpdate(nextProps, nextState, nextContext) {\r\n const { checkboxGroup } = this.context;\r\n return (!shallowEqual(this.props, nextProps) ||\r\n !shallowEqual(this.state, nextState) ||\r\n !shallowEqual(checkboxGroup, nextContext.checkboxGroup));\r\n }\r\n focus() {\r\n this.rcCheckbox.focus();\r\n }\r\n blur() {\r\n this.rcCheckbox.blur();\r\n }\r\n render() {\r\n const { props, context } = this;\r\n const { prefixCls: customizePrefixCls, className, children, indeterminate, style, onMouseEnter, onMouseLeave, ...restProps } = props;\r\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\r\n const { checkboxGroup } = context;\r\n const checkboxProps = { ...restProps };\r\n if (checkboxGroup) {\r\n checkboxProps.onChange = () => checkboxGroup.toggleOption({ label: children, value: props.value });\r\n checkboxProps.checked = checkboxGroup.value.indexOf(props.value) !== -1;\r\n checkboxProps.disabled = props.disabled || checkboxGroup.disabled;\r\n }\r\n const classString = classNames(className, {\r\n [`${prefixCls}-wrapper`]: true,\r\n });\r\n const checkboxClass = classNames({\r\n [`${prefixCls}-indeterminate`]: indeterminate,\r\n });\r\n return (<label className={classString} style={style} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <RcCheckbox {...checkboxProps} prefixCls={prefixCls} className={checkboxClass} ref={this.saveCheckbox}/>\n {children !== undefined ? <span>{children}</span> : null}\n </label>);\r\n }\r\n}\r\nCheckbox.displayName = 'Checkbox';\r\nCheckbox.defaultProps = {\r\n indeterminate: false,\r\n};\r\nCheckbox.contextTypes = {\r\n checkboxGroup: PropTypes.any,\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","import { observable, runInAction, toJS } from 'mobx';\r\nimport isObject from 'lodash/isObject';\r\nimport { categories } from 'choerodon-ui-font';\r\nimport { RecordStatus } from 'choerodon-ui/pro/lib/data-set/enum';\r\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\r\nimport { TableQueryBarType } from 'choerodon-ui/pro/lib/table/enum';\r\nimport defaultFeedback from 'choerodon-ui/pro/lib/data-set/FeedBack';\r\nimport { LabelLayout } from 'choerodon-ui/pro/lib/form/enum';\r\nconst defaultRenderEmpty = (componentName) => {\r\n switch (componentName) {\r\n case 'Table':\r\n return $l('Table', 'empty_data');\r\n case 'Select':\r\n return $l('Select', 'no_matching_results');\r\n default:\r\n }\r\n};\r\nconst globalConfig = observable.map([\r\n ['prefixCls', 'c7n'],\r\n ['proPrefixCls', 'c7n-pro'],\r\n ['iconfontPrefix', 'icon'],\r\n ['ripple', true],\r\n ['lookupCache', { maxAge: 1000 * 60 * 10, max: 100 }],\r\n ['lookupUrl', code => `/common/code/${code}/`],\r\n ['lookupAxiosMethod', 'post'],\r\n ['lovDefineUrl', code => `/sys/lov/lov_define?code=${code}`],\r\n ['lovQueryUrl', code => `/common/lov/dataset/${code}`],\r\n ['dataKey', 'rows'],\r\n ['totalKey', 'total'],\r\n ['statusKey', '__status'],\r\n ['tlsKey', '__tls'],\r\n [\r\n 'status',\r\n { [RecordStatus.add]: 'add', [RecordStatus.update]: 'update', [RecordStatus.delete]: 'delete' },\r\n ],\r\n ['labelLayout', LabelLayout.horizontal],\r\n ['queryBar', TableQueryBarType.normal],\r\n ['tableBorder', true],\r\n ['tableHighLightRow', true],\r\n ['tableRowHeight', 30],\r\n ['tableColumnResizable', true],\r\n ['modalSectionBorder', true],\r\n ['modalOkFirst', true],\r\n ['feedback', defaultFeedback],\r\n ['renderEmpty', defaultRenderEmpty],\r\n ['icons', categories],\r\n [\r\n 'formatter',\r\n {\r\n jsonDate: 'YYYY-MM-DD HH:mm:ss',\r\n date: 'YYYY-MM-DD',\r\n dateTime: 'YYYY-MM-DD HH:mm:ss',\r\n time: 'HH:mm:ss',\r\n year: 'YYYY',\r\n month: 'YYYY-MM',\r\n week: 'YYYY-Wo',\r\n },\r\n ],\r\n]);\r\nexport function getConfig(key) {\r\n // FIXME: observable.map把构建map时传入的key类型和value类型分别做了union,\r\n // 丢失了一一对应的映射关系,导致函数调用者无法使用union后的返回值类型,因此需要指定本函数返回值为any\r\n return globalConfig.get(key);\r\n}\r\nexport function getPrefixCls(suffixCls, customizePrefixCls) {\r\n if (customizePrefixCls) {\r\n return customizePrefixCls;\r\n }\r\n return `${getConfig('prefixCls')}-${suffixCls}`;\r\n}\r\nexport function getProPrefixCls(suffixCls, customizePrefixCls) {\r\n if (customizePrefixCls) {\r\n return customizePrefixCls;\r\n }\r\n return `${getConfig('proPrefixCls')}-${suffixCls}`;\r\n}\r\nconst mergeProps = ['transport', 'feedback', 'formatter'];\r\nexport default function configure(config) {\r\n runInAction(() => {\r\n Object.keys(config).forEach((key) => {\r\n const value = config[key];\r\n if (mergeProps.includes(key) && isObject(value)) {\r\n globalConfig.set(key, {\r\n ...toJS(globalConfig.get(key)),\r\n ...value,\r\n });\r\n }\r\n else {\r\n globalConfig.set(key, config[key]);\r\n }\r\n });\r\n });\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { getPrefixCls } from '../configure';\r\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\r\nconst objectOrNumber = PropTypes.oneOfType([PropTypes.object, PropTypes.number]);\r\nexport default function Col(props) {\r\n const { span, order, offset, push, pull, className, children, prefixCls: customizePrefixCls, ...others } = props;\r\n const prefixCls = getPrefixCls('col', customizePrefixCls);\r\n let sizeClassObj = {};\r\n ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(size => {\r\n let sizeProps = {};\r\n if (typeof props[size] === 'number') {\r\n sizeProps.span = props[size];\r\n }\r\n else if (typeof props[size] === 'object') {\r\n sizeProps = props[size] || {};\r\n }\r\n delete others[size];\r\n sizeClassObj = {\r\n ...sizeClassObj,\r\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\r\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\r\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\r\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\r\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\r\n };\r\n });\r\n const classes = classNames({\r\n [`${prefixCls}-${span}`]: span !== undefined,\r\n [`${prefixCls}-order-${order}`]: order,\r\n [`${prefixCls}-offset-${offset}`]: offset,\r\n [`${prefixCls}-push-${push}`]: push,\r\n [`${prefixCls}-pull-${pull}`]: pull,\r\n }, className, sizeClassObj);\r\n return (<div {...others} className={classes}>\n {children}\n </div>);\r\n}\r\nCol.displayName = 'Col';\r\nCol.propTypes = {\r\n span: stringOrNumber,\r\n order: stringOrNumber,\r\n offset: stringOrNumber,\r\n push: stringOrNumber,\r\n pull: stringOrNumber,\r\n className: PropTypes.string,\r\n children: PropTypes.node,\r\n xs: objectOrNumber,\r\n sm: objectOrNumber,\r\n md: objectOrNumber,\r\n lg: objectOrNumber,\r\n xl: objectOrNumber,\r\n xxl: objectOrNumber,\r\n};\r\n","import React, { Children, cloneElement, Component } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport omit from 'lodash/omit';\r\nimport Responsive from '../responsive/Responsive';\r\nimport { getPrefixCls } from '../configure';\r\nconst defaultGutter = 0;\r\nexport default class Row extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.renderRow = ([gutter = defaultGutter]) => {\r\n const { type, justify, align, className, style, children, prefixCls: customizePrefixCls, ...others } = this.props;\r\n const prefixCls = getPrefixCls('row', customizePrefixCls);\r\n const classes = classNames({\r\n [prefixCls]: !type,\r\n [`${prefixCls}-${type}`]: type,\r\n [`${prefixCls}-${type}-${justify}`]: type && justify,\r\n [`${prefixCls}-${type}-${align}`]: type && align,\r\n }, className);\r\n const rowStyle = gutter > 0\r\n ? {\r\n marginLeft: gutter / -2,\r\n marginRight: gutter / -2,\r\n ...style,\r\n }\r\n : style;\r\n const cols = Children.map(children, (col) => {\r\n if (!col) {\r\n return null;\r\n }\r\n if (col.props && gutter > 0) {\r\n return cloneElement(col, {\r\n style: {\r\n paddingLeft: gutter / 2,\r\n paddingRight: gutter / 2,\r\n ...col.props.style,\r\n },\r\n });\r\n }\r\n return col;\r\n });\r\n const otherProps = { ...others };\r\n delete otherProps.gutter;\r\n return (<div {...omit(otherProps, ['rowIndex', 'colIndex'])} className={classes} style={rowStyle}>\n {cols}\n </div>);\r\n };\r\n }\r\n render() {\r\n const { gutter } = this.props;\r\n return <Responsive items={[gutter]}>{this.renderRow}</Responsive>;\r\n }\r\n}\r\nRow.displayName = 'Row';\r\nRow.defaultProps = {\r\n gutter: defaultGutter,\r\n};\r\nRow.propTypes = {\r\n type: PropTypes.string,\r\n align: PropTypes.string,\r\n justify: PropTypes.string,\r\n className: PropTypes.string,\r\n children: PropTypes.node,\r\n gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number]),\r\n prefixCls: PropTypes.string,\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { getConfig } from '../configure';\r\nconst Icon = function Icon(props) {\r\n const iconfontPrefix = getConfig('iconfontPrefix');\r\n const { type, className = '', ...otherProps } = props;\r\n const classString = classNames(iconfontPrefix, `${iconfontPrefix}-${type}`, className);\r\n return <i {...otherProps} className={classString}/>;\r\n};\r\nIcon.displayName = 'Icon';\r\nexport default Icon;\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../button/style';\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Tooltip from '../tooltip';\r\nimport { Item } from '../rc-components/menu';\r\nclass MenuItem extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.onKeyDown = e => {\r\n this.menuItem.onKeyDown(e);\r\n };\r\n this.saveMenuItem = (menuItem) => {\r\n this.menuItem = menuItem;\r\n };\r\n }\r\n render() {\r\n const { inlineCollapsed } = this.context;\r\n const props = this.props;\r\n const item = <Item {...props} ref={this.saveMenuItem}/>;\r\n if (inlineCollapsed && props.level === 1) {\r\n return (<Tooltip title={props.children} placement=\"right\" overlayClassName={`${props.rootPrefixCls}-inline-collapsed-tooltip`}>\n {item}\n </Tooltip>);\r\n }\r\n return item;\r\n }\r\n}\r\nMenuItem.contextTypes = {\r\n inlineCollapsed: PropTypes.bool,\r\n};\r\nMenuItem.isMenuItem = 1;\r\nexport default MenuItem;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { SubMenu as RcSubMenu } from '../rc-components/menu';\r\nclass SubMenu extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.onKeyDown = e => {\r\n this.subMenu.onKeyDown(e);\r\n };\r\n this.saveSubMenu = (subMenu) => {\r\n this.subMenu = subMenu;\r\n };\r\n }\r\n render() {\r\n const { rootPrefixCls, className } = this.props;\r\n const { menuTheme } = this.context;\r\n return (<RcSubMenu {...this.props} ref={this.saveSubMenu} popupClassName={classNames(`${rootPrefixCls}-${menuTheme}`, className)}/>);\r\n }\r\n}\r\nSubMenu.contextTypes = {\r\n menuTheme: PropTypes.string,\r\n};\r\nexport default SubMenu;\r\n","import React, { Component } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport animation from '../_util/openAnimation';\r\nimport warning from '../_util/warning';\r\nimport SubMenu from './SubMenu';\r\nimport Item from './MenuItem';\r\nimport RcMenu, { Divider, ItemGroup } from '../rc-components/menu';\r\nimport { getPrefixCls } from '../configure';\r\nexport default class Menu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.inlineOpenKeys = [];\r\n this.handleClick = (e) => {\r\n this.handleOpenChange([]);\r\n const { onClick } = this.props;\r\n if (onClick) {\r\n onClick(e);\r\n }\r\n };\r\n this.handleOpenChange = (openKeys) => {\r\n this.setOpenKeys(openKeys);\r\n const { onOpenChange } = this.props;\r\n if (onOpenChange) {\r\n onOpenChange(openKeys);\r\n }\r\n };\r\n warning(!('onOpen' in props || 'onClose' in props), '`onOpen` and `onClose` are removed, please use `onOpenChange` instead');\r\n warning(!('inlineCollapsed' in props && props.mode !== 'inline'), \"`inlineCollapsed` should only be used when Menu's `mode` is inline.\");\r\n let openKeys;\r\n if ('defaultOpenKeys' in props) {\r\n openKeys = props.defaultOpenKeys;\r\n }\r\n else if ('openKeys' in props) {\r\n openKeys = props.openKeys;\r\n }\r\n this.state = {\r\n openKeys: openKeys || [],\r\n };\r\n }\r\n getChildContext() {\r\n const { theme } = this.props;\r\n return {\r\n inlineCollapsed: this.getInlineCollapsed(),\r\n menuTheme: theme,\r\n };\r\n }\r\n getPrefixCls() {\r\n const { prefixCls } = this.props;\r\n return getPrefixCls('menu', prefixCls);\r\n }\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n const { mode, inlineCollapsed } = this.props;\r\n if (mode === 'inline' && nextProps.mode !== 'inline') {\r\n this.switchModeFromInline = true;\r\n }\r\n if ('openKeys' in nextProps) {\r\n this.setState({ openKeys: nextProps.openKeys });\r\n return;\r\n }\r\n const { openKeys } = this.state;\r\n const { siderCollapsed } = this.context;\r\n if ((nextProps.inlineCollapsed && !inlineCollapsed) ||\r\n (nextContext.siderCollapsed && !siderCollapsed)) {\r\n this.switchModeFromInline =\r\n !!openKeys.length &&\r\n !!findDOMNode(this).querySelectorAll(`.${this.getPrefixCls()}-submenu-open`).length;\r\n this.inlineOpenKeys = openKeys;\r\n this.setState({ openKeys: [] });\r\n }\r\n if ((!nextProps.inlineCollapsed && inlineCollapsed) ||\r\n (!nextContext.siderCollapsed && siderCollapsed)) {\r\n this.setState({ openKeys: this.inlineOpenKeys });\r\n this.inlineOpenKeys = [];\r\n }\r\n }\r\n setOpenKeys(openKeys) {\r\n if (!('openKeys' in this.props)) {\r\n this.setState({ openKeys });\r\n }\r\n }\r\n getRealMenuMode() {\r\n const inlineCollapsed = this.getInlineCollapsed();\r\n if (this.switchModeFromInline && inlineCollapsed) {\r\n return 'inline';\r\n }\r\n const { mode } = this.props;\r\n return inlineCollapsed ? 'vertical' : mode;\r\n }\r\n getInlineCollapsed() {\r\n const { inlineCollapsed } = this.props;\r\n const { siderCollapsed = inlineCollapsed } = this.context;\r\n return siderCollapsed;\r\n }\r\n getMenuOpenAnimation(menuMode) {\r\n const { openAnimation, openTransitionName } = this.props;\r\n let menuOpenAnimation = openAnimation || openTransitionName;\r\n if (openAnimation === undefined && openTransitionName === undefined) {\r\n switch (menuMode) {\r\n case 'horizontal':\r\n menuOpenAnimation = 'slide-up';\r\n break;\r\n case 'vertical':\r\n case 'vertical-left':\r\n case 'vertical-right':\r\n // When mode switch from inline\r\n // submenu should hide without animation\r\n if (this.switchModeFromInline) {\r\n menuOpenAnimation = '';\r\n this.switchModeFromInline = false;\r\n }\r\n else {\r\n menuOpenAnimation = 'zoom-big';\r\n }\r\n break;\r\n case 'inline':\r\n menuOpenAnimation = {\r\n ...animation,\r\n leave: (node, done) => animation.leave(node, () => {\r\n // Make sure inline menu leave animation finished before mode is switched\r\n this.switchModeFromInline = false;\r\n this.setState({});\r\n // when inlineCollapsed change false to true, all submenu will be unmounted,\r\n // so that we don't need handle animation leaving.\r\n if (this.getRealMenuMode() === 'vertical') {\r\n return;\r\n }\r\n done();\r\n }),\r\n };\r\n break;\r\n default:\r\n }\r\n }\r\n return menuOpenAnimation;\r\n }\r\n render() {\r\n const { className, theme } = this.props;\r\n const { openKeys } = this.state;\r\n const prefixCls = this.getPrefixCls();\r\n const menuMode = this.getRealMenuMode();\r\n const menuOpenAnimation = this.getMenuOpenAnimation(menuMode);\r\n const menuClassName = classNames(className, `${prefixCls}-${theme}`, {\r\n [`${prefixCls}-inline-collapsed`]: this.getInlineCollapsed(),\r\n });\r\n const menuProps = {\r\n openKeys,\r\n onOpenChange: this.handleOpenChange,\r\n className: menuClassName,\r\n mode: menuMode,\r\n };\r\n if (menuMode !== 'inline') {\r\n // closing vertical popup submenu after click it\r\n menuProps.onClick = this.handleClick;\r\n menuProps.openTransitionName = menuOpenAnimation;\r\n }\r\n else {\r\n menuProps.openAnimation = menuOpenAnimation;\r\n }\r\n const { collapsedWidth } = this.context;\r\n if (this.getInlineCollapsed() &&\r\n (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px')) {\r\n return null;\r\n }\r\n return <RcMenu {...this.props} {...menuProps} prefixCls={prefixCls}/>;\r\n }\r\n}\r\nMenu.displayName = 'Menu';\r\nMenu.Divider = Divider;\r\nMenu.Item = Item;\r\nMenu.SubMenu = SubMenu;\r\nMenu.ItemGroup = ItemGroup;\r\nMenu.defaultProps = {\r\n className: '',\r\n theme: 'light',\r\n focusable: false,\r\n};\r\nMenu.childContextTypes = {\r\n inlineCollapsed: PropTypes.bool,\r\n menuTheme: PropTypes.string,\r\n};\r\nMenu.contextTypes = {\r\n siderCollapsed: PropTypes.bool,\r\n collapsedWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../tooltip/style';\r\nimport '../../ripple/style';\r\n","import React from 'react';\r\nimport noop from 'lodash/noop';\r\nimport isString from 'lodash/isString';\r\nimport Icon from '../icon';\r\nimport Notification from '../rc-components/notification';\r\nimport { getPlacementStyle, getPlacementTransitionName } from './util';\r\nimport { getPrefixCls } from '../configure';\r\nlet defaultDuration = 3;\r\nlet defaultTop = 24;\r\nlet defaultBottom = 24;\r\nlet messageInstance;\r\nlet key = 1;\r\nlet customizePrefixCls;\r\nlet transitionName = 'move-up';\r\nlet defaultPlacement = 'leftBottom';\r\nlet getContainer;\r\nfunction getCustomizePrefixCls() {\r\n return getPrefixCls('message', customizePrefixCls);\r\n}\r\nfunction getMessageInstance(placement, callback) {\r\n if (messageInstance) {\r\n callback(messageInstance);\r\n return;\r\n }\r\n Notification.newInstance({\r\n prefixCls: getCustomizePrefixCls(),\r\n style: getPlacementStyle(placement, defaultTop, defaultBottom),\r\n transitionName: getPlacementTransitionName(placement, transitionName),\r\n getContainer,\r\n }, (instance) => {\r\n if (messageInstance) {\r\n callback(messageInstance);\r\n return;\r\n }\r\n messageInstance = instance;\r\n callback(instance);\r\n });\r\n}\r\nfunction notice(content, duration = defaultDuration, type, onClose, placement) {\r\n const iconType = {\r\n info: 'info',\r\n success: 'check_circle',\r\n error: 'error',\r\n warning: 'warning',\r\n loading: 'loading',\r\n }[type];\r\n if (isString(onClose)) {\r\n placement = onClose;\r\n onClose = noop;\r\n }\r\n if (typeof duration === 'function') {\r\n onClose = duration;\r\n duration = defaultDuration;\r\n }\r\n else if (isString(duration)) {\r\n placement = duration;\r\n }\r\n const target = key++;\r\n const prefixCls = getCustomizePrefixCls();\r\n getMessageInstance(placement || defaultPlacement, instance => {\r\n instance.notice({\r\n key: target,\r\n duration,\r\n style: {},\r\n content: (<div className={`${prefixCls}-custom-content ${prefixCls}-${type}`}>\n <Icon type={iconType}/>\n <span>{content}</span>\n </div>),\r\n onClose,\r\n });\r\n });\r\n return () => {\r\n if (messageInstance) {\r\n messageInstance.removeNotice(target);\r\n }\r\n };\r\n}\r\nexport default {\r\n info(content, duration, onClose, placement) {\r\n return notice(content, duration, 'info', onClose, placement);\r\n },\r\n success(content, duration, onClose, placement) {\r\n return notice(content, duration, 'success', onClose, placement);\r\n },\r\n error(content, duration, onClose, placement) {\r\n return notice(content, duration, 'error', onClose, placement);\r\n },\r\n // Departed usage, please use warning()\r\n warn(content, duration, onClose, placement) {\r\n return notice(content, duration, 'warning', onClose, placement);\r\n },\r\n warning(content, duration, onClose, placement) {\r\n return notice(content, duration, 'warning', onClose, placement);\r\n },\r\n loading(content, duration, onClose, placement) {\r\n return notice(content, duration, 'loading', onClose, placement);\r\n },\r\n config(options) {\r\n if (options.top !== undefined) {\r\n defaultTop = options.top;\r\n messageInstance = null; // delete messageInstance for new defaultTop\r\n }\r\n if (options.bottom !== undefined) {\r\n defaultBottom = options.bottom;\r\n messageInstance = null; // delete messageInstance for new defaultBottom\r\n }\r\n if (options.duration !== undefined) {\r\n defaultDuration = options.duration;\r\n }\r\n if (options.prefixCls !== undefined) {\r\n customizePrefixCls = options.prefixCls;\r\n }\r\n if (options.getContainer !== undefined) {\r\n getContainer = options.getContainer;\r\n }\r\n if (options.transitionName !== undefined) {\r\n transitionName = options.transitionName;\r\n messageInstance = null; // delete messageInstance for new transitionName\r\n }\r\n if (options.placement !== undefined) {\r\n defaultPlacement = options.placement;\r\n }\r\n },\r\n destroy() {\r\n if (messageInstance) {\r\n messageInstance.destroy();\r\n messageInstance = null;\r\n }\r\n },\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","export function getPlacementStyle(placement, defaultTop, defaultBottom) {\r\n const top = defaultTop ? `${defaultTop}px` : 0;\r\n const bottom = defaultBottom ? `${defaultBottom}px` : 0;\r\n const target = {\r\n left: '24px',\r\n right: '24px',\r\n top,\r\n bottom,\r\n };\r\n let style = {};\r\n switch (placement) {\r\n case 'top':\r\n style = {\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'right':\r\n style = {\r\n left: 'auto',\r\n top: '50%',\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'bottom':\r\n style = {\r\n top: 'auto',\r\n };\r\n break;\r\n case 'left':\r\n style = {\r\n right: 'auto',\r\n top: '50%',\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'topLeft':\r\n case 'leftTop':\r\n style = {\r\n right: 'auto',\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'topRight':\r\n case 'rightTop':\r\n style = {\r\n left: 'auto',\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'bottomLeft':\r\n case 'leftBottom':\r\n style = {\r\n right: 'auto',\r\n top: 'auto',\r\n };\r\n break;\r\n case 'bottomRight':\r\n case 'rightBottom':\r\n style = {\r\n left: 'auto',\r\n top: 'auto',\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n Object.assign(target, style);\r\n return target;\r\n}\r\nexport function getPlacementTransitionName(placement, defaultTransitionName) {\r\n let transitionName = defaultTransitionName;\r\n switch (placement) {\r\n case 'top':\r\n case 'topLeft':\r\n case 'topRight':\r\n transitionName = 'move-up';\r\n break;\r\n case 'left':\r\n case 'leftTop':\r\n case 'leftBottom':\r\n transitionName = 'move-left';\r\n break;\r\n case 'bottom':\r\n case 'bottomLeft':\r\n case 'bottomRight':\r\n transitionName = 'move-down';\r\n break;\r\n case 'right':\r\n case 'rightTop':\r\n case 'rightBottom':\r\n transitionName = 'move-right';\r\n break;\r\n default:\r\n break;\r\n }\r\n return transitionName;\r\n}\r\n","import React from 'react';\r\nimport Icon from '../icon';\r\nimport Notification from '../rc-components/notification';\r\nimport { getPrefixCls } from '../configure';\r\nconst notificationInstance = {};\r\nlet defaultDuration = 4.5;\r\nlet defaultTop = 24;\r\nlet defaultBottom = 24;\r\nlet defaultPlacement = 'topRight';\r\nlet defaultGetContainer;\r\nfunction setNotificationConfig(options) {\r\n const { duration, placement, bottom, top, getContainer } = options;\r\n if (duration !== undefined) {\r\n defaultDuration = duration;\r\n }\r\n if (placement !== undefined) {\r\n defaultPlacement = placement;\r\n }\r\n if (bottom !== undefined) {\r\n defaultBottom = bottom;\r\n }\r\n if (top !== undefined) {\r\n defaultTop = top;\r\n }\r\n if (getContainer !== undefined) {\r\n defaultGetContainer = getContainer;\r\n }\r\n}\r\nfunction getPlacementStyle(placement) {\r\n let style;\r\n switch (placement) {\r\n case 'topLeft':\r\n style = {\r\n left: 0,\r\n top: defaultTop,\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'topRight':\r\n style = {\r\n right: 0,\r\n top: defaultTop,\r\n bottom: 'auto',\r\n };\r\n break;\r\n case 'bottomLeft':\r\n style = {\r\n left: 0,\r\n top: 'auto',\r\n bottom: defaultBottom,\r\n };\r\n break;\r\n default:\r\n style = {\r\n right: 0,\r\n top: 'auto',\r\n bottom: defaultBottom,\r\n };\r\n break;\r\n }\r\n return style;\r\n}\r\nfunction getNotificationInstance(prefixCls, placement, callback) {\r\n const cacheKey = `${prefixCls}-${placement}`;\r\n if (notificationInstance[cacheKey]) {\r\n callback(notificationInstance[cacheKey]);\r\n return;\r\n }\r\n Notification.newInstance({\r\n prefixCls,\r\n className: `${prefixCls}-${placement}`,\r\n style: getPlacementStyle(placement),\r\n getContainer: defaultGetContainer,\r\n closeIcon: <Icon className={`${prefixCls}-close-icon`} type=\"close\"/>,\r\n }, (notification) => {\r\n notificationInstance[cacheKey] = notification;\r\n callback(notification);\r\n });\r\n}\r\nconst typeToIcon = {\r\n success: 'check',\r\n info: 'info',\r\n error: 'error',\r\n warning: 'warning',\r\n};\r\nfunction notice(args) {\r\n const outerPrefixCls = getPrefixCls('notification', args.prefixCls);\r\n const prefixCls = `${outerPrefixCls}-notice`;\r\n const duration = args.duration === undefined ? defaultDuration : args.duration;\r\n let iconNode = null;\r\n if (args.icon) {\r\n iconNode = <span className={`${prefixCls}-icon`}>{args.icon}</span>;\r\n }\r\n else if (args.type) {\r\n const iconType = typeToIcon[args.type];\r\n iconNode = (<Icon className={`${prefixCls}-icon ${prefixCls}-icon-${args.type}`} type={iconType}/>);\r\n }\r\n const autoMarginTag = !args.description && iconNode ? (<span className={`${prefixCls}-message-single-line-auto-margin`}/>) : null;\r\n getNotificationInstance(outerPrefixCls, args.placement || defaultPlacement, (notification) => {\r\n notification.notice({\r\n content: (<div className={iconNode ? `${prefixCls}-with-icon` : ''}>\n {iconNode}\n <div className={`${prefixCls}-message`}>\n {autoMarginTag}\n {args.message}\n </div>\n <div className={`${prefixCls}-description`}>{args.description}</div>\n {args.btn ? <span className={`${prefixCls}-btn`}>{args.btn}</span> : null}\n </div>),\r\n duration,\r\n closable: true,\r\n onClose: args.onClose,\r\n key: args.key,\r\n style: args.style || {},\r\n className: args.className,\r\n });\r\n });\r\n}\r\nconst api = {\r\n open: notice,\r\n close(key) {\r\n Object.keys(notificationInstance).forEach(cacheKey => notificationInstance[cacheKey].removeNotice(key));\r\n },\r\n config: setNotificationConfig,\r\n destroy() {\r\n Object.keys(notificationInstance).forEach(cacheKey => {\r\n notificationInstance[cacheKey].destroy();\r\n delete notificationInstance[cacheKey];\r\n });\r\n },\r\n};\r\n['success', 'info', 'warning', 'error'].forEach(type => {\r\n api[type] = (args) => api.open({\r\n ...args,\r\n type,\r\n });\r\n});\r\napi.warn = api.warning;\r\nexport default api;\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../select/style';\r\nimport '../../input/style';\r\nimport '../../ripple/style';\r\n","import React from 'react';\r\nconst SIZE = 50;\r\nexport default function Loading() {\r\n return (<svg viewBox={`0 0 ${SIZE} ${SIZE}`}>\n <circle cx={SIZE / 2} cy={SIZE / 2} r={SIZE / 2 - 5}/>\n </svg>);\r\n}\r\nLoading.displayName = 'Loading';\r\n","export var ProgressType;\r\n(function (ProgressType) {\r\n ProgressType[\"line\"] = \"line\";\r\n ProgressType[\"circle\"] = \"circle\";\r\n ProgressType[\"dashboard\"] = \"dashboard\";\r\n ProgressType[\"loading\"] = \"loading\";\r\n})(ProgressType || (ProgressType = {}));\r\nexport var ProgressStatus;\r\n(function (ProgressStatus) {\r\n ProgressStatus[\"normal\"] = \"normal\";\r\n ProgressStatus[\"success\"] = \"success\";\r\n ProgressStatus[\"active\"] = \"active\";\r\n ProgressStatus[\"exception\"] = \"exception\";\r\n})(ProgressStatus || (ProgressStatus = {}));\r\nexport var ProgressPosition;\r\n(function (ProgressPosition) {\r\n ProgressPosition[\"top\"] = \"top\";\r\n ProgressPosition[\"bottom\"] = \"bottom\";\r\n ProgressPosition[\"left\"] = \"left\";\r\n ProgressPosition[\"right\"] = \"right\";\r\n})(ProgressPosition || (ProgressPosition = {}));\r\n","import Progress from './progress';\r\nexport { ProgressProps } from './progress';\r\nexport default Progress;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport Icon from '../icon';\r\nimport { Circle } from '../rc-components/progress';\r\nimport Loading from './Loading';\r\nimport { Size } from '../_util/enum';\r\nimport { ProgressPosition, ProgressStatus, ProgressType } from './enum';\r\nimport { getPrefixCls } from '../configure';\r\nexport default class Progress extends Component {\r\n render() {\r\n const props = this.props;\r\n const { prefixCls: customizePrefixCls, className, percent = 0, status, format, trailColor, size, successPercent, type, strokeWidth, width, showInfo, gapDegree = 0, gapPosition, ...restProps } = props;\r\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\r\n const progressStatus = parseInt(successPercent ? successPercent.toString() : percent.toString(), 10) >= 100 &&\r\n !('status' in props)\r\n ? ProgressStatus.success\r\n : status || ProgressStatus.normal;\r\n let progressInfo;\r\n let progress;\r\n const textFormatter = format || (percentNumber => `${percentNumber}%`);\r\n if (showInfo) {\r\n let text;\r\n const circleType = type === ProgressType.circle || type === ProgressType.dashboard;\r\n if (progressStatus === ProgressStatus.exception) {\r\n text = format ? textFormatter(percent) : <Icon type={circleType ? 'close' : 'cancel'}/>;\r\n }\r\n else if (progressStatus === ProgressStatus.success) {\r\n text = format ? (textFormatter(percent)) : (<Icon type={circleType ? 'check' : 'check_circle'}/>);\r\n }\r\n else {\r\n text = textFormatter(percent);\r\n }\r\n progressInfo = <span className={`${prefixCls}-text`}>{text}</span>;\r\n }\r\n if (type === ProgressType.line) {\r\n const percentStyle = {\r\n width: `${percent}%`,\r\n height: strokeWidth || (size === Size.small ? 6 : 8),\r\n };\r\n const successPercentStyle = {\r\n width: `${successPercent}%`,\r\n height: strokeWidth || (size === Size.small ? 6 : 8),\r\n };\r\n const successSegment = successPercent !== undefined ? (<div className={`${prefixCls}-success-bg`} style={successPercentStyle}/>) : null;\r\n progress = (<div>\n <div className={`${prefixCls}-outer`}>\n <div className={`${prefixCls}-inner`}>\n <div className={`${prefixCls}-bg`} style={percentStyle}/>\n {successSegment}\n </div>\n </div>\n {progressInfo}\n </div>);\r\n }\r\n else if (type === ProgressType.circle || type === ProgressType.dashboard) {\r\n const circleSize = width || 120;\r\n const circleStyle = {\r\n width: circleSize,\r\n height: circleSize,\r\n fontSize: circleSize * 0.15 + 6,\r\n };\r\n const circleWidth = strokeWidth || 6;\r\n const gapPos = gapPosition ||\r\n (type === ProgressType.dashboard && ProgressPosition.bottom) ||\r\n ProgressPosition.top;\r\n const gapDeg = gapDegree || (type === ProgressType.dashboard && 75);\r\n progress = (<div className={`${prefixCls}-inner`} style={circleStyle}>\n <Circle percent={percent} strokeWidth={circleWidth} trailWidth={circleWidth} trailColor={trailColor} prefixCls={prefixCls} gapDegree={gapDeg} gapPosition={gapPos}/>\n {progressInfo}\n </div>);\r\n }\r\n else if (type === ProgressType.loading) {\r\n progress = (<div className={`${prefixCls}-inner`}>\n <Loading />\n </div>);\r\n }\r\n const classString = classNames(prefixCls, {\r\n [`${prefixCls}-${(type === ProgressType.dashboard && ProgressType.circle) || type}`]: true,\r\n [`${prefixCls}-status-${progressStatus}`]: true,\r\n [`${prefixCls}-show-info`]: showInfo,\r\n [`${prefixCls}-${size}`]: size,\r\n }, className);\r\n return (<div {...restProps} className={classString}>\n {progress}\n </div>);\r\n }\r\n}\r\nProgress.displayName = 'Progress';\r\nProgress.defaultProps = {\r\n type: ProgressType.line,\r\n percent: 0,\r\n showInfo: true,\r\n trailColor: '#f3f3f3',\r\n size: Size.default,\r\n};\r\nProgress.propTypes = {\r\n status: PropTypes.oneOf([\r\n ProgressStatus.normal,\r\n ProgressStatus.exception,\r\n ProgressStatus.active,\r\n ProgressStatus.success,\r\n ]),\r\n type: PropTypes.oneOf([\r\n ProgressType.line,\r\n ProgressType.circle,\r\n ProgressType.dashboard,\r\n ProgressType.loading,\r\n ]),\r\n showInfo: PropTypes.bool,\r\n percent: PropTypes.number,\r\n width: PropTypes.number,\r\n strokeWidth: PropTypes.number,\r\n trailColor: PropTypes.string,\r\n format: PropTypes.func,\r\n gapDegree: PropTypes.number,\r\n size: PropTypes.oneOf([Size.default, Size.small, Size.large]),\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport PureRenderMixin from '../util/PureRenderMixin';\nimport classNames from 'classnames';\n\nexport default class Checkbox extends Component {\n static 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 };\n static defaultProps = {\n prefixCls: 'rc-checkbox',\n className: '',\n style: {},\n type: 'checkbox',\n defaultChecked: false,\n onFocus() {},\n onBlur() {},\n onChange() {},\n };\n\n constructor(props) {\n super(props);\n\n const checked = 'checked' in props ? props.checked : props.defaultChecked;\n\n this.state = {\n checked,\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if ('checked' in nextProps) {\n this.setState({\n checked: nextProps.checked,\n });\n }\n }\n\n shouldComponentUpdate(...args) {\n return PureRenderMixin.shouldComponentUpdate.apply(this, args);\n }\n\n focus() {\n this.input.focus();\n }\n\n blur() {\n this.input.blur();\n }\n\n handleChange = e => {\n const { props } = this;\n if (props.disabled) {\n return;\n }\n if (!('checked' in props)) {\n this.setState({\n checked: e.target.checked,\n });\n }\n props.onChange({\n target: {\n ...props,\n checked: e.target.checked,\n },\n stopPropagation() {\n e.stopPropagation();\n },\n preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent,\n });\n };\n\n saveInput = node => {\n this.input = node;\n };\n\n render() {\n const {\n prefixCls,\n className,\n style,\n name,\n id,\n type,\n disabled,\n readOnly,\n tabIndex,\n onClick,\n onFocus,\n onBlur,\n autoFocus,\n value,\n ...others\n } = this.props;\n\n const globalProps = Object.keys(others).reduce((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 const { checked } = this.state;\n const classString = classNames(prefixCls, className, {\n [`${prefixCls}-checked`]: checked,\n [`${prefixCls}-disabled`]: disabled,\n });\n\n return (\n <span className={classString} style={style}>\n <input\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 />\n <span className={`${prefixCls}-inner`} />\n </span>\n );\n }\n}\n","import Checkbox from './Checkbox';\n\nexport default Checkbox;\n","import React, { cloneElement, Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport { getWidth, menuAllProps, setStyle } from './util';\n\nconst canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nconst MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\n\n// Fix ssr\nif (canUseDOM) {\n require('mutationobserver-shim');\n}\n\nexport default class DOMWrap extends Component {\n static propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n prefixCls: PropTypes.string,\n level: PropTypes.number,\n theme: PropTypes.string,\n overflowedIndicator: PropTypes.node,\n hidden: PropTypes.bool,\n hiddenClassName: PropTypes.string,\n tag: PropTypes.string,\n style: PropTypes.object,\n };\n\n static defaultProps = {\n tag: 'div',\n className: '',\n };\n\n state = {\n lastVisibleIndex: undefined,\n };\n\n componentDidMount() {\n this.setChildrenWidthAndResize();\n if (this.props.level === 1 && this.props.mode === 'horizontal') {\n const menuUl = ReactDOM.findDOMNode(this);\n if (!menuUl) {\n return;\n }\n this.resizeObserver = new ResizeObserver(entries => {\n entries.forEach(this.setChildrenWidthAndResize);\n });\n\n [].slice\n .call(menuUl.children)\n .concat(menuUl)\n .forEach(el => {\n this.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n this.mutationObserver = new MutationObserver(() => {\n this.resizeObserver.disconnect();\n [].slice\n .call(menuUl.children)\n .concat(menuUl)\n .forEach(el => {\n this.resizeObserver.observe(el);\n });\n this.setChildrenWidthAndResize();\n });\n this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false,\n });\n }\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n if (this.mutationObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n // get all valid menuItem nodes\n getMenuItemNodes = () => {\n const { prefixCls } = this.props;\n const ul = ReactDOM.findDOMNode(this);\n if (!ul) {\n return [];\n }\n\n // filter out all overflowed indicator placeholder\n return [].slice.call(ul.children).filter(node => {\n return node.className.split(' ').indexOf(`${prefixCls}-overflowed-submenu`) < 0;\n });\n };\n\n getOverflowedSubMenuItem = (keyPrefix, overflowedItems, renderPlaceholder) => {\n const { overflowedIndicator, level, mode, prefixCls, theme, style: propStyle } = this.props;\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n }\n // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n const copy = this.props.children[0];\n const { children: throwAway, title, eventKey, ...rest } = copy.props;\n\n let style = { ...propStyle };\n let key = `${keyPrefix}-overflowed-indicator`;\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = {\n ...style,\n display: 'none',\n };\n } else if (renderPlaceholder) {\n style = {\n ...style,\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute',\n };\n key = `${key}-placeholder`;\n }\n\n const popupClassName = theme ? `${prefixCls}-${theme}` : '';\n const props = {};\n menuAllProps.forEach(k => {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n\n return (\n <SubMenu\n title={overflowedIndicator}\n className={`${prefixCls}-overflowed-submenu`}\n popupClassName={popupClassName}\n {...props}\n key={key}\n eventKey={`${keyPrefix}-overflowed-indicator`}\n disabled={false}\n style={style}\n >\n {overflowedItems}\n </SubMenu>\n );\n };\n\n // memorize rendered menuSize\n setChildrenWidthAndResize = () => {\n if (this.props.mode !== 'horizontal') {\n return;\n }\n const ul = ReactDOM.findDOMNode(this);\n\n if (!ul) {\n return;\n }\n\n const ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n const lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1];\n\n // need last overflowed indicator for calculating length;\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n const menuItemNodes = this.getMenuItemNodes();\n\n // 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 const overflowedItems = menuItemNodes.filter(\n c => c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0,\n );\n\n overflowedItems.forEach(c => {\n setStyle(c, 'display', 'inline-block');\n });\n\n this.menuItemSizes = menuItemNodes.map(c => getWidth(c));\n\n overflowedItems.forEach(c => {\n setStyle(c, 'display', 'none');\n });\n this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1]);\n this.originalTotalWidth = this.menuItemSizes.reduce((acc, cur) => acc + cur, 0);\n this.handleResize();\n // prevent the overflowed indicator from taking space;\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n };\n\n resizeObserver = null;\n mutationObserver = null;\n\n // original scroll size of the list\n originalTotalWidth = 0;\n\n // copy of overflowed items\n overflowedItems = [];\n\n // cache item of the original items (so we can track the size and order)\n menuItemSizes = [];\n\n handleResize = () => {\n if (this.props.mode !== 'horizontal') {\n return;\n }\n\n const ul = ReactDOM.findDOMNode(this);\n if (!ul) {\n return;\n }\n const width = getWidth(ul);\n\n this.overflowedItems = [];\n let currentSumWidth = 0;\n\n // index for last visible child in horizontal mode\n let lastVisibleIndex = undefined;\n\n if (this.originalTotalWidth > width) {\n lastVisibleIndex = -1;\n\n this.menuItemSizes.forEach(liWidth => {\n currentSumWidth += liWidth;\n if (currentSumWidth + this.overflowedIndicatorWidth <= width) {\n lastVisibleIndex++;\n }\n });\n }\n\n this.setState({ lastVisibleIndex });\n };\n\n renderChildren(children) {\n // need to take care of overflowed items in horizontal mode\n const { lastVisibleIndex } = this.state;\n return (children || []).reduce((acc, childNode, index) => {\n let item = childNode;\n if (this.props.mode === 'horizontal') {\n let overflowed = this.getOverflowedSubMenuItem(childNode.props.eventKey, []);\n if (\n lastVisibleIndex !== undefined &&\n this.props.className.indexOf(`${this.props.prefixCls}-root`) !== -1\n ) {\n if (index > lastVisibleIndex) {\n item = cloneElement(\n childNode,\n // 这里修改 eventKey 是为了防止隐藏状态下还会触发 openkeys 事件\n {\n style: { display: 'none' },\n eventKey: `${childNode.props.eventKey}-hidden`,\n className: `${childNode.className} ${MENUITEM_OVERFLOWED_CLASSNAME}`,\n },\n );\n }\n if (index === lastVisibleIndex + 1) {\n this.overflowedItems = children.slice(lastVisibleIndex + 1).map(c => {\n return cloneElement(\n c,\n // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n { key: c.props.eventKey, mode: 'vertical-left' },\n );\n });\n\n overflowed = this.getOverflowedSubMenuItem(\n childNode.props.eventKey,\n this.overflowedItems,\n );\n }\n }\n\n const ret = [...acc, overflowed, item];\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(this.getOverflowedSubMenuItem(childNode.props.eventKey, [], true));\n }\n return ret;\n }\n return [...acc, item];\n }, []);\n }\n\n render() {\n const {\n hiddenClassName,\n hidden,\n prefixCls,\n overflowedIndicator,\n mode,\n level,\n tag: Tag,\n children,\n theme,\n ...rest\n } = this.props;\n\n if (hidden) {\n rest.className += ` ${hiddenClassName}`;\n }\n\n return <Tag {...rest}>{this.renderChildren(this.props.children)}</Tag>;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport createReactClass from 'create-react-class';\n\nconst Divider = createReactClass({\n displayName: 'Divider',\n\n propTypes: {\n className: PropTypes.string,\n rootPrefixCls: PropTypes.string,\n },\n\n getDefaultProps() {\n // To fix keyboard UX.\n return { disabled: true };\n },\n\n render() {\n const { className = '', rootPrefixCls } = this.props;\n return <li className={`${className} ${rootPrefixCls}-item-divider`}/>;\n },\n});\n\nexport default Divider;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { create, Provider } from 'mini-store';\nimport noop from 'lodash/noop';\nimport SubPopupMenu, { getActiveKey } from './SubPopupMenu';\n\nexport default class Menu extends Component {\n static displayName = 'Menu';\n\n static propTypes = {\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultOpenKeys: PropTypes.arrayOf(PropTypes.string),\n openKeys: PropTypes.arrayOf(PropTypes.string),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n getPopupContainer: PropTypes.func,\n onClick: PropTypes.func,\n onSelect: PropTypes.func,\n onDeselect: PropTypes.func,\n onDestroy: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n subMenuOpenDelay: PropTypes.number,\n subMenuCloseDelay: PropTypes.number,\n forceSubMenuRender: PropTypes.bool,\n triggerSubMenuAction: PropTypes.string,\n level: PropTypes.number,\n selectable: PropTypes.bool,\n multiple: PropTypes.bool,\n children: PropTypes.any,\n focusable: PropTypes.bool,\n style: PropTypes.object,\n defaultActiveFirst: PropTypes.bool,\n visible: PropTypes.bool,\n activeKey: PropTypes.string,\n };\n\n static 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 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 };\n\n isRootMenu = true;\n\n constructor(props) {\n super(props);\n let selectedKeys = props.defaultSelectedKeys;\n let openKeys = props.defaultOpenKeys;\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n this.store = create({\n selectedKeys,\n openKeys,\n activeKey: { '0-menu-': getActiveKey(props, props.activeKey) },\n });\n }\n\n updateMiniStore() {\n if ('selectedKeys' in this.props) {\n this.store.setState({\n selectedKeys: this.props.selectedKeys || [],\n });\n }\n if ('openKeys' in this.props) {\n this.store.setState({\n openKeys: this.props.openKeys || [],\n });\n }\n }\n\n componentDidMount() {\n this.updateMiniStore();\n }\n\n componentDidUpdate() {\n this.updateMiniStore();\n }\n\n onSelect = selectInfo => {\n const props = this.props;\n if (props.selectable) {\n // root menu\n let selectedKeys = this.store.getState().selectedKeys;\n const selectedKey = selectInfo.key;\n if (props.multiple) {\n selectedKeys = selectedKeys.concat([selectedKey]);\n } else {\n selectedKeys = [selectedKey];\n }\n if (!('selectedKeys' in props)) {\n this.store.setState({\n selectedKeys,\n });\n }\n props.onSelect({\n ...selectInfo,\n selectedKeys,\n });\n }\n };\n\n step(direction) {\n return this.innerMenu.getWrappedInstance().step(direction);\n }\n\n onClick = e => {\n this.props.onClick(e);\n };\n\n onKeyDown = (e, callback) => {\n return this.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n };\n\n onOpenChange = event => {\n const props = this.props;\n const openKeys = this.store.getState().openKeys.concat();\n let changed = false;\n const processSingle = e => {\n let oneChanged = false;\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n const index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n changed = changed || oneChanged;\n };\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n if (changed) {\n if (!('openKeys' in this.props)) {\n this.store.setState({ openKeys });\n }\n props.onOpenChange(openKeys);\n }\n };\n\n onDeselect = selectInfo => {\n const props = this.props;\n if (props.selectable) {\n const selectedKeys = this.store.getState().selectedKeys.concat();\n const selectedKey = selectInfo.key;\n const index = selectedKeys.indexOf(selectedKey);\n if (index !== -1) {\n selectedKeys.splice(index, 1);\n }\n if (!('selectedKeys' in props)) {\n this.store.setState({\n selectedKeys,\n });\n }\n props.onDeselect({\n ...selectInfo,\n selectedKeys,\n });\n }\n };\n\n setInnerMenu = node => {\n this.innerMenu = node;\n };\n\n getStore() {\n const store = this.store || this.props.store;\n\n return store;\n }\n\n getEventKey() {\n return this.props.eventKey || '0-menu-';\n }\n\n getOpenTransitionName() {\n const props = this.props;\n let transitionName = props.openTransitionName;\n const animationName = props.openAnimation;\n if (!transitionName && typeof animationName === 'string') {\n transitionName = `${props.prefixCls}-open-${animationName}`;\n }\n return transitionName;\n }\n\n isInlineMode() {\n return this.props.mode === 'inline';\n }\n\n lastOpenSubMenu() {\n let lastOpen = [];\n const { openKeys } = this.store.getState();\n if (openKeys.length) {\n lastOpen = this.getFlatInstanceArray().filter(c => {\n return c && openKeys.indexOf(c.props.eventKey) !== -1;\n });\n }\n return lastOpen[0];\n }\n\n renderMenuItem(c, i, subIndex, subMenuKey) {\n if (!c) {\n return null;\n }\n const state = this.store.getState();\n const extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: this.props.triggerSubMenuAction,\n subMenuKey,\n };\n return this.renderCommonMenuItem(c, i, subIndex, extraProps);\n }\n\n render() {\n let props = { ...this.props };\n props.className += ` ${props.prefixCls}-root`;\n props = {\n ...props,\n onClick: this.onClick,\n onOpenChange: this.onOpenChange,\n onDeselect: this.onDeselect,\n onSelect: this.onSelect,\n parentMenu: this,\n };\n\n // delete props.openAnimation;\n // delete props.openTransitionName;\n return (\n <Provider store={this.store}>\n <SubPopupMenu {...props} ref={this.setInnerMenu}>\n {this.props.children}\n </SubPopupMenu>\n </Provider>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport createReactClass from 'create-react-class';\nimport KeyCode from '../../_util/KeyCode';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport noop from 'lodash/noop';\nimport Checkbox from '../../checkbox/Checkbox';\nimport Ripple from '../../ripple';\n/* eslint react/no-is-mounted:0 */\n\nconst MenuItem = createReactClass({\n displayName: 'MenuItem',\n\n propTypes: {\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.string,\n active: PropTypes.bool,\n children: PropTypes.any,\n selectedKeys: PropTypes.array,\n disabled: PropTypes.bool,\n title: PropTypes.string,\n onItemHover: PropTypes.func,\n onSelect: PropTypes.func,\n onClick: PropTypes.func,\n onDeselect: PropTypes.func,\n parentMenu: PropTypes.object,\n onDestroy: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n },\n\n getDefaultProps() {\n return {\n onSelect: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n onMouseDown: noop,\n };\n },\n\n componentWillUnmount() {\n const props = this.props;\n if (props.onDestroy) {\n props.onDestroy(props.eventKey);\n }\n },\n\n componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n },\n\n componentDidUpdate() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n },\n\n onKeyDown(e) {\n const keyCode = e.keyCode;\n if (keyCode === KeyCode.ENTER) {\n this.onClick(e);\n return true;\n }\n },\n\n onMouseLeave(e) {\n const { eventKey, onItemHover, onMouseLeave } = this.props;\n onItemHover({\n key: eventKey,\n hover: false,\n });\n onMouseLeave({\n key: eventKey,\n domEvent: e,\n });\n },\n\n onMouseEnter(e) {\n const { eventKey, onItemHover, onMouseEnter } = this.props;\n onItemHover({\n key: eventKey,\n hover: true,\n });\n onMouseEnter({\n key: eventKey,\n domEvent: e,\n });\n },\n\n onClick(e) {\n const { eventKey, multiple, onClick, onSelect, onDeselect, isSelected } = this.props;\n const info = {\n key: eventKey,\n keyPath: [eventKey],\n item: this,\n domEvent: e,\n };\n onClick(info);\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 getPrefixCls() {\n return `${this.props.rootPrefixCls}-item`;\n },\n\n getActiveClassName() {\n return `${this.getPrefixCls()}-active`;\n },\n\n getSelectedClassName() {\n return `${this.getPrefixCls()}-selected`;\n },\n\n getDisabledClassName() {\n return `${this.getPrefixCls()}-disabled`;\n },\n\n render() {\n const props = this.props;\n const className = classNames(this.getPrefixCls(), props.className, {\n [this.getActiveClassName()]: !props.disabled && props.active,\n [this.getSelectedClassName()]: props.isSelected,\n [this.getDisabledClassName()]: props.disabled,\n });\n const attrs = {\n ...props.attribute,\n title: props.title,\n className,\n role: 'menuitem',\n 'aria-selected': props.isSelected,\n 'aria-disabled': props.disabled,\n };\n let mouseEvent = {};\n if (!props.disabled) {\n mouseEvent = {\n onClick: this.onClick,\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter,\n onMouseDown: this.props.onMouseDown,\n };\n }\n const style = {\n ...props.style,\n };\n if (props.mode === 'inline') {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n\n const notFound = props.eventKey === 'NOT_FOUND';\n const checkbox = props.multiple && !notFound ? <Checkbox disabled={props.disabled} checked={props.isSelected} tabIndex={-1} /> : null;\n return (\n <Ripple disabled={props.disabled}>\n <li\n {...attrs}\n {...mouseEvent}\n style={style}\n >\n {checkbox}\n {props.children}\n </li>\n </Ripple>\n );\n },\n});\n\nMenuItem.isMenuItem = 1;\n\nexport default connect(({ activeKey, selectedKeys }, { eventKey, subMenuKey }) => ({\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1,\n}))(MenuItem);\n","import React, { Children, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { menuAllProps } from './util';\n\nclass MenuItemGroup extends Component {\n static propTypes = {\n renderMenuItem: PropTypes.func,\n index: PropTypes.number,\n className: PropTypes.string,\n subMenuKey: PropTypes.string,\n rootPrefixCls: PropTypes.string,\n };\n\n static defaultProps = {\n disabled: true,\n };\n\n renderInnerMenuItem = (item) => {\n const { renderMenuItem, index } = this.props;\n return renderMenuItem(item, index, this.props.subMenuKey);\n };\n\n render() {\n const { ...props } = this.props;\n const { className = '', rootPrefixCls } = props;\n const titleClassName = `${rootPrefixCls}-item-group-title`;\n const listClassName = `${rootPrefixCls}-item-group-list`;\n const { title, children } = props;\n menuAllProps.forEach(key => delete props[key]);\n\n // Set onClick to null, to ignore propagated onClick event\n delete props.onClick;\n\n return (\n <li {...props} className={`${className} ${rootPrefixCls}-item-group`}>\n <div\n className={titleClassName}\n title={typeof title === 'string' ? title : undefined}\n >\n {title}\n </div>\n <ul className={listClassName}>\n {Children.map(children, this.renderInnerMenuItem)}\n </ul>\n </li>\n );\n }\n}\n\nMenuItemGroup.isMenuItemGroup = true;\n\nexport default MenuItemGroup;\n","import React, { Component, createElement } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport noop from 'lodash/noop';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport Trigger from '../trigger';\nimport KeyCode from '../../_util/KeyCode';\nimport SubPopupMenu from './SubPopupMenu';\nimport placements from './placements';\nimport Animate from '../../animate';\nimport { getMenuIdFromSubMenuEventKey, loopMenuItemRecursively, menuAllProps, } from './util';\n\nlet guid = 0;\n\nconst popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop',\n};\n\nconst updateDefaultActiveFirst = (store, eventKey, defaultActiveFirst) => {\n const menuId = getMenuIdFromSubMenuEventKey(eventKey);\n const state = store.getState();\n store.setState({\n defaultActiveFirst: {\n ...state.defaultActiveFirst,\n [menuId]: defaultActiveFirst,\n },\n });\n};\n\nexport class SubMenu extends Component {\n static propTypes = {\n parentMenu: PropTypes.object,\n title: PropTypes.node,\n children: PropTypes.any,\n selectedKeys: PropTypes.array,\n openKeys: PropTypes.array,\n onClick: PropTypes.func,\n onOpenChange: PropTypes.func,\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.string,\n multiple: PropTypes.bool,\n active: PropTypes.bool, // TODO: remove\n onItemHover: PropTypes.func,\n onSelect: PropTypes.func,\n triggerSubMenuAction: PropTypes.string,\n onDeselect: PropTypes.func,\n onDestroy: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onTitleMouseEnter: PropTypes.func,\n onTitleMouseLeave: PropTypes.func,\n onTitleClick: PropTypes.func,\n popupOffset: PropTypes.array,\n isOpen: PropTypes.bool,\n store: PropTypes.object,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n manualRef: PropTypes.func,\n itemIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n expandIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n };\n\n static 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 };\n\n constructor(props) {\n super(props);\n const store = props.store;\n const eventKey = props.eventKey;\n const defaultActiveFirst = store.getState().defaultActiveFirst;\n\n this.isRootMenu = false;\n\n let value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n }\n\n componentDidMount() {\n this.componentDidUpdate();\n }\n\n componentDidUpdate() {\n const { mode, parentMenu, manualRef } = this.props;\n\n // invoke customized ref to expose component to mixin\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(() => this.adjustWidth(), 0);\n }\n\n componentWillUnmount() {\n const { onDestroy, eventKey } = this.props;\n if (onDestroy) {\n onDestroy(eventKey);\n }\n\n /* istanbul ignore if */\n if (this.minWidthTimeout) {\n clearTimeout(this.minWidthTimeout);\n }\n\n /* istanbul ignore if */\n if (this.mouseenterTimeout) {\n clearTimeout(this.mouseenterTimeout);\n }\n }\n\n onDestroy = (key) => {\n this.props.onDestroy(key);\n };\n\n onKeyDown = (e) => {\n const keyCode = e.keyCode;\n const menu = this.menuInstance;\n const {\n isOpen,\n store,\n } = this.props;\n\n if (keyCode === KeyCode.ENTER) {\n this.onTitleClick(e);\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);\n // need to update current menu's defaultActiveFirst value\n updateDefaultActiveFirst(store, this.props.eventKey, true);\n }\n return true;\n }\n if (keyCode === KeyCode.LEFT) {\n let handled;\n if (isOpen) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n if (!handled) {\n this.triggerOpenChange(false);\n handled = true;\n }\n return handled;\n }\n\n if (isOpen && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n };\n\n onOpenChange = (e) => {\n this.props.onOpenChange(e);\n };\n\n onPopupVisibleChange = (visible) => {\n this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n };\n\n onMouseEnter = (e) => {\n const { eventKey: key, onMouseEnter, store } = this.props;\n updateDefaultActiveFirst(store, this.props.eventKey, false);\n onMouseEnter({\n key,\n domEvent: e,\n });\n };\n\n onMouseLeave = (e) => {\n const {\n parentMenu,\n eventKey,\n onMouseLeave,\n } = this.props;\n parentMenu.subMenuInstance = this;\n onMouseLeave({\n key: eventKey,\n domEvent: e,\n });\n };\n\n onTitleMouseEnter = (domEvent) => {\n const { eventKey: key, onItemHover, onTitleMouseEnter } = this.props;\n onItemHover({\n key,\n hover: true,\n });\n onTitleMouseEnter({\n key,\n domEvent,\n });\n };\n\n onTitleMouseLeave = (e) => {\n const { parentMenu, eventKey, onItemHover, onTitleMouseLeave } = this.props;\n parentMenu.subMenuInstance = this;\n onItemHover({\n key: eventKey,\n hover: false,\n });\n onTitleMouseLeave({\n key: eventKey,\n domEvent: e,\n });\n };\n\n onTitleClick = (e) => {\n const { props } = this;\n props.onTitleClick({\n key: props.eventKey,\n domEvent: e,\n });\n if (props.triggerSubMenuAction === 'hover') {\n return;\n }\n this.triggerOpenChange(!props.isOpen, 'click');\n updateDefaultActiveFirst(props.store, this.props.eventKey, false);\n };\n\n onSubMenuClick = (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 onSelect = (info) => {\n this.props.onSelect(info);\n };\n\n onDeselect = (info) => {\n this.props.onDeselect(info);\n };\n\n getPrefixCls = () => {\n return `${this.props.rootPrefixCls}-submenu`;\n };\n\n getActiveClassName = () => {\n return `${this.getPrefixCls()}-active`;\n };\n\n getDisabledClassName = () => {\n return `${this.getPrefixCls()}-disabled`;\n };\n\n getSelectedClassName = () => {\n return `${this.getPrefixCls()}-selected`;\n };\n\n getOpenClassName = () => {\n return `${this.props.rootPrefixCls}-submenu-open`;\n };\n\n saveMenuInstance = (c) => {\n // children menu instance\n this.menuInstance = c;\n };\n\n addKeyPath = (info) => {\n return {\n ...info,\n keyPath: (info.keyPath || []).concat(this.props.eventKey),\n };\n };\n\n triggerOpenChange = (open, type) => {\n const key = this.props.eventKey;\n const openChange = () => {\n this.onOpenChange({\n key,\n item: this,\n trigger: type,\n open,\n });\n };\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n this.mouseenterTimeout = setTimeout(() => {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n };\n\n isChildrenSelected = () => {\n const ret = { find: false };\n loopMenuItemRecursively(this.props.children, this.props.selectedKeys, ret);\n return ret.find;\n };\n\n isOpen = () => {\n return this.props.openKeys.indexOf(this.props.eventKey) !== -1;\n };\n\n adjustWidth = () => {\n /* istanbul ignore if */\n if (!this.subMenuTitle || !this.menuInstance) {\n return;\n }\n const popupMenu = findDOMNode(this.menuInstance);\n if (popupMenu.offsetWidth >= this.subMenuTitle.offsetWidth) {\n return;\n }\n\n /* istanbul ignore next */\n popupMenu.style.minWidth = `${this.subMenuTitle.offsetWidth}px`;\n };\n\n saveSubMenuTitle = (subMenuTitle) => {\n this.subMenuTitle = subMenuTitle;\n };\n\n renderChildren(children) {\n const props = this.props;\n const baseProps = {\n mode: props.mode === 'horizontal' ? 'vertical' : props.mode,\n hidden: !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: `${props.eventKey}-menu-`,\n openKeys: props.openKeys,\n openTransitionName: props.openTransitionName,\n openAnimation: props.openAnimation,\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()\n .defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n id: this._menuId,\n manualRef: this.saveMenuInstance,\n itemIcon: props.itemIcon,\n expandIcon: props.expandIcon,\n };\n\n const haveRendered = this.haveRendered;\n this.haveRendered = true;\n\n this.haveOpened = this.haveOpened || !baseProps.hidden || baseProps.forceSubMenuRender;\n // never rendered not planning to, don't render\n if (!this.haveOpened) {\n return <div />;\n }\n\n // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's hidden (not sure why)\n // show appear transition if it's not inline mode\n const transitionAppear = haveRendered || baseProps.hidden || !baseProps.mode === 'inline';\n\n baseProps.className = ` ${baseProps.prefixCls}-sub`;\n const animProps = {};\n\n if (baseProps.openTransitionName) {\n animProps.transitionName = baseProps.openTransitionName;\n } else if (typeof baseProps.openAnimation === 'object') {\n animProps.animation = { ...baseProps.openAnimation };\n if (!transitionAppear) {\n delete animProps.animation.appear;\n }\n }\n\n return (\n <Animate\n {...animProps}\n hiddenProp=\"hidden\"\n component=\"\"\n transitionAppear={transitionAppear}\n >\n <SubPopupMenu {...baseProps} id={this._menuId}>{children}</SubPopupMenu>\n </Animate>\n );\n }\n\n render() {\n const props = { ...this.props };\n const isOpen = props.isOpen;\n const prefixCls = this.getPrefixCls();\n const isInlineMode = props.mode === 'inline';\n const className = classNames(prefixCls, `${prefixCls}-${props.mode}`, {\n [props.className]: !!props.className,\n [this.getOpenClassName()]: isOpen,\n [this.getActiveClassName()]: props.active || (isOpen && !isInlineMode),\n [this.getDisabledClassName()]: props.disabled,\n [this.getSelectedClassName()]: this.isChildrenSelected(),\n });\n\n if (!this._menuId) {\n if (props.eventKey) {\n this._menuId = `${props.eventKey}$Menu`;\n } else {\n this._menuId = `$__$${++guid}$Menu`;\n }\n }\n\n let mouseEvents = {};\n let titleClickEvents = {};\n let titleMouseEvents = {};\n if (!props.disabled) {\n mouseEvents = {\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter,\n };\n\n // only works in title, not outer li\n titleClickEvents = {\n onClick: this.onTitleClick,\n };\n titleMouseEvents = {\n onMouseEnter: this.onTitleMouseEnter,\n onMouseLeave: this.onTitleMouseLeave,\n };\n }\n\n const style = {};\n if (isInlineMode) {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n\n let ariaOwns = {};\n // 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 if (this.props.isOpen) {\n ariaOwns = {\n 'aria-owns': this._menuId,\n };\n }\n\n // expand custom icon should NOT be displayed in menu with horizontal mode.\n let icon = null;\n if (props.mode !== 'horizontal') {\n icon = this.props.expandIcon; // ReactNode\n if (typeof this.props.expandIcon === 'function') {\n icon = createElement(\n this.props.expandIcon,\n { ...this.props },\n );\n }\n }\n\n const title = (\n <div\n ref={this.saveSubMenuTitle}\n style={style}\n className={`${prefixCls}-title`}\n {...titleMouseEvents}\n {...titleClickEvents}\n aria-expanded={isOpen}\n {...ariaOwns}\n aria-haspopup=\"true\"\n title={typeof props.title === 'string' ? props.title : undefined}\n >\n {props.title}\n {icon || <i className={`${prefixCls}-arrow`} />}\n </div>\n );\n const children = this.renderChildren(props.children);\n\n const getPopupContainer = props.parentMenu.isRootMenu ? props.parentMenu.props.getPopupContainer : triggerNode => triggerNode.parentNode;\n const popupPlacement = popupPlacementMap[props.mode];\n const popupAlign = props.popupOffset ? { offset: props.popupOffset } : {};\n const popupClassName = props.mode === 'inline' ? '' : props.popupClassName;\n const {\n disabled,\n triggerSubMenuAction,\n subMenuOpenDelay,\n forceSubMenuRender,\n subMenuCloseDelay,\n builtinPlacements,\n } = props;\n menuAllProps.forEach(key => delete props[key]);\n // Set onClick to null, to ignore propagated onClick event\n delete props.onClick;\n\n return (\n <li\n {...props}\n {...mouseEvents}\n className={className}\n role=\"menuitem\"\n >\n {isInlineMode && title}\n {isInlineMode && children}\n {!isInlineMode && (\n <Trigger\n prefixCls={prefixCls}\n popupClassName={`${prefixCls}-popup ${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 >\n {title}\n </Trigger>\n )}\n </li>\n );\n }\n}\n\nconst connected = connect(({ openKeys, activeKey, selectedKeys }, { eventKey, subMenuKey }) => ({\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys,\n}))(SubMenu);\n\nconnected.isSubMenu = true;\n\nexport default connected;\n","import React, { Children, cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport { connect } from 'mini-store';\nimport KeyCode from '../../_util/KeyCode';\nimport createChainedFunction from '../util/createChainedFunction';\nimport { getKeyFromChildrenIndex, loopMenuItem, menuAllProps } from './util';\nimport DOMWrap from './DOMWrap';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n return arr.every(c => !!c.props.disabled);\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n const state = store.getState();\n store.setState({\n activeKey: {\n ...state.activeKey,\n [menuId]: activeKey,\n },\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 let activeKey = originalActiveKey;\n const { children, eventKey } = props;\n if (activeKey) {\n let found;\n loopMenuItem(children, (c, i) => {\n if (c && !c.props.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n if (found) {\n return activeKey;\n }\n }\n activeKey = null;\n if (props.defaultActiveFirst) {\n loopMenuItem(children, (c, i) => {\n if (!activeKey && c && !c.props.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n return activeKey;\n}\n\nexport function saveRef(c) {\n if (c) {\n const index = this.instanceArray.indexOf(c);\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}\n\nexport class SubPopupMenu extends Component {\n static propTypes = {\n onSelect: PropTypes.func,\n onClick: PropTypes.func,\n onDeselect: PropTypes.func,\n onOpenChange: PropTypes.func,\n onDestroy: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n openKeys: PropTypes.arrayOf(PropTypes.string),\n hidden: PropTypes.bool,\n children: PropTypes.any,\n parentMenu: PropTypes.object,\n eventKey: PropTypes.string,\n store: PropTypes.shape({\n getState: PropTypes.func,\n setState: PropTypes.func,\n }),\n\n // adding in refactor\n focusable: PropTypes.bool,\n multiple: PropTypes.bool,\n style: PropTypes.object,\n defaultActiveFirst: PropTypes.bool,\n activeKey: PropTypes.string,\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultOpenKeys: PropTypes.arrayOf(PropTypes.string),\n level: PropTypes.number,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n triggerSubMenuAction: PropTypes.oneOf(['click', 'hover']),\n inlineIndent: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n manualRef: PropTypes.func,\n itemIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n expandIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n };\n\n static defaultProps = {\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n level: 1,\n inlineIndent: 24,\n hidden: false,\n focusable: true,\n style: {},\n manualRef: noop,\n };\n\n constructor(props) {\n super(props);\n\n props.store.setState({\n activeKey: {\n ...props.store.getState().activeKey,\n [props.eventKey]: getActiveKey(props, props.activeKey),\n },\n });\n\n this.instanceArray = [];\n }\n\n componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n\n shouldComponentUpdate(nextProps) {\n return !this.props.hidden || !nextProps.hidden;\n }\n\n componentDidUpdate() {\n const props = this.props;\n const originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n const activeKey = getActiveKey(props, originalActiveKey);\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n }\n }\n\n // all keyboard events callbacks run from here at first\n onKeyDown = (e, callback) => {\n const keyCode = e.keyCode;\n let handled;\n this.getFlatInstanceArray().forEach((obj) => {\n if (obj && obj.props.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n if (handled) {\n return 1;\n }\n let activeItem = null;\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = this.step(keyCode === KeyCode.UP ? -1 : 1);\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\n onItemHover = (e) => {\n const { key, hover } = e;\n updateActiveKey(this.props.store, getEventKey(this.props), hover ? key : null);\n };\n\n onDeselect = (selectInfo) => {\n this.props.onDeselect(selectInfo);\n };\n\n onSelect = (selectInfo) => {\n this.props.onSelect(selectInfo);\n };\n\n onClick = (e) => {\n this.props.onClick(e);\n };\n\n onOpenChange = (e) => {\n this.props.onOpenChange(e);\n };\n\n onDestroy = (key) => {\n /* istanbul ignore next */\n this.props.onDestroy(key);\n };\n\n getFlatInstanceArray = () => {\n return this.instanceArray;\n };\n\n getOpenTransitionName = () => {\n return this.props.openTransitionName;\n };\n\n step = (direction) => {\n let children = this.getFlatInstanceArray();\n const activeKey = this.props.store.getState().activeKey[getEventKey(this.props)];\n const len = children.length;\n if (!len) {\n return null;\n }\n if (direction < 0) {\n children = children.concat().reverse();\n }\n // find current activeIndex\n let activeIndex = -1;\n children.every((c, ci) => {\n if (c && c.props.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n return true;\n });\n if (\n !this.props.defaultActiveFirst && activeIndex !== -1\n &&\n allDisabled(children.slice(activeIndex, len - 1))\n ) {\n return undefined;\n }\n const start = (activeIndex + 1) % len;\n let i = start;\n\n do {\n const child = children[i];\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 renderCommonMenuItem = (child, i, extraProps) => {\n const state = this.props.store.getState();\n const props = this.props;\n const key = getKeyFromChildrenIndex(child, props.eventKey, i);\n const childProps = child.props;\n const isActive = key === state.activeKey;\n const newChildProps = {\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(this)),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n onClick: (e) => {\n (childProps.onClick || noop)(e);\n this.onClick(e);\n },\n onItemHover: this.onItemHover,\n openTransitionName: this.getOpenTransitionName(),\n openAnimation: props.openAnimation,\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,\n };\n if (props.mode === 'inline') {\n newChildProps.triggerSubMenuAction = 'click';\n }\n return cloneElement(child, newChildProps);\n };\n\n renderMenuItem = (c, i, subMenuKey) => {\n /* istanbul ignore if */\n if (!c) {\n return null;\n }\n const props = this.props;\n const extraProps = {\n openKeys: props.openKeys,\n selectedKeys: props.selectedKeys,\n triggerSubMenuAction: props.triggerSubMenuAction,\n subMenuKey,\n };\n return this.renderCommonMenuItem(c, i, extraProps);\n };\n\n render() {\n const { ...props } = this.props;\n\n this.instanceArray = [];\n const className = classNames(\n props.prefixCls,\n props.className,\n `${props.prefixCls}-${props.mode}`,\n );\n const haveRendered = this.haveRendered;\n this.haveRendered = true;\n this.haveOpened = this.haveOpened || !props.hidden || props.forceSubMenuRender;\n if (!this.haveOpened) {\n return null;\n }\n const domProps = {\n className,\n // role could be 'select' and by default set to menu\n role: props.role || 'menu',\n };\n if (props.id) {\n domProps.id = props.id;\n }\n if (props.focusable) {\n domProps.tabIndex = '0';\n domProps.onKeyDown = this.onKeyDown;\n }\n const { prefixCls, eventKey, hidden, level, mode, overflowedIndicator, theme } = props;\n menuAllProps.forEach(key => delete props[key]);\n\n const transitionAppear = !(!haveRendered && !props.hidden && props.mode === 'inline');\n\n props.className += ` ${props.prefixCls}-sub`;\n delete props.onClick;\n const animProps = {};\n if (props.openTransitionName) {\n animProps.transitionName = props.openTransitionName;\n } else if (typeof props.openAnimation === 'object') {\n animProps.animation = { ...props.openAnimation };\n if (!transitionAppear) {\n delete animProps.animation.appear;\n }\n }\n return (\n /* eslint-disable */\n <DOMWrap\n {...props}\n prefixCls={prefixCls}\n mode={mode}\n tag=\"ul\"\n level={level}\n theme={theme}\n hiddenClassName={`${prefixCls}-hidden`}\n hidden={hidden}\n overflowedIndicator={overflowedIndicator}\n {...domProps}\n >\n {Children.map(\n props.children,\n (c, i) => this.renderMenuItem(c, i, eventKey || '0-menu-'),\n )}\n </DOMWrap>\n /*eslint-enable */\n );\n }\n}\n\nconst connected = connect()(SubPopupMenu);\n\nexport default connected;\n","import Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\n\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\n\nexport default Menu;\n","const autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1,\n};\n\nexport const 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};\n\nexport default placements;\n","import React, { Children } from 'react';\nimport warning from '../../_util/warning';\n\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n const prefix = menuEventKey || '';\n return child.key || `${prefix}item_${index}`;\n}\n\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return `${eventKey}-menu-`;\n}\n\nexport function loopMenuItem(children, cb) {\n let index = -1;\n Children.forEach(children, c => {\n index++;\n if (c && c.type && c.type.isMenuItemGroup) {\n Children.forEach(c.props.children, c2 => {\n index++;\n cb(c2, index);\n });\n } else {\n cb(c, index);\n }\n });\n}\n\nexport function loopMenuItemRecursively(children, keys, ret) {\n if (!children || ret.find) {\n return;\n }\n Children.forEach(children, c => {\n if (c) {\n const construct = c.type;\n if (\n !construct ||\n !(construct.isSubMenu || construct.isMenuItem || construct.isMenuItemGroup)\n ) {\n return;\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}\n\nexport const menuAllProps = [\n 'defaultSelectedKeys',\n 'selectedKeys',\n 'defaultOpenKeys',\n 'openKeys',\n 'mode',\n 'getPopupContainer',\n 'onSelect',\n 'onDeselect',\n 'onDestroy',\n 'openTransitionName',\n 'openAnimation',\n 'subMenuOpenDelay',\n 'subMenuCloseDelay',\n 'forceSubMenuRender',\n 'triggerSubMenuAction',\n 'level',\n 'selectable',\n 'multiple',\n 'onOpenChange',\n 'visible',\n 'focusable',\n 'defaultActiveFirst',\n 'prefixCls',\n 'inlineIndent',\n 'parentMenu',\n 'title',\n 'rootPrefixCls',\n 'eventKey',\n 'active',\n 'onItemHover',\n 'onTitleMouseEnter',\n 'onTitleMouseLeave',\n 'onTitleClick',\n 'popupAlign',\n 'popupOffset',\n 'isOpen',\n 'renderMenuItem',\n 'manualRef',\n 'subMenuKey',\n 'disabled',\n 'index',\n 'isSelected',\n 'store',\n 'activeKey',\n 'builtinPlacements',\n 'overflowedIndicator',\n\n // the following keys found need to be removed from test regression\n 'attribute',\n 'value',\n 'popupClassName',\n 'inlineCollapsed',\n 'menu',\n 'theme',\n 'itemIcon',\n 'expandIcon',\n];\n\nexport const getWidth = elem =>\n (elem &&\n typeof elem.getBoundingClientRect === 'function' &&\n elem.getBoundingClientRect().width) ||\n 0;\n\nexport const setStyle = (elem, styleProperty, value) => {\n if (elem && typeof elem.style === 'object') {\n elem.style[styleProperty] = value;\n }\n};\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nexport default class Notice extends Component {\n static propTypes = {\n duration: PropTypes.number,\n onClose: PropTypes.func,\n children: PropTypes.any,\n closeIcon: PropTypes.node,\n };\n\n static defaultProps = {\n onEnd() {},\n onClose() {},\n duration: 1.5,\n style: {\n right: '50%',\n },\n };\n\n componentDidMount() {\n this.startCloseTimer();\n }\n\n componentWillUnmount() {\n this.clearCloseTimer();\n }\n\n close = () => {\n this.clearCloseTimer();\n this.props.onClose();\n };\n\n startCloseTimer = () => {\n if (this.props.duration) {\n this.closeTimer = setTimeout(() => {\n this.close();\n }, this.props.duration * 1000);\n }\n };\n\n clearCloseTimer = () => {\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n };\n\n render() {\n const props = this.props;\n const componentClass = `${props.prefixCls}-notice`;\n const className = {\n [`${componentClass}`]: 1,\n [`${componentClass}-closable`]: props.closable,\n [props.className]: !!props.className,\n };\n return (\n <div\n className={classNames(className)}\n style={props.style}\n onMouseEnter={this.clearCloseTimer}\n onMouseLeave={this.startCloseTimer}\n >\n <div className={`${componentClass}-content`}>{props.children}</div>\n {props.closable ? (\n <a tabIndex=\"0\" onClick={this.close} className={`${componentClass}-close`}>\n {props.closeIcon || <span className={`${componentClass}-close-x`}></span>}\n </a>\n ) : null}\n </div>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Animate from '../../animate';\nimport createChainedFunction from '../util/createChainedFunction';\nimport classnames from 'classnames';\nimport Notice from './Notice';\n\nlet seed = 0;\nconst now = Date.now();\n\nfunction getUuid() {\n return `rcNotification_${now}_${seed++}`;\n}\n\nexport default class Notification extends Component {\n static propTypes = {\n prefixCls: PropTypes.string,\n transitionName: PropTypes.string,\n animation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n style: PropTypes.object,\n closeIcon: PropTypes.node,\n };\n\n static defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%',\n },\n };\n\n static newInstance = function newNotificationInstance(properties, callback) {\n const { getContainer, ...props } = properties || {};\n const div = document.createElement('div');\n if (getContainer) {\n const root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n let called = false;\n\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy() {\n ReactDOM.unmountComponentAtNode(div);\n div.parentNode.removeChild(div);\n },\n });\n }\n\n ReactDOM.render(<Notification {...props} ref={ref} />, div);\n };\n\n state = {\n notices: [],\n };\n\n getTransitionName() {\n const props = this.props;\n let transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = `${props.prefixCls}-${props.animation}`;\n }\n return transitionName;\n }\n\n add = notice => {\n const key = (notice.key = notice.key || getUuid());\n this.setState(previousState => {\n const notices = previousState.notices;\n if (!notices.filter(v => v.key === key).length) {\n return {\n notices: notices.concat(notice),\n };\n }\n });\n };\n\n remove = key => {\n this.setState(previousState => {\n return {\n notices: previousState.notices.filter(notice => notice.key !== key),\n };\n });\n };\n\n render() {\n const props = this.props;\n const noticeNodes = this.state.notices.map(notice => {\n const onClose = createChainedFunction(this.remove.bind(this, notice.key), notice.onClose);\n return (\n <Notice\n prefixCls={props.prefixCls}\n {...notice}\n onClose={onClose}\n closeIcon={props.closeIcon}\n >\n {notice.content}\n </Notice>\n );\n });\n const className = {\n [props.prefixCls]: 1,\n [props.className]: !!props.className,\n };\n return (\n <div className={classnames(className)} style={props.style}>\n <Animate transitionName={this.getTransitionName()}>{noticeNodes}</Animate>\n </div>\n );\n }\n}\n","import Notification from './Notification';\n\nexport default Notification;\n","/* eslint react/prop-types: 0 */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport enhancer from './enhancer';\nimport { defaultProps, propTypes } from './types';\n\nclass Circle extends Component {\n static propTypes = {\n ...propTypes,\n gapPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n };\n\n static defaultProps = {\n ...defaultProps,\n gapPosition: 'top',\n };\n\n getPathStyles() {\n const { percent, strokeWidth, gapDegree = 0, gapPosition } = this.props;\n const radius = 50 - strokeWidth / 2;\n let beginPositionX = 0;\n let beginPositionY = -radius;\n let endPositionX = 0;\n let endPositionY = -2 * radius;\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = 2 * radius;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = -2 * radius;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = 2 * radius;\n break;\n default:\n }\n const pathString = `M 50,50 m ${beginPositionX},${beginPositionY}\n a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY}\n a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`;\n const len = Math.PI * 2 * radius;\n const trailPathStyle = {\n strokeDasharray: `${len - gapDegree}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s',\n };\n const strokePathStyle = {\n strokeDasharray: `${(percent / 100) * (len - gapDegree)}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`,\n transition:\n 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s', // eslint-disable-line\n };\n return { pathString, trailPathStyle, strokePathStyle };\n }\n\n render() {\n const {\n prefixCls,\n strokeWidth,\n trailWidth,\n strokeColor,\n percent,\n trailColor,\n strokeLinecap,\n style,\n className,\n ...restProps\n } = this.props;\n const { pathString, trailPathStyle, strokePathStyle } = this.getPathStyles();\n delete restProps.percent;\n delete restProps.gapDegree;\n delete restProps.gapPosition;\n return (\n <svg\n className={`${prefixCls}-circle ${className}`}\n viewBox=\"0 0 100 100\"\n style={style}\n {...restProps}\n >\n <path\n className={`${prefixCls}-circle-trail`}\n d={pathString}\n stroke={trailColor}\n strokeWidth={trailWidth || strokeWidth}\n fillOpacity=\"0\"\n style={trailPathStyle}\n />\n <path\n className={`${prefixCls}-circle-path`}\n d={pathString}\n strokeLinecap={strokeLinecap}\n stroke={strokeColor}\n strokeWidth={this.props.percent === 0 ? 0 : strokeWidth}\n fillOpacity=\"0\"\n ref={path => {\n this.path = path;\n }}\n style={strokePathStyle}\n />\n </svg>\n );\n }\n}\n\nexport default enhancer(Circle);\n","import React, { Component } from 'react';\nimport enhancer from './enhancer';\nimport { defaultProps, propTypes } from './types';\n\nclass Line extends Component {\n static propTypes = propTypes;\n\n static defaultProps = defaultProps;\n\n render() {\n const {\n className,\n percent,\n prefixCls,\n strokeColor,\n strokeLinecap,\n strokeWidth,\n style,\n trailColor,\n trailWidth,\n ...restProps\n } = this.props;\n\n delete restProps.gapPosition;\n\n const pathStyle = {\n strokeDasharray: '100px, 100px',\n strokeDashoffset: `${100 - percent}px`,\n transition: 'stroke-dashoffset 0.3s ease 0s, stroke 0.3s linear',\n };\n\n const center = strokeWidth / 2;\n const right = 100 - strokeWidth / 2;\n const pathString = `M ${strokeLinecap === 'round' ? center : 0},${center}\n L ${strokeLinecap === 'round' ? right : 100},${center}`;\n const viewBoxString = `0 0 100 ${strokeWidth}`;\n\n return (\n <svg\n className={`${prefixCls}-line ${className}`}\n viewBox={viewBoxString}\n preserveAspectRatio=\"none\"\n style={style}\n {...restProps}\n >\n <path\n className={`${prefixCls}-line-trail`}\n d={pathString}\n strokeLinecap={strokeLinecap}\n stroke={trailColor}\n strokeWidth={trailWidth || strokeWidth}\n fillOpacity=\"0\"\n />\n <path\n className={`${prefixCls}-line-path`}\n d={pathString}\n strokeLinecap={strokeLinecap}\n stroke={strokeColor}\n strokeWidth={strokeWidth}\n fillOpacity=\"0\"\n ref={path => {\n this.path = path;\n }}\n style={pathStyle}\n />\n </svg>\n );\n }\n}\n\nexport default enhancer(Line);\n","const enhancer = WrappedComponent => class Progress extends WrappedComponent {\n componentDidUpdate() {\n if (!this.path) {\n return;\n }\n const pathStyle = this.path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n const now = Date.now();\n if (this.prevTimeStamp && now - this.prevTimeStamp < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n this.prevTimeStamp = Date.now();\n }\n\n render() {\n return super.render();\n }\n};\n\nexport default enhancer;\n","import Line from './Line';\nimport Circle from './Circle';\n\nexport {\n Line,\n Circle,\n};\n\nexport default {\n Line,\n Circle,\n};\n","import PropTypes from 'prop-types';\n\nexport const defaultProps = {\n className: '',\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n style: {},\n trailColor: '#D9D9D9',\n trailWidth: 1,\n};\n\nexport const propTypes = {\n className: PropTypes.string,\n percent: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n prefixCls: PropTypes.string,\n strokeColor: PropTypes.string,\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n strokeWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n style: PropTypes.object,\n trailColor: PropTypes.string,\n trailWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n","import { isTransformSupported, setTransform } from './utils';\nimport React from 'react';\nimport classnames from 'classnames';\n\nconst isDev = process.env.NODE_ENV !== 'production';\n\nexport function getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction offset(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n box = elem.getBoundingClientRect();\n x = box.left;\n y = box.top;\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n const w = doc.defaultView || doc.parentWindow;\n x += getScroll(w);\n y += getScroll(w, true);\n return {\n left: x, top: y,\n };\n}\n\nfunction componentDidUpdate(component, init) {\n const { styles } = component.props;\n const rootNode = component.root;\n const wrapNode = component.nav || rootNode;\n const containerOffset = offset(wrapNode);\n const inkBarNode = component.inkBar;\n const activeTab = component.activeTab;\n const inkBarNodeStyle = inkBarNode.style;\n const tabBarPosition = component.props.tabBarPosition;\n if (init) {\n // prevent mount animation\n inkBarNodeStyle.display = 'none';\n }\n if (activeTab) {\n const tabNode = activeTab;\n const tabOffset = offset(tabNode);\n const transformSupported = isTransformSupported(inkBarNodeStyle);\n if (tabBarPosition === 'top' || tabBarPosition === 'bottom') {\n let left = tabOffset.left - containerOffset.left;\n let width = tabNode.offsetWidth;\n\n // If tabNode'width width equal to wrapNode'width when tabBarPosition is top or bottom\n // It means no css working, then ink bar should not have width until css is loaded\n if (width === rootNode.offsetWidth) {\n width = 0;\n } else if (styles.inkBar && styles.inkBar.width !== undefined) {\n width = parseFloat(styles.inkBar.width, 10);\n if (width) {\n left = left + (tabNode.offsetWidth - width) / 2;\n }\n }\n // use 3d gpu to optimize render\n if (transformSupported) {\n setTransform(inkBarNodeStyle, `translate3d(${left}px,0,0)`);\n inkBarNodeStyle.width = `${width}px`;\n inkBarNodeStyle.height = '';\n } else {\n inkBarNodeStyle.left = `${left}px`;\n inkBarNodeStyle.top = '';\n inkBarNodeStyle.bottom = '';\n inkBarNodeStyle.right = `${wrapNode.offsetWidth - left - width}px`;\n }\n } else {\n let top = tabOffset.top - containerOffset.top;\n let height = tabNode.offsetHeight;\n if (styles.inkBar && styles.inkBar.height !== undefined) {\n height = parseFloat(styles.inkBar.height, 10);\n if (height) {\n top = top + (tabNode.offsetHeight - height) / 2;\n }\n }\n if (transformSupported) {\n setTransform(inkBarNodeStyle, `translate3d(0,${top}px,0)`);\n inkBarNodeStyle.height = `${height}px`;\n inkBarNodeStyle.width = '';\n } else {\n inkBarNodeStyle.left = '';\n inkBarNodeStyle.right = '';\n inkBarNodeStyle.top = `${top}px`;\n inkBarNodeStyle.bottom = `${wrapNode.offsetHeight - top - height}px`;\n }\n }\n }\n inkBarNodeStyle.display = activeTab ? 'block' : 'none';\n}\n\nexport default {\n getDefaultProps() {\n return {\n inkBarAnimated: true,\n };\n },\n\n componentDidUpdate() {\n componentDidUpdate(this);\n },\n\n componentDidMount() {\n if (isDev) {\n this.timeout = setTimeout(() => {\n componentDidUpdate(this, true);\n }, 0);\n } else {\n componentDidUpdate(this, true);\n }\n },\n\n componentWillUnmount() {\n clearTimeout(this.timeout);\n },\n\n getInkBarNode() {\n const { prefixCls, styles, inkBarAnimated } = this.props;\n const className = `${prefixCls}-ink-bar`;\n const classes = classnames({\n [className]: true,\n [\n inkBarAnimated ?\n `${className}-animated` :\n `${className}-no-animated`\n ]: true,\n });\n return (\n <div\n style={styles.inkBar}\n className={classes}\n key=\"inkBar\"\n ref={this.saveRef('inkBar')}\n />\n );\n },\n};\n","export default {\n /**\n * LEFT\n */\n LEFT: 37, // also NUM_WEST\n /**\n * UP\n */\n UP: 38, // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39, // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40, // also NUM_SOUTH\n};\n","export default {\n saveRef(name) {\n return node => {\n this[name] = node;\n };\n },\n};\n","import createReactClass from 'create-react-class';\nimport InkTabBarMixin from './InkTabBarMixin';\nimport ScrollableTabBarMixin from './ScrollableTabBarMixin';\nimport TabBarMixin from './TabBarMixin';\nimport RefMixin from './RefMixin';\n\nconst ScrollableInkTabBar = createReactClass({\n displayName: 'ScrollableInkTabBar',\n mixins: [RefMixin, TabBarMixin, InkTabBarMixin, ScrollableTabBarMixin],\n render() {\n const inkBarNode = this.getInkBarNode();\n const tabs = this.getTabs();\n const scrollbarNode = this.getScrollBarNode([inkBarNode, tabs]);\n return this.getRootNode(scrollbarNode);\n },\n});\n\nexport default ScrollableInkTabBar;\n","import classnames from 'classnames';\nimport { isTransformSupported, setTransform } from './utils';\nimport React from 'react';\nimport addEventListener from '../../_util/addEventListener';\nimport debounce from 'lodash/debounce';\n\nexport default {\n getDefaultProps() {\n return {\n scrollAnimated: true,\n onPrevClick() {},\n onNextClick() {},\n };\n },\n\n getInitialState() {\n this.offset = 0;\n return {\n next: false,\n prev: false,\n };\n },\n\n componentDidMount() {\n this.componentDidUpdate();\n this.debouncedResize = debounce(() => {\n this.setNextPrev();\n this.scrollToActiveTab();\n }, 200);\n this.resizeEvent = addEventListener(window, 'resize', this.debouncedResize);\n },\n\n componentDidUpdate(prevProps) {\n const props = this.props;\n if (prevProps && prevProps.tabBarPosition !== props.tabBarPosition) {\n this.setOffset(0);\n return;\n }\n const nextPrev = this.setNextPrev();\n // wait next, prev show hide\n /* eslint react/no-did-update-set-state:0 */\n if (this.isNextPrevShown(this.state) !== this.isNextPrevShown(nextPrev)) {\n this.setState({}, this.scrollToActiveTab);\n } else if (!prevProps || props.activeKey !== prevProps.activeKey) {\n // can not use props.activeKey\n this.scrollToActiveTab();\n }\n },\n\n componentWillUnmount() {\n if (this.resizeEvent) {\n this.resizeEvent.remove();\n }\n if (this.debouncedResize && this.debouncedResize.cancel) {\n this.debouncedResize.cancel();\n }\n },\n\n setNextPrev() {\n const navNode = this.nav;\n const navNodeWH = this.getScrollWH(navNode);\n const containerWH = this.getOffsetWH(this.container);\n const navWrapNodeWH = this.getOffsetWH(this.navWrap);\n let { offset } = this;\n const minOffset = containerWH - navNodeWH;\n let { next, prev } = this.state;\n if (minOffset >= 0) {\n next = false;\n this.setOffset(0, false);\n offset = 0;\n } else if (minOffset < offset) {\n next = true;\n } else {\n next = false;\n // Test with container offset which is stable\n // and set the offset of the nav wrap node\n const realOffset = navWrapNodeWH - navNodeWH;\n this.setOffset(realOffset, false);\n offset = realOffset;\n }\n\n if (offset < 0) {\n prev = true;\n } else {\n prev = false;\n }\n\n this.setNext(next);\n this.setPrev(prev);\n return {\n next,\n prev,\n };\n },\n\n getOffsetWH(node) {\n const tabBarPosition = this.props.tabBarPosition;\n let prop = 'offsetWidth';\n if (tabBarPosition === 'left' || tabBarPosition === 'right') {\n prop = 'offsetHeight';\n }\n return node[prop];\n },\n\n getScrollWH(node) {\n const tabBarPosition = this.props.tabBarPosition;\n let prop = 'scrollWidth';\n if (tabBarPosition === 'left' || tabBarPosition === 'right') {\n prop = 'scrollHeight';\n }\n return node[prop];\n },\n\n\n getOffsetLT(node) {\n const tabBarPosition = this.props.tabBarPosition;\n let prop = 'left';\n if (tabBarPosition === 'left' || tabBarPosition === 'right') {\n prop = 'top';\n }\n return node.getBoundingClientRect()[prop];\n },\n\n setOffset(offset, checkNextPrev = true) {\n const target = Math.min(0, offset);\n if (this.offset !== target) {\n this.offset = target;\n let navOffset = {};\n const tabBarPosition = this.props.tabBarPosition;\n const navStyle = this.nav.style;\n const transformSupported = isTransformSupported(navStyle);\n if (tabBarPosition === 'left' || tabBarPosition === 'right') {\n if (transformSupported) {\n navOffset = {\n value: `translate3d(0,${target}px,0)`,\n };\n } else {\n navOffset = {\n name: 'top',\n value: `${target}px`,\n };\n }\n } else {\n if (transformSupported) {\n navOffset = {\n value: `translate3d(${target}px,0,0)`,\n };\n } else {\n navOffset = {\n name: 'left',\n value: `${target}px`,\n };\n }\n }\n if (transformSupported) {\n setTransform(navStyle, navOffset.value);\n } else {\n navStyle[navOffset.name] = navOffset.value;\n }\n if (checkNextPrev) {\n this.setNextPrev();\n }\n }\n },\n\n setPrev(v) {\n if (this.state.prev !== v) {\n this.setState({\n prev: v,\n });\n }\n },\n\n setNext(v) {\n if (this.state.next !== v) {\n this.setState({\n next: v,\n });\n }\n },\n\n isNextPrevShown(state) {\n if (state) {\n return state.next || state.prev;\n }\n return this.state.next || this.state.prev;\n },\n\n prevTransitionEnd(e) {\n if (e.propertyName !== 'opacity') {\n return;\n }\n const { container } = this;\n this.scrollToActiveTab({\n target: container,\n currentTarget: container,\n });\n },\n\n scrollToActiveTab(e) {\n const { activeTab, navWrap } = this;\n if (e && e.target !== e.currentTarget || !activeTab) {\n return;\n }\n\n // when not scrollable or enter scrollable first time, don't emit scrolling\n const needToSroll = this.isNextPrevShown() && this.lastNextPrevShown;\n this.lastNextPrevShown = this.isNextPrevShown();\n if (!needToSroll) {\n return;\n }\n\n const activeTabWH = this.getScrollWH(activeTab);\n const navWrapNodeWH = this.getOffsetWH(navWrap);\n let { offset } = this;\n const wrapOffset = this.getOffsetLT(navWrap);\n const activeTabOffset = this.getOffsetLT(activeTab);\n if (wrapOffset > activeTabOffset) {\n offset += (wrapOffset - activeTabOffset);\n this.setOffset(offset);\n } else if ((wrapOffset + navWrapNodeWH) < (activeTabOffset + activeTabWH)) {\n offset -= (activeTabOffset + activeTabWH) - (wrapOffset + navWrapNodeWH);\n this.setOffset(offset);\n }\n },\n\n prev(e) {\n this.props.onPrevClick(e);\n const navWrapNode = this.navWrap;\n const navWrapNodeWH = this.getOffsetWH(navWrapNode);\n const { offset } = this;\n this.setOffset(offset + navWrapNodeWH);\n },\n\n next(e) {\n this.props.onNextClick(e);\n const navWrapNode = this.navWrap;\n const navWrapNodeWH = this.getOffsetWH(navWrapNode);\n const { offset } = this;\n this.setOffset(offset - navWrapNodeWH);\n },\n\n getScrollBarNode(content) {\n const { next, prev } = this.state;\n const { prefixCls, scrollAnimated } = this.props;\n const showNextPrev = prev || next;\n\n const prevButton = (\n <span\n onClick={prev ? this.prev : null}\n unselectable=\"unselectable\"\n className={classnames({\n [`${prefixCls}-tab-prev`]: 1,\n [`${prefixCls}-tab-btn-disabled`]: !prev,\n [`${prefixCls}-tab-arrow-show`]: showNextPrev,\n })}\n onTransitionEnd={this.prevTransitionEnd}\n >\n <span className={`${prefixCls}-tab-prev-icon`} />\n </span>\n );\n\n const nextButton = (\n <span\n onClick={next ? this.next : null}\n unselectable=\"unselectable\"\n className={classnames({\n [`${prefixCls}-tab-next`]: 1,\n [`${prefixCls}-tab-btn-disabled`]: !next,\n [`${prefixCls}-tab-arrow-show`]: showNextPrev,\n })}\n >\n <span className={`${prefixCls}-tab-next-icon`} />\n </span>\n );\n\n const navClassName = `${prefixCls}-nav`;\n const navClasses = classnames({\n [navClassName]: true,\n [\n scrollAnimated ?\n `${navClassName}-animated` :\n `${navClassName}-no-animated`\n ]: true,\n });\n\n return (\n <div\n className={classnames({\n [`${prefixCls}-nav-container`]: 1,\n [`${prefixCls}-nav-container-scrolling`]: showNextPrev,\n })}\n key=\"container\"\n ref={this.saveRef('container')}\n >\n {prevButton}\n {nextButton}\n <div className={`${prefixCls}-nav-wrap`} ref={this.saveRef('navWrap')}>\n <div className={`${prefixCls}-nav-scroll`}>\n <div className={navClasses} ref={this.saveRef('nav')}>\n {content}\n </div>\n </div>\n </div>\n </div>\n );\n },\n};\n","import React, { Children, cloneElement } from 'react';\nimport classnames from 'classnames';\nimport { generateKey, getDataAttr } from './utils';\nimport warning from '../../_util/warning';\nimport Ripple from '../../ripple';\n\nexport default {\n getDefaultProps() {\n return {\n styles: {},\n };\n },\n onTabClick(key) {\n this.props.onTabClick(key);\n },\n getTabs() {\n const { panels: children, activeKey, prefixCls, tabBarGutter } = this.props;\n const rst = [];\n\n Children.forEach(children, (child, index) => {\n if (!child) {\n return;\n }\n const key = generateKey(child.key, index);\n const { disabled, tab } = child.props;\n let cls = activeKey === key ? `${prefixCls}-tab-active` : '';\n cls += ` ${prefixCls}-tab`;\n let events = {};\n if (disabled) {\n cls += ` ${prefixCls}-tab-disabled`;\n } else {\n events = {\n onClick: this.onTabClick.bind(this, key),\n };\n }\n const ref = {};\n if (activeKey === key) {\n ref.ref = this.saveRef('activeTab');\n }\n warning('tab' in child.props, 'There must be `tab` property on children of Tabs.');\n rst.push(\n <Ripple disabled={disabled} key={key}>\n <div\n role=\"tab\"\n aria-disabled={disabled ? 'true' : 'false'}\n aria-selected={activeKey === key ? 'true' : 'false'}\n {...events}\n className={cls}\n style={{\n marginRight: tabBarGutter && index === children.length - 1 ? 0 : tabBarGutter,\n }}\n {...ref}\n >\n {tab}\n </div>\n </Ripple>,\n );\n });\n\n return rst;\n },\n getRootNode(contents) {\n const {\n prefixCls,\n onKeyDown,\n className,\n extraContent,\n style,\n tabBarPosition,\n ...restProps\n } = this.props;\n const cls = classnames(`${prefixCls}-bar`, {\n [className]: !!className,\n });\n const topOrBottom = tabBarPosition === 'top' || tabBarPosition === 'bottom';\n const tabBarExtraContentStyle = topOrBottom ? { float: 'right' } : {};\n const extraContentStyle = extraContent && extraContent.props ? extraContent.props.style : {};\n let children = contents;\n if (extraContent) {\n children = [\n cloneElement(extraContent, {\n key: 'extra',\n style: {\n ...tabBarExtraContentStyle,\n ...extraContentStyle,\n },\n }),\n cloneElement(contents, { key: 'content' }),\n ];\n children = topOrBottom ? children : children.reverse();\n }\n return (\n <div\n role=\"tablist\"\n className={cls}\n tabIndex=\"0\"\n ref={this.saveRef('root')}\n onKeyDown={onKeyDown}\n style={style}\n {...getDataAttr(restProps)}\n >\n {children}\n </div>\n );\n },\n};\n","import React, { Children, cloneElement } from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { generateKey, getActiveIndex, getMarginStyle, getTransformByIndex, getTransformPropValue } from './utils';\n\nconst TabContent = createReactClass({\n displayName: 'TabContent',\n propTypes: {\n animated: PropTypes.bool,\n animatedWithMargin: PropTypes.bool,\n prefixCls: PropTypes.string,\n children: PropTypes.any,\n activeKey: PropTypes.string,\n style: PropTypes.any,\n tabBarPosition: PropTypes.string,\n },\n getDefaultProps() {\n return {\n animated: true,\n };\n },\n getTabPanes() {\n const props = this.props;\n const activeKey = props.activeKey;\n const children = props.children;\n const newChildren = [];\n\n Children.forEach(children, (child, index) => {\n if (!child) {\n return;\n }\n const key = generateKey(child.key, index);\n const active = activeKey === key;\n newChildren.push(cloneElement(child, {\n key,\n active,\n destroyInactiveTabPane: props.destroyInactiveTabPane,\n rootPrefixCls: props.prefixCls,\n }));\n });\n\n return newChildren;\n },\n render() {\n const { props } = this;\n const {\n prefixCls, children, activeKey,\n tabBarPosition, animated, animatedWithMargin,\n } = props;\n let { style } = props;\n const classes = classnames({\n [`${prefixCls}-content`]: true,\n [animated ? `${prefixCls}-content-animated` : `${prefixCls}-content-no-animated`]: true,\n });\n if (animated) {\n const activeIndex = getActiveIndex(children, activeKey);\n if (activeIndex !== -1) {\n const animatedStyle = animatedWithMargin ? getMarginStyle(activeIndex, tabBarPosition) : getTransformPropValue(getTransformByIndex(activeIndex, tabBarPosition));\n style = {\n ...style,\n ...animatedStyle,\n };\n } else {\n style = {\n ...style,\n display: 'none',\n };\n }\n }\n return (\n <div\n className={classes}\n style={style}\n >\n {this.getTabPanes()}\n </div>\n );\n },\n});\n\nexport default TabContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport createReactClass from 'create-react-class';\nimport classnames from 'classnames';\nimport { getDataAttr } from './utils';\n\nconst TabPane = createReactClass({\n displayName: 'TabPane',\n propTypes: {\n className: PropTypes.string,\n active: PropTypes.bool,\n style: PropTypes.any,\n destroyInactiveTabPane: PropTypes.bool,\n forceRender: PropTypes.bool,\n placeholder: PropTypes.node,\n },\n getDefaultProps() {\n return { placeholder: null };\n },\n render() {\n const {\n className,\n destroyInactiveTabPane,\n active,\n forceRender,\n rootPrefixCls,\n style,\n children,\n placeholder,\n ...restProps\n } = this.props;\n this._isActived = this._isActived || active;\n const prefixCls = `${rootPrefixCls}-tabpane`;\n const cls = classnames({\n [prefixCls]: 1,\n [`${prefixCls}-inactive`]: !active,\n [`${prefixCls}-active`]: active,\n [className]: className,\n });\n const isRender = destroyInactiveTabPane ? active : this._isActived;\n return (\n <div\n style={style}\n role=\"tabpanel\"\n aria-hidden={active ? 'false' : 'true'}\n className={cls}\n {...getDataAttr(restProps)}\n >\n {isRender || forceRender ? children : placeholder}\n </div>\n );\n },\n});\n\nexport default TabPane;\n","import React, { Children, cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport noop from 'lodash/noop';\nimport classnames from 'classnames';\nimport KeyCode from './KeyCode';\nimport TabPane from './TabPane';\nimport { generateKey, getDataAttr } from './utils';\n\nfunction getDefaultActiveKey(props) {\n let activeKey;\n Children.forEach(props.children, (child, index) => {\n if (child && !activeKey && !child.props.disabled) {\n activeKey = generateKey(child.key, index);\n }\n });\n return activeKey;\n}\n\nfunction activeKeyIsValid(props, key) {\n const keys = Children.map(\n props.children,\n (child, index) => child && generateKey(child.key, index),\n );\n return keys.indexOf(key) >= 0;\n}\n\nexport default class Tabs extends Component {\n static propTypes = {\n destroyInactiveTabPane: PropTypes.bool,\n renderTabBar: PropTypes.func.isRequired,\n renderTabContent: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n tabBarPosition: PropTypes.string,\n style: PropTypes.object,\n activeKey: PropTypes.string,\n defaultActiveKey: PropTypes.string,\n };\n\n static defaultProps = {\n prefixCls: 'rc-tabs',\n destroyInactiveTabPane: false,\n onChange: noop,\n tabBarPosition: 'top',\n style: {},\n };\n\n static TabPane = TabPane;\n\n constructor(props) {\n super(props);\n\n let activeKey;\n if ('activeKey' in props) {\n activeKey = props.activeKey;\n } else if ('defaultActiveKey' in props) {\n activeKey = props.defaultActiveKey;\n } else {\n activeKey = getDefaultActiveKey(props);\n }\n\n this.state = {\n activeKey,\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if ('activeKey' in nextProps) {\n this.setState({\n activeKey: nextProps.activeKey,\n });\n } else if (!activeKeyIsValid(nextProps, this.state.activeKey)) {\n this.setState({\n activeKey: getDefaultActiveKey(nextProps),\n });\n }\n }\n\n onTabClick = activeKey => {\n if (this.tabBar.props.onTabClick) {\n this.tabBar.props.onTabClick(activeKey);\n }\n this.setActiveKey(activeKey);\n };\n\n onNavKeyDown = e => {\n const eventKeyCode = e.keyCode;\n if (eventKeyCode === KeyCode.RIGHT || eventKeyCode === KeyCode.DOWN) {\n e.preventDefault();\n const nextKey = this.getNextActiveKey(true);\n this.onTabClick(nextKey);\n } else if (eventKeyCode === KeyCode.LEFT || eventKeyCode === KeyCode.UP) {\n e.preventDefault();\n const previousKey = this.getNextActiveKey(false);\n this.onTabClick(previousKey);\n }\n };\n\n setActiveKey = activeKey => {\n if (this.state.activeKey !== activeKey) {\n if (!('activeKey' in this.props)) {\n this.setState({\n activeKey,\n });\n }\n this.props.onChange(activeKey);\n }\n };\n\n getNextActiveKey = next => {\n const activeKey = this.state.activeKey;\n const children = [];\n Children.forEach(this.props.children, c => {\n if (c && !c.props.disabled) {\n if (next) {\n children.push(c);\n } else {\n children.unshift(c);\n }\n }\n });\n const length = children.length;\n let ret = length && generateKey(children[0].key, 0);\n children.forEach((child, i) => {\n if (generateKey(child.key, i) === activeKey) {\n if (i === length - 1) {\n ret = generateKey(children[0].key, 0);\n } else {\n ret = generateKey(children[i + 1].key, i + 1);\n }\n }\n });\n return ret;\n };\n\n render() {\n const props = this.props;\n const {\n prefixCls,\n tabBarPosition,\n className,\n renderTabContent,\n renderTabBar,\n destroyInactiveTabPane,\n ...restProps\n } = props;\n const cls = classnames({\n [prefixCls]: 1,\n [`${prefixCls}-${tabBarPosition}`]: 1,\n [className]: !!className,\n });\n\n this.tabBar = renderTabBar();\n const contents = [\n cloneElement(this.tabBar, {\n prefixCls,\n key: 'tabBar',\n onKeyDown: this.onNavKeyDown,\n tabBarPosition,\n onTabClick: this.onTabClick,\n panels: props.children,\n activeKey: this.state.activeKey,\n }),\n cloneElement(renderTabContent(), {\n prefixCls,\n tabBarPosition,\n activeKey: this.state.activeKey,\n destroyInactiveTabPane,\n children: props.children,\n onChange: this.setActiveKey,\n key: 'tabContent',\n }),\n ];\n if (tabBarPosition === 'bottom') {\n contents.reverse();\n }\n return (\n <div className={cls} style={props.style} {...getDataAttr(restProps)}>\n {contents}\n </div>\n );\n }\n}\n","import Tabs from './Tabs';\nimport TabPane from './TabPane';\nimport TabContent from './TabContent';\n\nexport default Tabs;\nexport { TabPane, TabContent };\n","import { Children } from 'react';\nimport isNil from 'lodash/isNil';\n\nexport function toArray(children) {\n const c = [];\n Children.forEach(children, child => {\n if (child) {\n c.push(child);\n }\n });\n return c;\n}\n\nexport function generateKey(key, index) {\n return String(isNil(key) ? index : key);\n}\n\nexport function getActiveIndex(children, activeKey) {\n const c = toArray(children);\n return c.findIndex((child, index) => generateKey(child.key, index) === activeKey);\n}\n\nexport function getActiveKey(children, index) {\n const c = toArray(children);\n return generateKey(c[index].key, index);\n}\n\nexport function setTransform(style, v) {\n style.transform = v;\n style.webkitTransform = v;\n style.mozTransform = v;\n}\n\nexport function isTransformSupported(style) {\n return 'transform' in style ||\n 'webkitTransform' in style ||\n 'MozTransform' in style;\n}\n\nexport function setTransition(style, v) {\n style.transition = v;\n style.webkitTransition = v;\n style.MozTransition = v;\n}\n\nexport function getTransformPropValue(v) {\n return {\n transform: v,\n WebkitTransform: v,\n MozTransform: v,\n };\n}\n\nexport function isVertical(tabBarPosition) {\n return tabBarPosition === 'left' || tabBarPosition === 'right';\n}\n\nexport function getTransformByIndex(index, tabBarPosition) {\n const translate = isVertical(tabBarPosition) ? 'translateY' : 'translateX';\n return `${translate}(${-index * 100}%) translateZ(0)`;\n}\n\nexport function getMarginStyle(index, tabBarPosition) {\n const marginDirection = isVertical(tabBarPosition) ? 'marginTop' : 'marginLeft';\n return {\n [marginDirection]: `${-index * 100}%`,\n };\n}\n\nexport function getStyle(el, property) {\n return +getComputedStyle(el).getPropertyValue(property).replace('px', '');\n}\n\nexport function setPxStyle(el, value, vertical) {\n value = vertical ? `0px, ${value}px, 0px` : `${value}px, 0px, 0px`;\n setTransform(el.style, `translate3d(${value})`);\n}\n\nexport function getDataAttr(props) {\n return Object.keys(props).reduce((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}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Trigger from '../trigger';\nimport { placements } from './placements';\n\nclass Tooltip extends Component {\n static 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 };\n\n static 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 getPopupElement = () => {\n const { arrowContent, overlay, prefixCls, id } = this.props;\n return [\n <div className={`${prefixCls}-arrow`} key=\"arrow\">\n {arrowContent}\n </div>,\n <div className={`${prefixCls}-inner`} key=\"content\" id={id}>\n {typeof overlay === 'function' ? overlay() : overlay}\n </div>,\n ];\n };\n\n getPopupDomNode() {\n return this.trigger.getPopupDomNode();\n }\n\n saveTrigger = node => {\n this.trigger = node;\n };\n\n render() {\n const {\n overlayClassName,\n trigger,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayStyle,\n prefixCls,\n children,\n onVisibleChange,\n afterVisibleChange,\n transitionName,\n animation,\n placement,\n align,\n destroyTooltipOnHide,\n defaultVisible,\n getTooltipContainer,\n ...restProps\n } = this.props;\n const extraProps = { ...restProps };\n if ('visible' in this.props) {\n extraProps.popupVisible = this.props.visible;\n }\n return (\n <Trigger\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 >\n {children}\n </Trigger>\n );\n }\n}\n\nexport default Tooltip;\n","import Tooltip from './Tooltip';\n\nexport default Tooltip;\n","const autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1,\n};\n\nconst targetOffset = [0, 0];\n\nexport const placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset,\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset,\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset,\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset,\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset,\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset,\n },\n};\n\nexport default placements;\n","import React, { Children, cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport warning from '../../_util/warning';\nimport {\n arrAdd,\n arrDel,\n calcCheckedKeys,\n calcDropPosition,\n calcExpandedKeys,\n calcSelectedKeys,\n getDragNodesKeys,\n getFullKeyList,\n getPosition,\n getStrictlyValue,\n posToArr,\n traverseTreeNodes,\n} from './util';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\nexport const contextTypes = {\n rcTree: PropTypes.shape({\n root: PropTypes.object,\n\n prefixCls: PropTypes.string,\n selectable: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n draggable: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n disabled: PropTypes.bool,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.func,\n renderTreeNode: PropTypes.func,\n\n isKeyChecked: PropTypes.func,\n\n onNodeExpand: PropTypes.func,\n onNodeSelect: PropTypes.func,\n onNodeMouseEnter: PropTypes.func,\n onNodeMouseLeave: PropTypes.func,\n onNodeContextMenu: PropTypes.func,\n onNodeDragStart: PropTypes.func,\n onNodeDragEnter: PropTypes.func,\n onNodeDragOver: PropTypes.func,\n onNodeDragLeave: PropTypes.func,\n onNodeDragEnd: PropTypes.func,\n onNodeDrop: PropTypes.func,\n onBatchNodeCheck: PropTypes.func,\n onCheckConductFinished: PropTypes.func,\n }),\n};\n\nclass Tree extends Component {\n static propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.any,\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.arrayOf(PropTypes.string),\n expandedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultCheckedKeys: PropTypes.arrayOf(PropTypes.string),\n checkedKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.object,\n ]),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\n onExpand: PropTypes.func,\n onCheck: PropTypes.func,\n onSelect: PropTypes.func,\n loadData: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onRightClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnter: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragLeave: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static childContextTypes = contextTypes;\n\n static defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n onExpand: null,\n onCheck: null,\n onSelect: null,\n onDragStart: null,\n onDragEnter: null,\n onDragOver: null,\n onDragLeave: null,\n onDrop: null,\n onDragEnd: null,\n onMouseEnter: null,\n onMouseLeave: null,\n };\n\n constructor(props) {\n super(props);\n\n const {\n defaultExpandAll,\n defaultExpandParent,\n defaultExpandedKeys,\n defaultCheckedKeys,\n defaultSelectedKeys,\n expandedKeys,\n } = props;\n\n // Sync state with props\n const { checkedKeys = [], halfCheckedKeys = [] } =\n calcCheckedKeys(defaultCheckedKeys, props) || {};\n\n const state = {\n selectedKeys: calcSelectedKeys(defaultSelectedKeys, props),\n checkedKeys,\n halfCheckedKeys,\n };\n\n if (defaultExpandAll) {\n state.expandedKeys = getFullKeyList(props.children);\n } else if (defaultExpandParent) {\n state.expandedKeys = calcExpandedKeys(expandedKeys || defaultExpandedKeys, props);\n } else {\n state.expandedKeys = defaultExpandedKeys;\n }\n\n this.state = {\n ...state,\n ...(this.getSyncProps(props) || {}),\n };\n\n // Cache for check status to optimize\n this.checkedBatch = null;\n }\n\n getChildContext() {\n const {\n prefixCls, selectable, showIcon, icon, draggable, checkable, checkStrictly, disabled,\n loadData, filterTreeNode,\n openTransitionName, openAnimation,\n switcherIcon,\n } = this.props;\n\n return {\n rcTree: {\n // root: this,\n\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n openTransitionName,\n openAnimation,\n\n loadData,\n filterTreeNode,\n renderTreeNode: this.renderTreeNode,\n isKeyChecked: this.isKeyChecked,\n\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n onBatchNodeCheck: this.onBatchNodeCheck,\n onCheckConductFinished: this.onCheckConductFinished,\n },\n };\n }\n\n componentWillReceiveProps(nextProps) {\n // React 16 will not trigger update if new state is null\n this.setState(this.getSyncProps(nextProps, this.props));\n }\n\n onNodeDragStart = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragStart } = this.props;\n const { eventKey, children } = node.props;\n\n this.dragNode = node;\n\n this.setState({\n dragNodesKeys: getDragNodesKeys(children, node),\n expandedKeys: arrDel(expandedKeys, eventKey),\n });\n\n if (onDragStart) {\n onDragStart({ event, node });\n }\n };\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragEnter } = this.props;\n const { pos, eventKey } = node.props;\n\n const dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (\n this.dragNode.props.eventKey === eventKey &&\n dropPosition === 0\n ) {\n this.setState({\n dragOverNodeKey: '',\n dropPosition: null,\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(() => {\n // Update drag over node\n this.setState({\n dragOverNodeKey: eventKey,\n dropPosition,\n });\n\n // Side effect for delay drag\n if (!this.delayedDragEnterLogic) {\n this.delayedDragEnterLogic = {};\n }\n Object.keys(this.delayedDragEnterLogic).forEach((key) => {\n clearTimeout(this.delayedDragEnterLogic[key]);\n });\n this.delayedDragEnterLogic[pos] = setTimeout(() => {\n const newExpandedKeys = arrAdd(expandedKeys, eventKey);\n this.setState({\n expandedKeys: newExpandedKeys,\n });\n\n if (onDragEnter) {\n onDragEnter({ event, node, expandedKeys: newExpandedKeys });\n }\n }, 400);\n }, 0);\n };\n onNodeDragOver = (event, node) => {\n const { onDragOver } = this.props;\n if (onDragOver) {\n onDragOver({ event, node });\n }\n };\n onNodeDragLeave = (event, node) => {\n const { onDragLeave } = this.props;\n\n this.setState({\n dragOverNodeKey: '',\n });\n\n if (onDragLeave) {\n onDragLeave({ event, node });\n }\n };\n onNodeDragEnd = (event, node) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: '',\n });\n if (onDragEnd) {\n onDragEnd({ event, node });\n }\n };\n onNodeDrop = (event, node) => {\n const { dragNodesKeys, dropPosition } = this.state;\n const { onDrop } = this.props;\n const { eventKey, pos } = node.props;\n\n this.setState({\n dragOverNodeKey: '',\n dropNodeKey: eventKey,\n });\n\n if (dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, 'Can not drop to dragNode(include it\\'s children node)');\n return;\n }\n\n const posArr = posToArr(pos);\n\n const dropResult = {\n event,\n node,\n dragNode: this.dragNode,\n dragNodesKeys: dragNodesKeys.slice(),\n dropPosition: dropPosition + Number(posArr[posArr.length - 1]),\n };\n\n if (dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n\n if (onDrop) {\n onDrop(dropResult);\n }\n };\n\n onNodeSelect = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { onSelect, multiple, children } = this.props;\n const { selected, eventKey } = treeNode.props;\n const targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n // [Legacy] TODO: add optimize prop to skip node process\n const selectedNodes = [];\n if (selectedKeys.length) {\n traverseTreeNodes(children, ({ node, key }) => {\n if (selectedKeys.indexOf(key) !== -1) {\n selectedNodes.push(node);\n }\n });\n }\n\n this.setUncontrolledState({ selectedKeys });\n\n if (onSelect) {\n const eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n };\n onSelect(selectedKeys, eventObj);\n }\n };\n\n /**\n * This will cache node check status to optimize update process.\n * When Tree get trigger `onCheckConductFinished` will flush all the update.\n */\n onBatchNodeCheck = (key, checked, halfChecked, startNode) => {\n if (startNode) {\n this.checkedBatch = {\n treeNode: startNode,\n checked,\n list: [],\n };\n }\n\n // This code should never called\n if (!this.checkedBatch) {\n this.checkedBatch = {\n list: [],\n };\n warning(\n false,\n 'Checked batch not init. This should be a bug. Please fire a issue.',\n );\n }\n\n this.checkedBatch.list.push({ key, checked, halfChecked });\n };\n\n /**\n * When top `onCheckConductFinished` called, will execute all batch update.\n * And trigger `onCheck` event.\n */\n onCheckConductFinished = () => {\n const { checkedKeys, halfCheckedKeys } = this.state;\n const { onCheck, checkStrictly, children } = this.props;\n\n // Use map to optimize update speed\n const checkedKeySet = {};\n const halfCheckedKeySet = {};\n\n checkedKeys.forEach(key => {\n checkedKeySet[key] = true;\n });\n halfCheckedKeys.forEach(key => {\n halfCheckedKeySet[key] = true;\n });\n\n // Batch process\n this.checkedBatch.list.forEach(({ key, checked, halfChecked }) => {\n checkedKeySet[key] = checked;\n halfCheckedKeySet[key] = halfChecked;\n });\n const newCheckedKeys = Object.keys(checkedKeySet).filter(key => checkedKeySet[key]);\n const newHalfCheckedKeys = Object.keys(halfCheckedKeySet).filter(key => halfCheckedKeySet[key]);\n\n // Trigger onChecked\n let selectedObj;\n\n const eventObj = {\n event: 'check',\n node: this.checkedBatch.treeNode,\n checked: this.checkedBatch.checked,\n };\n\n if (checkStrictly) {\n selectedObj = getStrictlyValue(newCheckedKeys, newHalfCheckedKeys);\n\n // [Legacy] TODO: add optimize prop to skip node process\n eventObj.checkedNodes = [];\n traverseTreeNodes(children, ({ node, key }) => {\n if (checkedKeySet[key]) {\n eventObj.checkedNodes.push(node);\n }\n });\n\n this.setUncontrolledState({ checkedKeys: newCheckedKeys });\n } else {\n selectedObj = newCheckedKeys;\n\n // [Legacy] TODO: add optimize prop to skip node process\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = []; // [Legacy] TODO: not in API\n eventObj.halfCheckedKeys = newHalfCheckedKeys; // [Legacy] TODO: not in API\n traverseTreeNodes(children, ({ node, pos, key }) => {\n if (checkedKeySet[key]) {\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node, pos });\n }\n });\n\n this.setUncontrolledState({\n checkedKeys: newCheckedKeys,\n halfCheckedKeys: newHalfCheckedKeys,\n });\n }\n\n if (onCheck) {\n onCheck(selectedObj, eventObj);\n }\n\n // Clean up\n this.checkedBatch = null;\n };\n\n onNodeExpand = (e, treeNode) => {\n let { expandedKeys } = this.state;\n const { onExpand, loadData } = this.props;\n const { eventKey, expanded } = treeNode.props;\n\n // Update selected keys\n const index = expandedKeys.indexOf(eventKey);\n const targetExpanded = !expanded;\n\n warning(\n (expanded && index !== -1) || (!expanded && index === -1)\n , 'Expand state not sync with index check');\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ expandedKeys });\n\n if (onExpand) {\n onExpand(expandedKeys, { node: treeNode, expanded: targetExpanded });\n }\n\n // Async Load data\n if (targetExpanded && loadData) {\n return loadData(treeNode).then(() => {\n // [Legacy] Refresh logic\n this.setUncontrolledState({ expandedKeys });\n });\n }\n\n return null;\n };\n\n onNodeMouseEnter = (event, node) => {\n const { onMouseEnter } = this.props;\n if (onMouseEnter) {\n onMouseEnter({ event, node });\n }\n };\n\n onNodeMouseLeave = (event, node) => {\n const { onMouseLeave } = this.props;\n if (onMouseLeave) {\n onMouseLeave({ event, node });\n }\n };\n\n onNodeContextMenu = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n\n /**\n * Sync state with props if needed\n */\n getSyncProps = (props = {}, prevProps) => {\n let needSync = false;\n const newState = {};\n const myPrevProps = prevProps || {};\n\n function checkSync(name) {\n if (props[name] !== myPrevProps[name]) {\n needSync = true;\n return true;\n }\n return false;\n }\n\n // Children change will affect check box status.\n // And no need to check when prev props not provided\n if (prevProps && checkSync('children')) {\n const { checkedKeys = [], halfCheckedKeys = [] } =\n calcCheckedKeys(props.checkedKeys || this.state.checkedKeys, props) || {};\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n\n // Re-calculate when autoExpandParent or expandedKeys changed\n if (prevProps && (checkSync('autoExpandParent') || checkSync('expandedKeys'))) {\n newState.expandedKeys = props.autoExpandParent ? calcExpandedKeys(props.expandedKeys, props) : props.expandedKeys;\n }\n\n if (checkSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n }\n\n if (checkSync('checkedKeys')) {\n const { checkedKeys = [], halfCheckedKeys = [] } =\n calcCheckedKeys(props.checkedKeys, props) || {};\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n\n return needSync ? newState : null;\n };\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState = (state) => {\n let needSync = false;\n const newState = {};\n\n Object.keys(state).forEach(name => {\n if (name in this.props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n this.setState(needSync ? newState : null);\n };\n\n isKeyChecked = (key) => {\n const { checkedKeys = [] } = this.state;\n return checkedKeys.indexOf(key) !== -1;\n };\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode = (child, index, level = 0) => {\n const {\n expandedKeys = [], selectedKeys = [], halfCheckedKeys = [],\n dragOverNodeKey, dropPosition,\n } = this.state;\n const {} = this.props;\n const pos = getPosition(level, index);\n const key = child.key || pos;\n\n return cloneElement(child, {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n });\n };\n\n render() {\n const {\n prefixCls, className, focusable,\n showLine,\n children,\n } = this.props;\n const domProps = {};\n\n // [Legacy] Commit: 0117f0c9db0e2956e92cb208f51a42387dfcb3d1\n if (focusable) {\n domProps.tabIndex = '0';\n domProps.onKeyDown = this.onKeyDown;\n }\n\n return (\n <ul\n {...domProps}\n className={classNames(prefixCls, className, {\n [`${prefixCls}-show-line`]: showLine,\n })}\n role=\"tree-node\"\n unselectable=\"on\"\n >\n {Children.map(children, this.renderTreeNode, this)}\n </ul>\n );\n }\n}\n\nexport default Tree;\n","import React, { Children, Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport warning from '../../_util/warning';\nimport Animate from '../../animate';\nimport toArray from '../util/Children/toArray';\nimport { contextTypes } from './Tree';\nimport Progress from '../../progress';\nimport { getNodeChildren, getPosition, isCheckDisabled, traverseTreeNodes } from './util';\n\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\n\nconst LOAD_STATUS_NONE = 0;\nconst LOAD_STATUS_LOADING = 1;\nconst LOAD_STATUS_LOADED = 2;\nconst LOAD_STATUS_FAILED = 0; // Action align, let's make failed same as init.\n\nconst defaultTitle = '---';\n\nlet onlyTreeNodeWarned = false; // Only accept TreeNode\n\nexport const nodeContextTypes = {\n ...contextTypes,\n rcTreeNode: PropTypes.shape({\n onUpCheckConduct: PropTypes.func,\n }),\n};\n\nexport default class TreeNode extends Component {\n static propTypes = {\n eventKey: PropTypes.string, // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n root: PropTypes.object,\n onSelect: PropTypes.func,\n wrapper: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n halfChecked: PropTypes.bool,\n children: PropTypes.node,\n title: PropTypes.node,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static contextTypes = nodeContextTypes;\n\n static childContextTypes = nodeContextTypes;\n\n static defaultProps = {\n title: defaultTitle,\n };\n\n static isTreeNode = 1;\n\n constructor(props) {\n super(props);\n\n this.state = {\n loadStatus: LOAD_STATUS_NONE,\n dragNodeHighlight: false,\n };\n }\n\n getChildContext() {\n return {\n ...this.context,\n rcTreeNode: {\n onUpCheckConduct: this.onUpCheckConduct,\n },\n };\n }\n\n // Isomorphic needn't load data in server side\n componentDidMount() {\n this.syncLoadData(this.props);\n }\n\n componentWillReceiveProps(nextProps) {\n this.syncLoadData(nextProps);\n }\n\n onUpCheckConduct = (treeNode, nodeChecked, nodeHalfChecked) => {\n const { pos: nodePos } = treeNode.props;\n const { eventKey, pos, checked, halfChecked } = this.props;\n const {\n rcTree: { checkStrictly, isKeyChecked, onBatchNodeCheck, onCheckConductFinished },\n rcTreeNode: { onUpCheckConduct } = {},\n } = this.context;\n\n // Stop conduct when current node is disabled\n if (isCheckDisabled(this)) {\n onCheckConductFinished();\n return;\n }\n\n const children = this.getNodeChildren();\n\n let checkedCount = nodeChecked ? 1 : 0;\n\n // Statistic checked count\n children.forEach((node, index) => {\n const childPos = getPosition(pos, index);\n\n if (nodePos === childPos || isCheckDisabled(node)) {\n return;\n }\n\n if (isKeyChecked(node.key || childPos)) {\n checkedCount += 1;\n }\n });\n\n // Static enabled children count\n const enabledChildrenCount = children\n .filter(node => !isCheckDisabled(node))\n .length;\n\n // checkStrictly will not conduct check status\n const nextChecked = checkStrictly ? checked : enabledChildrenCount === checkedCount;\n const nextHalfChecked = checkStrictly ? // propagated or child checked\n halfChecked : (nodeHalfChecked || (checkedCount > 0 && !nextChecked));\n\n // Add into batch update\n if (checked !== nextChecked || halfChecked !== nextHalfChecked) {\n onBatchNodeCheck(eventKey, nextChecked, nextHalfChecked);\n\n if (onUpCheckConduct) {\n onUpCheckConduct(this, nextChecked, nextHalfChecked);\n } else {\n // Flush all the update\n onCheckConductFinished();\n }\n } else {\n // Flush all the update\n onCheckConductFinished();\n }\n };\n\n onDownCheckConduct = (nodeChecked) => {\n const { children } = this.props;\n const { rcTree: { checkStrictly, isKeyChecked, onBatchNodeCheck } } = this.context;\n if (checkStrictly) return;\n\n traverseTreeNodes(children, ({ node, key }) => {\n if (isCheckDisabled(node)) return false;\n\n if (nodeChecked !== isKeyChecked(key)) {\n onBatchNodeCheck(key, nodeChecked, false);\n }\n });\n };\n\n onSelectorClick = (e) => {\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n };\n\n onSelect = (e) => {\n if (this.isDisabled()) return;\n\n const { rcTree: { onNodeSelect } } = this.context;\n e.preventDefault();\n onNodeSelect(e, this);\n };\n\n onCheck = (e) => {\n if (this.isDisabled()) return;\n\n const { disableCheckbox, checked, eventKey } = this.props;\n const {\n rcTree: { checkable, onBatchNodeCheck, onCheckConductFinished },\n rcTreeNode: { onUpCheckConduct } = {},\n } = this.context;\n\n if (!checkable || disableCheckbox) return;\n\n e.preventDefault();\n const targetChecked = !checked;\n onBatchNodeCheck(eventKey, targetChecked, false, this);\n\n // Children conduct\n this.onDownCheckConduct(targetChecked);\n\n // Parent conduct\n if (onUpCheckConduct) {\n onUpCheckConduct(this, targetChecked, false);\n } else {\n onCheckConductFinished();\n }\n };\n\n onMouseEnter = (e) => {\n const { rcTree: { onNodeMouseEnter } } = this.context;\n onNodeMouseEnter(e, this);\n };\n\n onMouseLeave = (e) => {\n const { rcTree: { onNodeMouseLeave } } = this.context;\n onNodeMouseLeave(e, this);\n };\n\n onContextMenu = (e) => {\n const { rcTree: { onNodeContextMenu } } = this.context;\n onNodeContextMenu(e, this);\n };\n\n onDragStart = (e) => {\n const { rcTree: { onNodeDragStart } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n\n onDragEnter = (e) => {\n const { rcTree: { onNodeDragEnter } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n\n onDragOver = (e) => {\n const { rcTree: { onNodeDragOver } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n\n onDragLeave = (e) => {\n const { rcTree: { onNodeDragLeave } } = this.context;\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n\n onDragEnd = (e) => {\n const { rcTree: { onNodeDragEnd } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n\n onDrop = (e) => {\n const { rcTree: { onNodeDrop } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n\n // Disabled item still can be switch\n onExpand = (e) => {\n const { rcTree: { onNodeExpand } } = this.context;\n const callbackPromise = onNodeExpand(e, this);\n\n // Promise like\n if (callbackPromise && callbackPromise.then) {\n this.setState({ loadStatus: LOAD_STATUS_LOADING });\n\n callbackPromise.then(() => {\n this.setState({ loadStatus: LOAD_STATUS_LOADED });\n }).catch(() => {\n this.setState({ loadStatus: LOAD_STATUS_FAILED });\n });\n }\n };\n\n // Drag usage\n setSelectHandle = (node) => {\n this.selectHandle = node;\n };\n\n getNodeChildren() {\n const { children } = this.props;\n const originList = toArray(children).filter(node => node);\n const targetList = getNodeChildren(originList);\n\n if (originList.length !== targetList.length && !onlyTreeNodeWarned) {\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n }\n\n return targetList;\n }\n\n getNodeState = () => {\n const { expanded } = this.props;\n\n if (this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n isLeaf = () => {\n const { loadStatus } = this.state;\n const { isLeaf, hasChildren = this.getNodeChildren().length !== 0 } = this.props;\n const { rcTree: { loadData } } = this.context;\n\n return (\n isLeaf ||\n (!loadData && !hasChildren) ||\n (loadData && loadStatus === LOAD_STATUS_LOADED && !hasChildren)\n );\n };\n\n isDisabled = () => {\n const { disabled } = this.props;\n const { rcTree: { disabled: treeDisabled } } = this.context;\n\n // Follow the logic of Selectable\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n };\n\n isSelectable() {\n const { selectable } = this.props;\n const { rcTree: { selectable: treeSelectable } } = this.context;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n\n // Load data to avoid default expanded tree without data\n syncLoadData = (props) => {\n const { loadStatus } = this.state;\n const { expanded } = props;\n const { rcTree: { loadData } } = this.context;\n\n if (loadData && loadStatus === LOAD_STATUS_NONE && expanded && !this.isLeaf()) {\n this.setState({ loadStatus: LOAD_STATUS_LOADING });\n\n loadData(this).then(() => {\n this.setState({ loadStatus: LOAD_STATUS_LOADED });\n }).catch(() => {\n this.setState({ loadStatus: LOAD_STATUS_FAILED });\n });\n }\n };\n\n // Switcher\n renderSwitcher = () => {\n const {\n expanded,\n switcherIcon: switcherIconFromProps,\n } = this.props;\n const {\n rcTree: {\n prefixCls,\n switcherIcon: switcherIconFromCtx,\n },\n } = this.context;\n\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n\n if (this.isLeaf()) {\n return (\n <span className={classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher-noop`)}>\n {typeof switcherIcon === 'function' ? switcherIcon({ ...this.props, isLeaf: true }) : switcherIcon}\n </span>\n );\n }\n\n const switcherCls = classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`);\n return (\n <span onClick={this.onExpand} className={switcherCls}>\n {typeof switcherIcon === 'function' ? switcherIcon({ ...this.props, isLeaf: false }) : switcherIcon}\n </span>\n );\n };\n\n // Checkbox\n renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox } = this.props;\n const { rcTree: { prefixCls, checkable } } = this.context;\n const disabled = this.isDisabled();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return (\n <span\n className={classNames(\n `${prefixCls}-checkbox`,\n checked && `${prefixCls}-checkbox-checked`,\n !checked && halfChecked && `${prefixCls}-checkbox-indeterminate`,\n (disabled || disableCheckbox) && `${prefixCls}-checkbox-disabled`,\n )}\n onClick={this.onCheck}\n >\n {$custom}\n </span>\n );\n };\n\n renderIcon = () => {\n const { loadStatus } = this.state;\n const { rcTree: { prefixCls } } = this.context;\n\n return loadStatus === LOAD_STATUS_LOADING ? (\n <Progress\n type=\"loading\"\n size=\"small\"\n width={14}\n className={`${prefixCls}-icon_loading`}\n />) : (\n <span\n className={classNames(\n `${prefixCls}-iconEle`,\n `${prefixCls}-icon__${this.getNodeState() || 'docu'}`,\n )}\n />\n );\n };\n\n // Icon + Title\n renderSelector = () => {\n const { loadStatus, dragNodeHighlight } = this.state;\n const { title, selected, icon } = this.props;\n const { rcTree: { prefixCls, showIcon, draggable, loadData } } = this.context;\n const disabled = this.isDisabled();\n\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n\n if (showIcon) {\n $icon = icon ? (\n <span\n className={classNames(\n `${prefixCls}-iconEle`,\n `${prefixCls}-icon__customize`,\n )}\n >\n {typeof icon === 'function' ? createElement(icon, this.props) : icon}\n </span>\n ) : this.renderIcon();\n } else if (loadData && loadStatus === LOAD_STATUS_LOADING) {\n $icon = this.renderIcon();\n }\n\n // Title\n const $title = <span className={`${prefixCls}-title`}>{title}</span>;\n\n return (\n <span\n ref={this.setSelectHandle}\n title={typeof title === 'string' ? title : ''}\n className={classNames(\n `${wrapClass}`,\n `${wrapClass}-${this.getNodeState() || 'normal'}`,\n (!disabled && (selected || dragNodeHighlight)) && `${prefixCls}-node-selected`,\n (!disabled && draggable) && 'draggable',\n )}\n draggable={(!disabled && draggable) || undefined}\n aria-grabbed={(!disabled && draggable) || undefined}\n\n onMouseEnter={this.onMouseEnter}\n onMouseLeave={this.onMouseLeave}\n onContextMenu={this.onContextMenu}\n onClick={this.onSelectorClick}\n onDragStart={this.onDragStart}\n >\n {$icon}{$title}\n </span>\n );\n };\n\n // Children list wrapped with `Animation`\n renderChildren = () => {\n const { expanded, pos, wrapper } = this.props;\n const {\n rcTree: {\n prefixCls,\n openTransitionName, openAnimation,\n renderTreeNode,\n },\n } = this.context;\n\n // [Legacy] Animation control\n const renderFirst = this.renderFirst;\n this.renderFirst = 1;\n let transitionAppear = true;\n if (!renderFirst && expanded) {\n transitionAppear = false;\n }\n\n const animProps = {};\n if (openTransitionName) {\n animProps.transitionName = openTransitionName;\n } else if (typeof openAnimation === 'object') {\n animProps.animation = { ...openAnimation };\n if (!transitionAppear) {\n delete animProps.animation.appear;\n }\n }\n\n // Children TreeNode\n const nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n let $children;\n if (expanded) {\n let treeNodes = Children.map(nodeList, (node, index) => (\n renderTreeNode(node, index, pos)\n ));\n if (wrapper) {\n treeNodes = wrapper(treeNodes);\n }\n $children = (\n <ul hidden={!expanded}>\n {treeNodes}\n </ul>\n );\n }\n\n return (\n <Animate\n {...animProps}\n hiddenProp=\"hidden\"\n transitionAppear={transitionAppear}\n component=\"\"\n >\n {$children}\n </Animate>\n );\n };\n\n render() {\n const {\n className,\n dragOver, dragOverGapTop, dragOverGapBottom,\n } = this.props;\n const {\n rcTree: {\n prefixCls,\n filterTreeNode,\n },\n } = this.context;\n const disabled = this.isDisabled();\n\n return (\n <li\n className={classNames(className, {\n [`${prefixCls}-treenode-disabled`]: disabled,\n 'drag-over': !disabled && dragOver,\n 'drag-over-gap-top': !disabled && dragOverGapTop,\n 'drag-over-gap-bottom': !disabled && dragOverGapBottom,\n 'filter-node': filterTreeNode && filterTreeNode(this),\n })}\n\n onDragEnter={this.onDragEnter}\n onDragOver={this.onDragOver}\n onDragLeave={this.onDragLeave}\n onDrop={this.onDrop}\n onDragEnd={this.onDragEnd}\n >\n {this.renderSwitcher()}\n {this.renderCheckbox()}\n {this.renderSelector()}\n {this.renderChildren()}\n </li>\n );\n }\n}\n","import Tree from './Tree';\nimport TreeNode from './TreeNode';\n\nTree.TreeNode = TreeNode;\n\nexport { TreeNode };\nexport default Tree;\n","/* eslint no-loop-func: 0*/\nimport { Children } from 'react';\nimport warning from '../../_util/warning';\n\nexport function arrDel(list, value) {\n const clone = list.slice();\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n const clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\n// Only used when drag, not affect SSR.\nexport function getOffset(ele) {\n if (!ele.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n const rect = ele.getBoundingClientRect();\n if (rect.width || rect.height) {\n const doc = ele.ownerDocument;\n const win = doc.defaultView;\n const docElem = doc.documentElement;\n\n return {\n top: rect.top + win.pageYOffset - docElem.clientTop,\n left: rect.left + win.pageXOffset - docElem.clientLeft,\n };\n }\n\n return rect;\n}\n\nexport function getPosition(level, index) {\n return `${level}-${index}`;\n}\n\nexport function getNodeChildren(children) {\n const childList = Array.isArray(children) ? children : [children];\n return childList\n .filter(child => child && child.type && child.type.isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n const { disabled, disableCheckbox } = node.props || {};\n return !!(disabled || disableCheckbox);\n}\n\nexport function traverseTreeNodes(treeNodes, subTreeData, callback) {\n if (typeof subTreeData === 'function') {\n callback = subTreeData;\n subTreeData = false;\n }\n\n function processNode(node, index, parent) {\n const children = node ? node.props.children : treeNodes;\n const pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n const childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n const data = {\n node,\n index,\n pos,\n key: node.key || pos,\n parentPos: parent.node ? parent.pos : null,\n };\n\n // Children data is not must have\n if (subTreeData) {\n // Statistic children\n const subNodes = [];\n Children.forEach(childList, (subNode, subIndex) => {\n // Provide limit snapshot\n const subPos = getPosition(pos, index);\n subNodes.push({\n node: subNode,\n key: subNode.key || subPos,\n pos: subPos,\n index: subIndex,\n });\n });\n data.subNodes = subNodes;\n }\n\n // Can break traverse by return false\n if (callback(data) === false) {\n return;\n }\n }\n\n // Process children node\n Children.forEach(childList, (subNode, subIndex) => {\n processNode(subNode, subIndex, { node, pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * [Legacy] Return halfChecked when it has value.\n * @param checkedKeys\n * @param halfChecked\n * @returns {*}\n */\nexport function getStrictlyValue(checkedKeys, halfChecked) {\n if (halfChecked) {\n return { checked: checkedKeys, halfChecked };\n }\n return checkedKeys;\n}\n\nexport function getFullKeyList(treeNodes) {\n const keyList = [];\n traverseTreeNodes(treeNodes, ({ key }) => {\n keyList.push(key);\n });\n return keyList;\n}\n\n/**\n * Check position relation.\n * @param parentPos\n * @param childPos\n * @param directly only directly parent can be true\n * @returns {boolean}\n */\nexport function isParent(parentPos, childPos, directly = false) {\n if (!parentPos || !childPos || parentPos.length > childPos.length) return false;\n\n const parentPath = posToArr(parentPos);\n const childPath = posToArr(childPos);\n\n // Directly check\n if (directly && parentPath.length !== childPath.length - 1) return false;\n\n const len = parentPath.length;\n for (let i = 0; i < len; i += 1) {\n if (parentPath[i] !== childPath[i]) return false;\n }\n\n return true;\n}\n\n/**\n * Statistic TreeNodes info\n * @param treeNodes\n * @returns {{}}\n */\nexport function getNodesStatistic(treeNodes) {\n const statistic = {\n keyNodes: {},\n posNodes: {},\n nodeList: [],\n };\n\n traverseTreeNodes(treeNodes, true, ({ node, index, pos, key, subNodes, parentPos }) => {\n const data = { node, index, pos, key, subNodes, parentPos };\n statistic.keyNodes[key] = data;\n statistic.posNodes[pos] = data;\n statistic.nodeList.push(data);\n });\n\n return statistic;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n const { eventKey, pos } = node.props;\n const dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, ({ pos: nodePos, key }) => {\n if (isParent(pos, nodePos)) {\n dragNodesKeys.push(key);\n }\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\nexport function calcDropPosition(event, treeNode) {\n const offsetTop = getOffset(treeNode.selectHandle).top;\n const offsetHeight = treeNode.selectHandle.offsetHeight;\n const pageY = event.pageY;\n const gapHeight = 2; // [Legacy] TODO: remove hard code\n if (pageY > offsetTop + offsetHeight - gapHeight) {\n return 1;\n }\n if (pageY < offsetTop + gapHeight) {\n return -1;\n }\n return 0;\n}\n\n/**\n * Auto expand all related node when sub node is expanded\n * @param keyList\n * @param props\n * @returns [string]\n */\nexport function calcExpandedKeys(keyList, props) {\n if (!keyList) {\n return [];\n }\n\n const { children } = props;\n\n // Fill parent expanded keys\n const { keyNodes, nodeList } = getNodesStatistic(children);\n const needExpandKeys = {};\n const needExpandPathList = [];\n\n // Fill expanded nodes\n keyList.forEach((key) => {\n const node = keyNodes[key];\n if (node) {\n needExpandKeys[key] = true;\n needExpandPathList.push(node.pos);\n }\n });\n\n // Match parent by path\n nodeList.forEach(({ pos, key }) => {\n if (needExpandPathList.some(childPos => isParent(pos, childPos))) {\n needExpandKeys[key] = true;\n }\n });\n\n const calcExpandedKeyList = Object.keys(needExpandKeys);\n\n // [Legacy] Return origin keyList if calc list is empty\n return calcExpandedKeyList.length ? calcExpandedKeyList : keyList;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) {\n return undefined;\n }\n\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Check conduct is by key level. It pass though up & down.\n * When conduct target node is check means already conducted will be skip.\n * @param treeNodes\n * @param checkedKeys\n * @returns {{checkedKeys: Array, halfCheckedKeys: Array}}\n */\nexport function calcCheckStateConduct(treeNodes, checkedKeys) {\n const { keyNodes, posNodes } = getNodesStatistic(treeNodes);\n\n const tgtCheckedKeys = {};\n const tgtHalfCheckedKeys = {};\n\n // Conduct up\n function conductUp(key, halfChecked) {\n if (tgtCheckedKeys[key]) return;\n\n const { subNodes = [], parentPos, node } = keyNodes[key];\n if (isCheckDisabled(node)) return;\n\n const allSubChecked = !halfChecked && subNodes\n .filter(sub => !isCheckDisabled(sub.node))\n .every(sub => tgtCheckedKeys[sub.key]);\n\n if (allSubChecked) {\n tgtCheckedKeys[key] = true;\n } else {\n tgtHalfCheckedKeys[key] = true;\n }\n\n if (parentPos !== null) {\n conductUp(posNodes[parentPos].key, !allSubChecked);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (tgtCheckedKeys[key]) return;\n const { subNodes = [], node } = keyNodes[key];\n\n if (isCheckDisabled(node)) return;\n\n tgtCheckedKeys[key] = true;\n\n subNodes.forEach((sub) => {\n conductDown(sub.key);\n });\n }\n\n function conduct(key) {\n if (!keyNodes[key]) {\n warning(false, `'${key}' does not exist in the tree.`);\n return;\n }\n\n const { subNodes = [], parentPos, node } = keyNodes[key];\n if (isCheckDisabled(node)) return;\n\n tgtCheckedKeys[key] = true;\n\n // Conduct down\n subNodes\n .filter(sub => !isCheckDisabled(sub.node))\n .forEach((sub) => {\n conductDown(sub.key);\n });\n\n // Conduct up\n if (parentPos !== null) {\n conductUp(posNodes[parentPos].key);\n }\n }\n\n checkedKeys.forEach((key) => {\n conduct(key);\n });\n\n return {\n checkedKeys: Object.keys(tgtCheckedKeys),\n halfCheckedKeys: Object.keys(tgtHalfCheckedKeys)\n .filter(key => !tgtCheckedKeys[key]),\n };\n}\n\n/**\n * Calculate the value of checked and halfChecked keys.\n * This should be only run in init or props changed.\n */\nexport function calcCheckedKeys(keys, props) {\n const { checkable, children, checkStrictly } = props;\n\n if (!checkable || !keys) {\n return null;\n }\n\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n } else {\n warning(false, '`CheckedKeys` is not an array or an object');\n return null;\n }\n\n // Do nothing if is checkStrictly mode\n if (checkStrictly) {\n return keyProps;\n }\n\n // Conduct calculate the check status\n const { checkedKeys = [] } = keyProps;\n return calcCheckStateConduct(children, checkedKeys);\n}\n","import React, { Children, Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class LazyRenderBox extends Component {\n static propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n hidden: PropTypes.bool,\n hiddenClassName: PropTypes.string,\n };\n\n shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || !nextProps.hidden;\n }\n\n render() {\n const { hiddenClassName, hidden, ...props } = this.props;\n\n if (hiddenClassName || Children.count(props.children) > 1) {\n if (hidden && hiddenClassName) {\n props.className += ` ${hiddenClassName}`;\n }\n return <div {...props} />;\n }\n\n return Children.only(props.children);\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Align from '../../align';\nimport Animate from '../../animate';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport { saveRef } from './utils';\n\nclass Popup extends Component {\n static propTypes = {\n visible: PropTypes.bool,\n style: PropTypes.object,\n getClassNameFromAlign: PropTypes.func,\n onAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n onMouseEnter: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseLeave: PropTypes.func,\n stretch: PropTypes.string,\n children: PropTypes.node,\n };\n\n constructor(props) {\n super(props);\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 }\n\n componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n this.setStretchSize();\n }\n\n componentDidUpdate() {\n this.setStretchSize();\n }\n\n onAlign = (popupDomNode, align) => {\n const props = this.props;\n const 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\n // Record size if stretch needed\n setStretchSize = () => {\n const { stretch, getRootDomNode, visible } = this.props;\n const { stretchChecked, targetHeight, targetWidth } = this.state;\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n this.setState({ stretchChecked: false });\n }\n return;\n }\n\n const $ele = getRootDomNode();\n if (!$ele) return;\n\n const height = $ele.offsetHeight;\n const width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n this.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width,\n });\n }\n };\n\n getPopupDomNode() {\n return ReactDOM.findDOMNode(this.popupInstance);\n }\n\n getTarget = () => {\n return this.props.getRootDomNode();\n };\n\n getMaskTransitionName() {\n const props = this.props;\n let transitionName = props.maskTransitionName;\n const animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = `${props.prefixCls}-${animation}`;\n }\n return transitionName;\n }\n\n getTransitionName() {\n const props = this.props;\n let transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = `${props.prefixCls}-${props.animation}`;\n }\n return transitionName;\n }\n\n getClassName(currentAlignClassName) {\n return `${this.props.prefixCls} ${this.props.className} ${currentAlignClassName}`;\n }\n\n getPopupElement() {\n const { savePopupRef } = this;\n const { stretchChecked, targetHeight, targetWidth } = this.state;\n const {\n align, visible,\n prefixCls, style, getClassNameFromAlign,\n destroyPopupOnHide, stretch, children,\n onMouseEnter, onMouseLeave,\n } = this.props;\n const className = this.getClassName(this.currentAlignClassName ||\n getClassNameFromAlign(align));\n const hiddenClassName = `${prefixCls}-hidden`;\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n const sizeStyle = {};\n if (stretch) {\n if (stretchChecked) {\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 } else {\n // Do nothing when stretch not ready\n return null;\n }\n }\n\n const newStyle = {\n ...sizeStyle,\n ...style,\n ...this.getZIndexStyle(),\n };\n\n const popupInnerProps = {\n className,\n prefixCls,\n ref: savePopupRef,\n onMouseEnter,\n onMouseLeave,\n style: newStyle,\n };\n if (destroyPopupOnHide) {\n return (\n <Animate\n component=\"\"\n exclusive\n transitionAppear\n transitionName={this.getTransitionName()}\n >\n {visible ? (\n <Align\n target={this.getTarget}\n key=\"popup\"\n ref={this.saveAlignRef}\n monitorWindowResize\n hidden={!visible}\n childrenProps={{ hidden: 'hidden' }}\n align={align}\n onAlign={this.onAlign}\n >\n <PopupInner\n {...popupInnerProps}\n >\n {children}\n </PopupInner>\n </Align>\n ) : null}\n </Animate>\n );\n }\n return (\n <Animate\n component=\"\"\n exclusive\n transitionAppear\n transitionName={this.getTransitionName()}\n hiddenProp=\"hidden\"\n >\n <Align\n target={this.getTarget}\n key=\"popup\"\n ref={this.saveAlignRef}\n monitorWindowResize\n hidden={!visible}\n childrenProps={{ hidden: 'hidden' }}\n disabled={!visible}\n align={align}\n onAlign={this.onAlign}\n >\n <PopupInner\n hiddenClassName={hiddenClassName}\n {...popupInnerProps}\n >\n {children}\n </PopupInner>\n </Align>\n </Animate>\n );\n }\n\n getZIndexStyle() {\n const style = {};\n const props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n }\n\n getMaskElement() {\n const props = this.props;\n let maskElement;\n if (props.mask) {\n const maskTransition = this.getMaskTransitionName();\n maskElement = (\n <LazyRenderBox\n style={this.getZIndexStyle()}\n key=\"mask\"\n className={`${props.prefixCls}-mask`}\n hiddenClassName={`${props.prefixCls}-mask-hidden`}\n hidden={!props.visible}\n />\n );\n if (maskTransition) {\n maskElement = (\n <Animate\n key=\"mask\"\n hiddenProp=\"hidden\"\n transitionAppear\n component=\"\"\n transitionName={maskTransition}\n >\n {maskElement}\n </Animate>\n );\n }\n }\n return maskElement;\n }\n\n render() {\n return (\n <div>\n {this.getMaskElement()}\n {this.getPopupElement()}\n </div>\n );\n }\n}\n\nexport default Popup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport LazyRenderBox from './LazyRenderBox';\n\nexport default class PopupInner extends Component {\n static propTypes = {\n hiddenClassName: PropTypes.string,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n children: PropTypes.any,\n };\n\n render() {\n const props = this.props;\n let className = props.className;\n if (props.hidden) {\n className += ` ${props.hiddenClassName}`;\n }\n return (\n <div\n className={className}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n style={props.style}\n >\n <LazyRenderBox className={`${props.prefixCls}-content`} hidden={props.hidden}>\n {props.children}\n </LazyRenderBox>\n </div>\n );\n }\n}\n","import React, { Children, cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal, findDOMNode } from 'react-dom';\nimport noop from 'lodash/noop';\nimport contains from '../util/Dom/contains';\nimport addEventListener from '../../_util/addEventListener';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getPopupClassNameFromAlign } from './utils';\nimport ContainerRender from '../util/ContainerRender';\nimport Portal from '../util/Portal';\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nconst ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter',\n 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\nconst IS_REACT_16 = !!createPortal;\n\nexport default class Trigger extends Component {\n static 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([\n PropTypes.node,\n PropTypes.func,\n ]).isRequired,\n popupStyle: PropTypes.object,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\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 getRootDomNode: 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([\n PropTypes.string,\n PropTypes.object,\n ]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n };\n\n static 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\n constructor(props) {\n super(props);\n\n let popupVisible;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n this.prevPopupVisible = popupVisible;\n\n this.state = {\n popupVisible,\n };\n }\n\n componentWillMount() {\n ALL_HANDLERS.forEach((h) => {\n this[`fire${h}`] = (e) => {\n this.fireEvents(h, e);\n };\n });\n }\n\n componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible,\n });\n }\n\n componentWillReceiveProps({ popupVisible }) {\n if (popupVisible !== undefined) {\n this.setState({\n popupVisible,\n });\n }\n }\n\n componentDidUpdate(_, prevState) {\n const props = this.props;\n const state = this.state;\n const 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 this.prevPopupVisible = prevState.popupVisible;\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.popupVisible) {\n let currentDocument;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument,\n 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument,\n '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,\n '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,\n 'blur', this.onContextMenuClose);\n }\n return;\n }\n\n this.clearOutsideHandler();\n }\n\n componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n }\n\n onMouseEnter = (e) => {\n this.fireEvents('onMouseEnter', e);\n this.delaySetPopupVisible(true, this.props.mouseEnterDelay);\n };\n\n onMouseLeave = (e) => {\n this.fireEvents('onMouseLeave', e);\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n };\n\n onPopupMouseEnter = () => {\n this.clearDelayTimer();\n };\n\n onPopupMouseLeave = (e) => {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout &&\n this._component &&\n this._component.getPopupDomNode &&\n contains(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n this.delaySetPopupVisible(false, this.props.mouseLeaveDelay);\n };\n\n onFocus = (e) => {\n this.fireEvents('onFocus', e);\n // incase focusin and focusout\n this.clearDelayTimer();\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.props.focusDelay);\n }\n };\n\n onMouseDown = (e) => {\n this.fireEvents('onMouseDown', e);\n this.preClickTime = Date.now();\n };\n\n onTouchStart = (e) => {\n this.fireEvents('onTouchStart', e);\n this.preTouchTime = Date.now();\n };\n\n onBlur = (e) => {\n this.fireEvents('onBlur', e);\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.props.blurDelay);\n }\n };\n\n onContextMenu = (e) => {\n e.preventDefault();\n this.fireEvents('onContextMenu', e);\n this.setPopupVisible(true);\n };\n\n onContextMenuClose = () => {\n if (this.isContextMenuToShow()) {\n this.close();\n }\n };\n\n onClick = (event) => {\n this.fireEvents('onClick', event);\n // focus will trigger click\n if (this.focusTime) {\n let preTime;\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n this.preTouchTime = 0;\n event.preventDefault();\n const nextVisible = !this.state.popupVisible;\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.state.popupVisible);\n }\n };\n\n onDocumentClick = (event) => {\n if (this.props.mask && !this.props.maskClosable) {\n return;\n }\n const target = event.target;\n const root = findDOMNode(this);\n const popupNode = this.getPopupDomNode();\n if (!contains(root, target) && !contains(popupNode, target)) {\n this.close();\n }\n };\n\n getPopupDomNode() {\n // for test\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n }\n\n getRootDomNode = () => {\n const { getRootDomNode } = this.props;\n if (getRootDomNode) {\n return getRootDomNode();\n } else {\n return findDOMNode(this);\n }\n };\n\n getPopupClassFromAlign = (align) => {\n const className = [];\n const props = this.props;\n const { popupPlacement, builtinPlacements, prefixCls } = props;\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\n getPopupAlign() {\n const props = this.props;\n const { popupPlacement, popupAlign, builtinPlacements } = props;\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n }\n\n getComponent = () => {\n const {\n prefixCls, destroyPopupOnHide, popupClassName, action,\n onPopupAlign, popupAnimation, popupTransitionName, popupStyle,\n mask, maskAnimation, maskTransitionName, zIndex, popup, stretch,\n } = this.props;\n const { state } = this;\n\n const align = this.getPopupAlign();\n\n const mouseProps = {};\n if (this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = this.onPopupMouseEnter;\n }\n if (this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = this.onPopupMouseLeave;\n }\n\n return (\n <Popup\n prefixCls={prefixCls}\n destroyPopupOnHide={destroyPopupOnHide}\n visible={state.popupVisible}\n className={popupClassName}\n action={action}\n align={align}\n onAlign={onPopupAlign}\n animation={popupAnimation}\n getClassNameFromAlign={this.getPopupClassFromAlign}\n {...mouseProps}\n stretch={stretch}\n getRootDomNode={this.getRootDomNode}\n style={popupStyle}\n mask={mask}\n zIndex={zIndex}\n transitionName={popupTransitionName}\n maskAnimation={maskAnimation}\n maskTransitionName={maskTransitionName}\n ref={this.savePopup}\n >\n {typeof popup === 'function' ? popup() : popup}\n </Popup>\n );\n };\n\n getContainer = () => {\n const { props } = this;\n const 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 const mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(this)) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n };\n\n setPopupVisible(popupVisible) {\n this.clearDelayTimer();\n if (this.state.popupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible,\n });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n }\n\n handlePortalUpdate = () => {\n if (this.prevPopupVisible !== this.state.popupVisible) {\n this.props.afterPopupVisibleChange(this.state.popupVisible);\n }\n };\n\n delaySetPopupVisible(visible, delayS) {\n const delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n this.delayTimer = setTimeout(() => {\n this.setPopupVisible(visible);\n this.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible);\n }\n }\n\n clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n\n clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n\n createTwoChains(event) {\n const childPros = this.props.children.props;\n const props = this.props;\n if (childPros[event] && props[event]) {\n return this[`fire${event}`];\n }\n return childPros[event] || props[event];\n }\n\n isClickToShow() {\n const { action, showAction } = this.props;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n\n isContextMenuToShow() {\n const { action, showAction } = this.props;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n\n isClickToHide() {\n const { action, hideAction } = this.props;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n\n isMouseEnterToShow() {\n const { action, showAction } = this.props;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n\n isMouseLeaveToHide() {\n const { action, hideAction } = this.props;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n\n isFocusToShow() {\n const { action, showAction } = this.props;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n\n isBlurToHide() {\n const { action, hideAction } = this.props;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n\n forcePopupAlign() {\n if (this.state.popupVisible && this._component && this._component.alignInstance) {\n this._component.alignInstance.forceAlign();\n }\n }\n\n fireEvents(type, e) {\n const childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n const callback = this.props[type];\n if (callback) {\n callback(e);\n }\n }\n\n close() {\n this.setPopupVisible(false);\n }\n\n savePopup = (node) => {\n this._component = node;\n };\n\n render() {\n const { popupVisible } = this.state;\n const props = this.props;\n const children = props.children;\n const child = Children.only(children);\n const 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 } 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 const trigger = cloneElement(child, newChildProps);\n\n if (!IS_REACT_16) {\n return (\n <ContainerRender\n parent={this}\n visible={popupVisible}\n autoMount={false}\n forceRender={props.forceRender}\n getComponent={this.getComponent}\n getContainer={this.getContainer}\n >\n {({ renderComponent }) => {\n this.renderComponent = renderComponent;\n return trigger;\n }}\n </ContainerRender>\n );\n }\n\n let portal;\n // prevent unmounting after it's rendered\n if (popupVisible || this._component || props.forceRender) {\n portal = (\n <Portal\n key=\"portal\"\n getContainer={this.getContainer}\n didUpdate={this.handlePortalUpdate}\n >\n {this.getComponent()}\n </Portal>\n );\n }\n\n return [\n trigger,\n portal,\n ];\n }\n}\n","function isPointsEq(a1, a2) {\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n const baseAlign = builtinPlacements[placementStr] || {};\n return {\n ...baseAlign,\n ...align,\n };\n}\n\nexport function getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\n const points = align.points;\n for (const 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}\n\nexport function saveRef(name, component) {\n this[name] = component;\n}\n","import { Children } from 'react';\n\nexport default function toArray(children) {\n const ret = [];\n Children.forEach(children, (c) => {\n ret.push(c);\n });\n return ret;\n}\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class ContainerRender extends Component {\n static 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 }\n\n static defaultProps = {\n autoMount: true,\n autoDestroy: true,\n forceRender: false,\n }\n\n componentDidMount() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n\n componentDidUpdate() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n\n componentWillUnmount() {\n if (this.props.autoDestroy) {\n this.removeContainer();\n }\n }\n\n removeContainer = () => {\n if (this.container) {\n ReactDOM.unmountComponentAtNode(this.container);\n this.container.parentNode.removeChild(this.container);\n this.container = null;\n }\n }\n\n renderComponent = (props, ready) => {\n const { visible, getComponent, forceRender, getContainer, parent } = this.props;\n if (visible || parent._component || forceRender) {\n if (!this.container) {\n this.container = getContainer();\n }\n ReactDOM.unstable_renderSubtreeIntoContainer(\n parent,\n getComponent(props),\n this.container,\n function callback() {\n if (ready) {\n ready.call(this);\n }\n }\n );\n }\n }\n\n render() {\n return this.props.children({\n renderComponent: this.renderComponent,\n removeContainer: this.removeContainer,\n });\n }\n}\n","export default function contains(root, n) {\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n\n return false;\n}\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class Portal extends Component {\n static propTypes = {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n didUpdate: PropTypes.func,\n }\n\n componentDidMount() {\n this.createContainer();\n }\n\n componentDidUpdate(prevProps) {\n const { didUpdate } = this.props;\n if (didUpdate) {\n didUpdate(prevProps);\n }\n }\n\n componentWillUnmount() {\n this.removeContainer();\n }\n\n createContainer() {\n this._container = this.props.getContainer();\n this.forceUpdate();\n }\n\n removeContainer() {\n if (this._container) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n\n render() {\n if (this._container) {\n return ReactDOM.createPortal(this.props.children, this._container);\n }\n return null;\n }\n}\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 */\n\nconst shallowEqual = require('lodash/isEqual');\n\nfunction shallowCompare(instance, nextProps, nextState) {\n return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);\n}\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 */\nconst ReactComponentWithPureRenderMixin = {\n shouldComponentUpdate(nextProps, nextState) {\n return shallowCompare(this, nextProps, nextState);\n },\n};\n\nmodule.exports = ReactComponentWithPureRenderMixin;\n","/**\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 const args = [].slice.call(arguments, 0);\n if (args.length === 1) {\n return args[0];\n }\n\n return function chainedFunction() {\n for (let i = 0; i < args.length; i++) {\n if (args[i] && args[i].apply) {\n args[i].apply(this, arguments);\n }\n }\n };\n}\n","import { PureComponent } from 'react';\r\nimport isObject from 'lodash/isObject';\r\nimport { isArrayLike } from 'mobx';\r\nimport { matchMediaPolifill } from '../_util/mediaQueryListPolyfill';\r\nimport { Breakpoint } from './enum';\r\nlet enquire;\r\nif (typeof window !== 'undefined') {\r\n window.matchMedia = window.matchMedia || matchMediaPolifill;\r\n // eslint-disable-next-line global-require\r\n enquire = require('enquire.js');\r\n}\r\nconst responsiveMap = {\r\n [Breakpoint.xxl]: '(min-width: 1600px)',\r\n [Breakpoint.xl]: '(min-width: 1200px)',\r\n [Breakpoint.lg]: '(min-width: 992px)',\r\n [Breakpoint.md]: '(min-width: 768px)',\r\n [Breakpoint.sm]: '(min-width: 576px)',\r\n [Breakpoint.xs]: '(max-width: 575px)',\r\n};\r\nconst responsiveArray = Object.keys(responsiveMap);\r\nexport default class Responsive extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.state = { breakpoints: {} };\r\n }\r\n isDisabled(props) {\r\n const { disabled, items } = props;\r\n if (!disabled && items) {\r\n return !items.some(isObject);\r\n }\r\n return true;\r\n }\r\n componentDidMount() {\r\n if (!this.isDisabled(this.props)) {\r\n this.register();\r\n }\r\n }\r\n componentDidUpdate() {\r\n const { onChange } = this.props;\r\n if (onChange) {\r\n onChange(this.getValues());\r\n }\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (this.isDisabled(this.props) && !this.isDisabled(nextProps)) {\r\n this.register();\r\n }\r\n if (!this.isDisabled(this.props) && this.isDisabled(nextProps)) {\r\n this.unregister();\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (!this.isDisabled(this.props)) {\r\n this.unregister();\r\n }\r\n }\r\n register() {\r\n if (enquire) {\r\n responsiveArray.map((breakpoint) => enquire.register(responsiveMap[breakpoint], {\r\n match: () => {\r\n this.setState(prevState => ({\r\n breakpoints: {\r\n ...prevState.breakpoints,\r\n [breakpoint]: true,\r\n },\r\n }));\r\n },\r\n unmatch: () => {\r\n this.setState(prevState => ({\r\n breakpoints: {\r\n ...prevState.breakpoints,\r\n [breakpoint]: false,\r\n },\r\n }));\r\n },\r\n // Keep a empty destory to avoid triggering unmatch when unregister\r\n destroy() { },\r\n }));\r\n }\r\n }\r\n unregister() {\r\n Object.keys(responsiveMap).map((breakpoint) => enquire.unregister(responsiveMap[breakpoint]));\r\n }\r\n processValue(value) {\r\n const { breakpoints } = this.state;\r\n if (isArrayLike(value)) {\r\n return value.map(this.processValue, this);\r\n }\r\n if (isObject(value)) {\r\n for (let i = 0; i < responsiveArray.length; i++) {\r\n const breakpoint = responsiveArray[i];\r\n if (breakpoints[breakpoint] && value[breakpoint] !== undefined) {\r\n return value[breakpoint];\r\n }\r\n }\r\n return undefined;\r\n }\r\n return value;\r\n }\r\n getValues() {\r\n const { items } = this.props;\r\n if (items) {\r\n return items.map(this.processValue, this);\r\n }\r\n return [];\r\n }\r\n render() {\r\n const { children } = this.props;\r\n if (typeof children === 'function') {\r\n return children(this.getValues());\r\n }\r\n return children;\r\n }\r\n}\r\nResponsive.displayName = 'Responsive';\r\n","export var Breakpoint;\r\n(function (Breakpoint) {\r\n Breakpoint[\"xxl\"] = \"xxl\";\r\n Breakpoint[\"xl\"] = \"xl\";\r\n Breakpoint[\"lg\"] = \"lg\";\r\n Breakpoint[\"md\"] = \"md\";\r\n Breakpoint[\"sm\"] = \"sm\";\r\n Breakpoint[\"xs\"] = \"xs\";\r\n})(Breakpoint || (Breakpoint = {}));\r\n","import { cloneElement, PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nfunction wrapEvent(element, eventName, callback) {\r\n return e => {\r\n const originalEvent = element.props[eventName];\r\n if (originalEvent) {\r\n originalEvent(e);\r\n }\r\n callback(e);\r\n };\r\n}\r\nexport default class MouseDown extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.state = {};\r\n this.show = e => {\r\n const { currentTarget } = e;\r\n const pos = currentTarget.getBoundingClientRect();\r\n this.setState({\r\n size: {\r\n x: e.clientX - pos.left,\r\n y: e.clientY - pos.top,\r\n width: currentTarget.clientWidth,\r\n height: currentTarget.clientHeight,\r\n position: document.defaultView && document.defaultView.getComputedStyle(currentTarget).position,\r\n },\r\n });\r\n };\r\n this.hide = () => {\r\n this.setState({\r\n size: undefined,\r\n });\r\n };\r\n }\r\n render() {\r\n const { children, rippleChild } = this.props;\r\n const { size } = this.state;\r\n const element = children(rippleChild, size);\r\n const newProps = {\r\n onMouseDown: wrapEvent(element, 'onMouseDown', this.show),\r\n };\r\n if (size) {\r\n Object.assign(newProps, {\r\n onMouseUp: wrapEvent(element, 'onMouseUp', this.hide),\r\n onMouseLeave: wrapEvent(element, 'onMouseLeave', this.hide),\r\n onDragEnd: wrapEvent(element, 'onDragEnd', this.hide),\r\n });\r\n }\r\n return cloneElement(element, newProps);\r\n }\r\n}\r\nMouseDown.displayName = 'MouseDown';\r\nMouseDown.propTypes = { rippleChild: PropTypes.node };\r\n","import React, { Children, cloneElement, isValidElement, PureComponent, } from 'react';\r\nimport Animate from '../animate';\r\nimport MouseDown from './MouseDown';\r\nexport default class RippleChild extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.handleMouseDown = (child, size) => {\r\n const { prefixCls } = this.props;\r\n const { children, style } = child.props;\r\n const componentProps = {\r\n className: `${prefixCls}-wrapper`,\r\n };\r\n if (size) {\r\n const { x, y, width, height } = size;\r\n const maxWidth = Math.max(width - x, x);\r\n const maxHeight = Math.max(height - y, y);\r\n const max = Math.sqrt(maxWidth * maxWidth + maxHeight * maxHeight);\r\n this.currentCircleStyle = {\r\n width: max + max,\r\n height: max + max,\r\n left: x - max,\r\n top: y - max,\r\n };\r\n }\r\n const newProps = {\r\n children: [\r\n children,\r\n <Animate key=\"ripple\" component=\"div\" componentProps={componentProps} transitionName={size ? 'zoom-small-slow' : 'fade'} hiddenProp=\"hidden\">\n {this.currentCircleStyle && (<div hidden={!size} className={prefixCls} key=\"circle\" style={this.currentCircleStyle}/>)}\n </Animate>,\r\n ],\r\n style: this.currentStyle || style,\r\n };\r\n if (size && size.position === 'static') {\r\n newProps.style = { ...style, position: 'relative' };\r\n this.currentStyle = newProps.style;\r\n }\r\n return cloneElement(child, newProps);\r\n };\r\n this.ripple = (child) => {\r\n if (isValidElement(child)) {\r\n return <MouseDown rippleChild={child}>{this.handleMouseDown}</MouseDown>;\r\n }\r\n return child;\r\n };\r\n }\r\n render() {\r\n const { children } = this.props;\r\n return this.ripple(Children.only(children));\r\n }\r\n}\r\nRippleChild.displayName = 'RippleChild';\r\n","import React, { Children, PureComponent } from 'react';\r\nimport RippleChild from './RippleChild';\r\nimport { getConfig, getPrefixCls } from '../configure';\r\nexport default class Ripple extends PureComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.rippleChild = (child) => {\r\n const { prefixCls } = this.props;\r\n return <RippleChild prefixCls={getPrefixCls('ripple', prefixCls)}>{child}</RippleChild>;\r\n };\r\n }\r\n render() {\r\n const { disabled, children } = this.props;\r\n if (disabled || !children || !getConfig('ripple')) {\r\n return children;\r\n }\r\n return Children.map(children, this.rippleChild);\r\n }\r\n}\r\nRipple.displayName = 'Ripple';\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../input/style';\r\nimport '../../ripple/style';\r\n","import React, { cloneElement, Component, isValidElement } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport omit from 'lodash/omit';\r\nimport isCssAnimationSupported from '../_util/isCssAnimationSupported';\r\nimport Animate from '../animate';\r\nimport Progress from '../progress/progress';\r\nimport { Size } from '../_util/enum';\r\nimport { ProgressType } from '../progress/enum';\r\nimport { getPrefixCls } from '../configure';\r\nexport default class Spin extends Component {\r\n constructor(props) {\r\n super(props);\r\n const spinning = props.spinning;\r\n this.state = {\r\n spinning,\r\n };\r\n }\r\n componentDidMount() {\r\n if (!isCssAnimationSupported()) {\r\n // Show text in IE9\r\n this.setState({\r\n notCssAnimationSupported: true,\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this.debounceTimeout) {\r\n clearTimeout(this.debounceTimeout);\r\n }\r\n if (this.delayTimeout) {\r\n clearTimeout(this.delayTimeout);\r\n }\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const { spinning: currentSpinning } = this.props;\r\n const spinning = nextProps.spinning;\r\n const { delay } = this.props;\r\n if (this.debounceTimeout) {\r\n clearTimeout(this.debounceTimeout);\r\n }\r\n if (currentSpinning && !spinning) {\r\n this.debounceTimeout = window.setTimeout(() => this.setState({ spinning }), 200);\r\n if (this.delayTimeout) {\r\n clearTimeout(this.delayTimeout);\r\n }\r\n }\r\n else if (spinning && delay && !isNaN(Number(delay))) {\r\n if (this.delayTimeout) {\r\n clearTimeout(this.delayTimeout);\r\n }\r\n this.delayTimeout = window.setTimeout(() => this.setState({ spinning }), delay);\r\n }\r\n else {\r\n this.setState({ spinning });\r\n }\r\n }\r\n getIndicatorWidth(size) {\r\n switch (size) {\r\n case Size.small:\r\n return 20;\r\n case Size.large:\r\n return 50;\r\n default:\r\n return 30;\r\n }\r\n }\r\n renderIndicator(prefixCls) {\r\n const { indicator, size } = this.props;\r\n const dotClassName = `${prefixCls}-dot`;\r\n if (isValidElement(indicator)) {\r\n return cloneElement(indicator, {\r\n className: classNames(indicator.props.className, dotClassName),\r\n });\r\n }\r\n return (<Progress width={this.getIndicatorWidth(size)} className={dotClassName} type={ProgressType.loading}/>);\r\n }\r\n render() {\r\n const { className, size, prefixCls: customizePrefixCls, tip, wrapperClassName, children, style, ...restProps } = this.props;\r\n const { spinning, notCssAnimationSupported } = this.state;\r\n const prefixCls = getPrefixCls('spin', customizePrefixCls);\r\n const spinClassName = classNames(prefixCls, {\r\n [`${prefixCls}-sm`]: size === Size.small,\r\n [`${prefixCls}-lg`]: size === Size.large,\r\n [`${prefixCls}-spinning`]: spinning,\r\n [`${prefixCls}-show-text`]: !!tip || notCssAnimationSupported,\r\n }, className);\r\n // fix https://fb.me/react-unknown-prop\r\n const divProps = omit(restProps, ['spinning', 'delay', 'indicator']);\r\n const spinElement = (<div {...divProps} className={spinClassName} style={style} key=\"loading\">\n {this.renderIndicator(prefixCls)}\n {tip ? <div className={`${prefixCls}-text`}>{tip}</div> : null}\n </div>);\r\n if (children) {\r\n let animateClassName = `${prefixCls}-nested-loading`;\r\n if (wrapperClassName) {\r\n animateClassName += ` ${wrapperClassName}`;\r\n }\r\n const containerClassName = classNames({\r\n [`${prefixCls}-container`]: true,\r\n [`${prefixCls}-blur`]: spinning,\r\n });\r\n return (<Animate {...divProps} component=\"div\" className={animateClassName} transitionName=\"fade\">\n {spinning && spinElement}\n <div className={containerClassName} key=\"container\">\n {children}\n </div>\n </Animate>);\r\n }\r\n return spinElement;\r\n }\r\n}\r\nSpin.displayName = 'Spin';\r\nSpin.defaultProps = {\r\n spinning: true,\r\n size: Size.default,\r\n wrapperClassName: '',\r\n};\r\nSpin.propTypes = {\r\n prefixCls: PropTypes.string,\r\n className: PropTypes.string,\r\n spinning: PropTypes.bool,\r\n size: PropTypes.oneOf([Size.small, Size.default, Size.large]),\r\n wrapperClassName: PropTypes.string,\r\n indicator: PropTypes.node,\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../progress/style';\r\n","// extracted by mini-css-extract-plugin","import './index.less';\r\n","export var TabsType;\r\n(function (TabsType) {\r\n TabsType[\"line\"] = \"line\";\r\n TabsType[\"card\"] = \"card\";\r\n TabsType[\"editable-card\"] = \"editable-card\";\r\n})(TabsType || (TabsType = {}));\r\nexport var TabsPosition;\r\n(function (TabsPosition) {\r\n TabsPosition[\"top\"] = \"top\";\r\n TabsPosition[\"bottom\"] = \"bottom\";\r\n TabsPosition[\"left\"] = \"left\";\r\n TabsPosition[\"right\"] = \"right\";\r\n})(TabsPosition || (TabsPosition = {}));\r\n","import React, { Children, cloneElement, Component, } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport classNames from 'classnames';\r\nimport Icon from '../icon';\r\nimport warning from '../_util/warning';\r\nimport isFlexSupported from '../_util/isFlexSupported';\r\nimport RcTabs, { TabContent, TabPane } from '../rc-components/tabs';\r\nimport ScrollableInkTabBar from '../rc-components/tabs/ScrollableInkTabBar';\r\nimport { generateKey } from '../rc-components/tabs/utils';\r\nimport { Size } from '../_util/enum';\r\nimport { TabsPosition, TabsType } from './enum';\r\nimport { getPrefixCls } from '../configure';\r\nexport default class Tabs extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.createNewTab = targetKey => {\r\n const { onEdit } = this.props;\r\n if (onEdit) {\r\n onEdit(targetKey, 'add');\r\n }\r\n };\r\n this.removeTab = (targetKey, e) => {\r\n e.stopPropagation();\r\n if (!targetKey) {\r\n return;\r\n }\r\n const { onEdit } = this.props;\r\n if (onEdit) {\r\n onEdit(targetKey, 'remove');\r\n }\r\n };\r\n this.handleChange = (activeKey) => {\r\n const { onChange } = this.props;\r\n if (onChange) {\r\n onChange(activeKey);\r\n }\r\n };\r\n }\r\n componentDidMount() {\r\n const NO_FLEX = ' no-flex';\r\n const tabNode = findDOMNode(this);\r\n if (tabNode && !isFlexSupported() && tabNode.className.indexOf(NO_FLEX) === -1) {\r\n tabNode.className += NO_FLEX;\r\n }\r\n }\r\n render() {\r\n const { prefixCls: customizePrefixCls, className = '', size, type = TabsType.line, tabPosition, children, tabBarStyle, hideAdd, onTabClick, onPrevClick, onNextClick, animated = true, tabBarGutter, } = this.props;\r\n let { tabBarExtraContent } = this.props;\r\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\r\n const inkBarAnimated = typeof animated === 'object' ? animated.inkBar : animated;\r\n let tabPaneAnimated = typeof animated === 'object' ? animated.tabPane : animated;\r\n // card tabs should not have animation\r\n if (type !== TabsType.line) {\r\n tabPaneAnimated = 'animated' in this.props ? tabPaneAnimated : false;\r\n }\r\n const isCard = type === TabsType.card || type === TabsType['editable-card'];\r\n warning(!(isCard && (size === Size.small || size === Size.large)), \"Tabs[type=card|editable-card] doesn't have small or large size, it's by designed.\");\r\n const cls = classNames(className, `${prefixCls}-${type}`, {\r\n [`${prefixCls}-vertical`]: tabPosition === TabsPosition.left || tabPosition === TabsPosition.right,\r\n [`${prefixCls}-${size}`]: !!size,\r\n [`${prefixCls}-card`]: isCard,\r\n [`${prefixCls}-no-animation`]: !tabPaneAnimated,\r\n });\r\n // only card type tabs can be added and closed\r\n let childrenWithClose = [];\r\n if (type === TabsType['editable-card']) {\r\n childrenWithClose = [];\r\n Children.forEach(children, (child, index) => {\r\n let closable = child.props.closable;\r\n closable = typeof closable === 'undefined' ? true : closable;\r\n const closeIcon = closable ? (<Icon type=\"close\" onClick={e => this.removeTab(child.key, e)}/>) : null;\r\n childrenWithClose.push(cloneElement(child, {\r\n tab: (<div className={closable ? undefined : `${prefixCls}-tab-unclosable`}>\n {child.props.tab}\n {closeIcon}\n </div>),\r\n key: generateKey(child.key, index),\r\n }));\r\n });\r\n // Add new tab handler\r\n if (!hideAdd) {\r\n tabBarExtraContent = (<span>\n <Icon type=\"plus\" className={`${prefixCls}-new-tab`} onClick={this.createNewTab}/>\n {tabBarExtraContent}\n </span>);\r\n }\r\n }\r\n tabBarExtraContent = tabBarExtraContent ? (<div className={`${prefixCls}-extra-content`}>{tabBarExtraContent}</div>) : null;\r\n const renderTabBar = () => (<ScrollableInkTabBar inkBarAnimated={inkBarAnimated} extraContent={tabBarExtraContent} onTabClick={onTabClick} onPrevClick={onPrevClick} onNextClick={onNextClick} style={tabBarStyle} tabBarGutter={tabBarGutter}/>);\r\n return (<RcTabs {...this.props} prefixCls={prefixCls} className={cls} tabBarPosition={tabPosition} renderTabBar={renderTabBar} renderTabContent={() => <TabContent animated={tabPaneAnimated} animatedWithMargin/>} onChange={this.handleChange}>\n {childrenWithClose.length > 0 ? childrenWithClose : children}\n </RcTabs>);\r\n }\r\n}\r\nTabs.displayName = 'Tabs';\r\nTabs.TabPane = TabPane;\r\nTabs.defaultProps = {\r\n hideAdd: false,\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../ripple/style';\r\n","import React, { cloneElement, Component, isValidElement, } from 'react';\r\nimport classNames from 'classnames';\r\nimport getPlacements, { AdjustOverflow, PlacementsConfig } from './placements';\r\nimport RcTooltip from '../rc-components/tooltip';\r\nimport { getPrefixCls } from '../configure';\r\nexport { AdjustOverflow, PlacementsConfig };\r\nconst splitObject = (obj, keys) => {\r\n const picked = {};\r\n const omited = { ...obj };\r\n keys.forEach(key => {\r\n if (obj && key in obj) {\r\n picked[key] = obj[key];\r\n delete omited[key];\r\n }\r\n });\r\n return { picked, omited };\r\n};\r\nexport default class Tooltip extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.onVisibleChange = (visible) => {\r\n const { onVisibleChange } = this.props;\r\n if (!('visible' in this.props)) {\r\n this.setState({ visible: this.isNoTitle() ? false : visible });\r\n }\r\n if (onVisibleChange && !this.isNoTitle()) {\r\n onVisibleChange(visible);\r\n }\r\n };\r\n // 动态设置动画点\r\n this.onPopupAlign = (domNode, align) => {\r\n const placements = this.getPlacements();\r\n // 当前返回的位置\r\n const placement = Object.keys(placements).filter(key => placements[key].points[0] === align.points[0] &&\r\n placements[key].points[1] === align.points[1])[0];\r\n if (!placement) {\r\n return;\r\n }\r\n // 根据当前坐标设置动画点\r\n const rect = domNode.getBoundingClientRect();\r\n const transformOrigin = {\r\n top: '50%',\r\n left: '50%',\r\n };\r\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\r\n transformOrigin.top = `${rect.height - align.offset[1]}px`;\r\n }\r\n else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\r\n transformOrigin.top = `${-align.offset[1]}px`;\r\n }\r\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\r\n transformOrigin.left = `${rect.width - align.offset[0]}px`;\r\n }\r\n else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\r\n transformOrigin.left = `${-align.offset[0]}px`;\r\n }\r\n domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\r\n };\r\n this.saveTooltip = (node) => {\r\n this.tooltip = node;\r\n };\r\n this.state = {\r\n visible: !!props.visible || !!props.defaultVisible,\r\n };\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if ('visible' in nextProps) {\r\n this.setState({ visible: nextProps.visible });\r\n }\r\n }\r\n getPopupDomNode() {\r\n return this.tooltip.getPopupDomNode();\r\n }\r\n getPlacements() {\r\n const { builtinPlacements, arrowPointAtCenter, autoAdjustOverflow } = this.props;\r\n return (builtinPlacements ||\r\n getPlacements({\r\n arrowPointAtCenter,\r\n verticalArrowShift: 8,\r\n autoAdjustOverflow,\r\n }));\r\n }\r\n isHoverTrigger() {\r\n const { trigger } = this.props;\r\n if (!trigger || trigger === 'hover') {\r\n return true;\r\n }\r\n if (Array.isArray(trigger)) {\r\n return trigger.indexOf('hover') >= 0;\r\n }\r\n return false;\r\n }\r\n // Fix Tooltip won't hide at disabled button\r\n // mouse events don't trigger at disabled button in Chrome\r\n // https://github.com/react-component/tooltip/issues/18\r\n getDisabledCompatibleChildren(element) {\r\n if ((element.type.__ANT_BUTTON || element.type === 'button') &&\r\n element.props.disabled &&\r\n this.isHoverTrigger()) {\r\n // Pick some layout related style properties up to span\r\n const { picked, omited } = splitObject(element.props.style, [\r\n 'position',\r\n 'left',\r\n 'right',\r\n 'top',\r\n 'bottom',\r\n 'float',\r\n 'display',\r\n 'zIndex',\r\n ]);\r\n const spanStyle = {\r\n display: 'inline-block',\r\n ...picked,\r\n cursor: 'not-allowed',\r\n };\r\n const buttonStyle = {\r\n ...omited,\r\n pointerEvents: 'none',\r\n };\r\n const child = cloneElement(element, {\r\n style: buttonStyle,\r\n className: null,\r\n });\r\n return (<span style={spanStyle} className={element.props.className}>\n {child}\n </span>);\r\n }\r\n return element;\r\n }\r\n isNoTitle() {\r\n const { title, overlay } = this.props;\r\n return !title && !overlay; // overlay for old version compatibility\r\n }\r\n render() {\r\n const { props, state } = this;\r\n const { prefixCls: customizePrefixCls, title, overlay, openClassName, getPopupContainer, getTooltipContainer, } = props;\r\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\r\n const children = props.children;\r\n let visible = state.visible;\r\n // Hide tooltip when there is no title\r\n if (!('visible' in props) && this.isNoTitle()) {\r\n visible = false;\r\n }\r\n const child = this.getDisabledCompatibleChildren(isValidElement(children) ? children : <span>{children}</span>);\r\n const childProps = child.props;\r\n const childCls = classNames(childProps.className, {\r\n [openClassName || `${prefixCls}-open`]: true,\r\n });\r\n return (<RcTooltip {...this.props} prefixCls={prefixCls} getTooltipContainer={getPopupContainer || getTooltipContainer} ref={this.saveTooltip} builtinPlacements={this.getPlacements()} overlay={overlay || title || ''} visible={visible} onVisibleChange={this.onVisibleChange} onPopupAlign={this.onPopupAlign}>\n {visible ? cloneElement(child, { className: childCls }) : child}\n </RcTooltip>);\r\n }\r\n}\r\nTooltip.displayName = 'Tooltip';\r\nTooltip.defaultProps = {\r\n placement: 'top',\r\n transitionName: 'zoom-big-fast',\r\n mouseEnterDelay: 0.1,\r\n mouseLeaveDelay: 0.1,\r\n arrowPointAtCenter: false,\r\n autoAdjustOverflow: true,\r\n};\r\n","import rcPlacements from '../rc-components/tooltip/placements';\r\nconst autoAdjustOverflowEnabled = {\r\n adjustX: 1,\r\n adjustY: 1,\r\n};\r\nconst autoAdjustOverflowDisabled = {\r\n adjustX: 0,\r\n adjustY: 0,\r\n};\r\nconst targetOffset = [0, 0];\r\nexport function getOverflowOptions(autoAdjustOverflow) {\r\n if (typeof autoAdjustOverflow === 'boolean') {\r\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\r\n }\r\n return {\r\n ...autoAdjustOverflowDisabled,\r\n ...autoAdjustOverflow,\r\n };\r\n}\r\nexport default function getPlacements(config = {}) {\r\n const { arrowWidth = 5, horizontalArrowShift = 16, verticalArrowShift = 12, autoAdjustOverflow = true } = config;\r\n const placementMap = {\r\n left: {\r\n points: ['cr', 'cl'],\r\n offset: [-4, 0],\r\n },\r\n right: {\r\n points: ['cl', 'cr'],\r\n offset: [4, 0],\r\n },\r\n top: {\r\n points: ['bc', 'tc'],\r\n offset: [0, -4],\r\n },\r\n bottom: {\r\n points: ['tc', 'bc'],\r\n offset: [0, 4],\r\n },\r\n topLeft: {\r\n points: ['bl', 'tc'],\r\n offset: [-(horizontalArrowShift + arrowWidth), -4],\r\n },\r\n leftTop: {\r\n points: ['tr', 'cl'],\r\n offset: [-4, -(verticalArrowShift + arrowWidth)],\r\n },\r\n topRight: {\r\n points: ['br', 'tc'],\r\n offset: [horizontalArrowShift + arrowWidth, -4],\r\n },\r\n rightTop: {\r\n points: ['tl', 'cr'],\r\n offset: [4, -(verticalArrowShift + arrowWidth)],\r\n },\r\n bottomRight: {\r\n points: ['tr', 'bc'],\r\n offset: [horizontalArrowShift + arrowWidth, 4],\r\n },\r\n rightBottom: {\r\n points: ['bl', 'cr'],\r\n offset: [4, verticalArrowShift + arrowWidth],\r\n },\r\n bottomLeft: {\r\n points: ['tl', 'bc'],\r\n offset: [-(horizontalArrowShift + arrowWidth), 4],\r\n },\r\n leftBottom: {\r\n points: ['br', 'cl'],\r\n offset: [-4, verticalArrowShift + arrowWidth],\r\n },\r\n };\r\n Object.keys(placementMap).forEach(key => {\r\n placementMap[key] = config.arrowPointAtCenter ? {\r\n ...placementMap[key],\r\n overflow: getOverflowOptions(autoAdjustOverflow),\r\n targetOffset,\r\n } : {\r\n ...rcPlacements[key],\r\n overflow: getOverflowOptions(autoAdjustOverflow),\r\n };\r\n });\r\n return placementMap;\r\n}\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n","import React, { cloneElement, Component, } from 'react';\r\nimport classNames from 'classnames';\r\nimport animation from '../_util/openAnimation';\r\nimport RcTree, { TreeNode } from '../rc-components/tree';\r\nimport Icon from '../icon';\r\nimport Progress from '../progress';\r\nimport { ProgressType } from '../progress/enum';\r\nimport { Size } from '../_util/enum';\r\nimport { getPrefixCls } from '../configure';\r\nexport { TreeNode };\r\nexport default class Tree extends Component {\r\n constructor() {\r\n super(...arguments);\r\n this.renderSwitcherIcon = ({ isLeaf, loading }) => {\r\n const { showLine, switcherIcon } = this.props;\r\n const prefixCls = this.getPrefixCls();\r\n if (loading) {\r\n return (<Progress type={ProgressType.loading} className={`${prefixCls}-switcher-loading-icon`} size={Size.small}/>);\r\n }\r\n const switcherCls = `${prefixCls}-switcher-icon`;\r\n if (showLine) {\r\n if (isLeaf) {\r\n return <Icon type=\"note\" className={`${prefixCls}-switcher-line-icon`}/>;\r\n }\r\n return <Icon type=\"arrow_drop_down\" className={switcherCls}/>;\r\n }\r\n if (isLeaf) {\r\n return null;\r\n }\r\n if (switcherIcon) {\r\n const switcherOriginCls = switcherIcon.props.className || '';\r\n return cloneElement(switcherIcon, {\r\n className: [switcherOriginCls, switcherCls],\r\n });\r\n }\r\n return <Icon type=\"arrow_drop_down\" className={switcherCls}/>;\r\n };\r\n }\r\n getPrefixCls() {\r\n const { prefixCls } = this.props;\r\n return getPrefixCls('tree', prefixCls);\r\n }\r\n render() {\r\n const props = this.props;\r\n const { className, showIcon, checkable, children } = props;\r\n const prefixCls = this.getPrefixCls();\r\n return (<RcTree {...props} className={classNames(!showIcon && `${prefixCls}-icon-hide`, className)} checkable={checkable ? <span className={`${prefixCls}-checkbox-inner`}/> : checkable} switcherIcon={this.renderSwitcherIcon} prefixCls={prefixCls}>\n {children}\n </RcTree>);\r\n }\r\n}\r\nTree.displayName = 'Tree';\r\nTree.TreeNode = TreeNode;\r\nTree.defaultProps = {\r\n checkable: false,\r\n showIcon: false,\r\n openAnimation: animation,\r\n};\r\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\r\nimport './index.less';\r\n// style dependencies\r\nimport '../../checkbox/style';\r\nimport '../../pagination/style';\r\n","/* eslint no-console:0 */\nfunction camelCase(name) {\n return name.charAt(0).toUpperCase() + name.slice(1).replace(/-(\\w)/g, (m, n) => n.toUpperCase());\n}\n\nconst req = require.context('./components-pro', true, /^\\.\\/[^_][\\w-]+\\/style\\/index\\.tsx?$/);\n\nreq.keys().forEach(mod => {\n let v = req(mod);\n if (v && v.default) {\n v = v.default;\n }\n const match = mod.match(/^\\.\\/([^_][\\w-]+)\\/index\\.tsx?$/);\n if (match && match[1]) {\n if (match[1] === 'message' || match[1] === 'notification') {\n // message & notification should not be capitalized\n exports[match[1]] = v;\n } else {\n exports[camelCase(match[1])] = v;\n }\n }\n});\n\nmodule.exports = require('./components-pro');\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _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\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _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\nmodule.exports = _extends;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\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\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n}\n\nmodule.exports = _objectDestructuringEmpty;","var defineProperty = require(\"./defineProperty\");\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\nmodule.exports = _objectSpread2;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\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\nmodule.exports = _objectWithoutProperties;","function _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\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\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\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","module.exports = require(\"regenerator-runtime\");\n","/**\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\"];","/**\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'];","'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'];","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get';\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach([\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',\n 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken',\n 'socketPath'\n ], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n // Only Node.JS has a process variable that is of [[Class]] process\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"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};","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true,\n});\n\nvar categories = {\n whatsNew: [\n 'circulate', 'knowledge', 'pipeline',\n 'role_assignments', 'application_allocation', 'redeploy_line', 'add_column', 'add_row', 'application_market', 'backup_line', 'delete_column', 'delete_row', 'establish_base',\n 'merge_cell', 'rate_review1', 'revocation', 'split_cell', 'template_configuration', 'widgets_line',\n 'project_line', 'project_group', 'project_filled', 'scissors', 'category',\n 'subscription', 'line_manage', 'nearby', 'authorize',\n 'publish_cancel', 'subscription_cancel', 'project_program', 'agile-feature', 'baseline-vertical_split',\n 'number', 'popup_selection', 'toggle_off', 'project_program_analyze', 'application_-general',\n 'deploy_list', 'auto_complete', 'combo_box', 'data_source', 'multistage_combo_box',\n 'API_management', 'API_market', 'API_publish', 'API_subscription', 'APIS', 'auto_deploy',\n 'sync_records', 'sync_user', 'test-case', 'test-automation', 'token', 'change_size',\n 'add_crt', 'add_branch', 'line', 'secret', 'recover', 'table', 'test_execution', 'test_progress',\n 'test_record', 'execution_schedule', 'cluster', 'kubernetes_cluster', 'disconnect',\n 'running', 'notification_setting', 'authority', 'develop_console', 'frame', 'record_test',\n 'agile_epic', 'agile_fault', 'agile_story', 'agile_subtask', 'agile_task', 'auto_test',\n ],\n direction: [\n 'baseline-arrow_drop_down', 'baseline-arrow_drop_up', 'baseline-arrow_left', 'baseline-arrow_right',\n 'play_90', 'replay_90', 'navigate_before', 'navigate_next', 'arrow_back',\n 'arrow_downward', 'arrow_drop_down', 'arrow_drop_down_circle', 'arrow_drop_up', 'arrow_forward', 'arrow_upward',\n 'expand_less', 'expand_more', 'fast_forward', 'fast_rewind', 'first_page', 'last_page', 'skip_next', 'skip_previous',\n 'subdirectory_arrow_left', 'subdirectory_arrow_right', 'trending_down', 'trending_flat', 'trending_up',\n 'unfold_less', 'unfold_more',\n ],\n suggestion: [\n 'cancle_a', 'cancle_b', 'forbidden_a', 'forbidden_b', 'block', 'finished', 'alarm', 'access_alarms', 'schedule', 'alarm_off', 'alarm_on',\n 'add', 'add_a_photo', 'alarm_add', 'add_alert', 'add_box', 'add_circle', 'control_point', 'add_location',\n 'add_shopping_cart', 'queue', 'add_to_queue', 'cancel', 'check', 'check_circle', 'close', 'not_interested', 'do_not_disturb_alt',\n 'do_not_disturb_off', 'remove', 'remove_circle_outline', 'remove_circle', 'done', 'done_all', 'indeterminate_check_box', 'info', 'info_outline',\n 'priority_high', 'verified_user', 'report', 'warning',\n ],\n edit: [\n 'border_all', 'border_bottom', 'border_clear',\n 'border_color', 'border_horizontal', 'border_inner', 'border_left', 'border_outer',\n 'border_right', 'border_style', 'border_top', 'border_vertical',\n 'code', 'photo_library', 'collections_bookmark', 'palette', 'colorize', 'comment',\n 'compare', 'compare_arrows', 'content_cut', 'content_paste', 'content_copy', 'mode_edit',\n 'crop', 'crop_16_9', 'crop_3_2', 'crop_landscape', 'crop_7_5', 'crop_din', 'crop_free', 'crop_original', 'crop_portrait', 'crop_rotate',\n 'crop_square', 'delete', 'delete_forever', 'delete_sweep', 'error', 'error_outline',\n 'flip', 'flip_to_back', 'flip_to_front', 'font_download',\n 'format_align_center', 'format_align_justify', 'format_align_left', 'format_align_right', 'format_bold', 'format_clear',\n 'format_color_fill', 'format_color_reset', 'format_color_text', 'format_indent_decrease', 'format_indent_increase', 'format_italic',\n 'format_line_spacing', 'format_list_bulleted', 'format_list_numbered', 'format_paint', 'format_quote', 'format_shapes', 'format_size',\n 'format_strikethrough', 'format_textdirection_l_to_r', 'format_textdirection_r_to_l', 'format_underlined',\n 'fullscreen', 'fullscreen_exit', 'functions', 'g_translate', 'grid_off', 'grid_on', 'print', 'sort', 'sort_by_alpha',\n 'text_fields', 'text_format', 'texture', 'transform', 'translate', 'undo', 'wrap_text', 'zoom_in', 'zoom_out', 'zoom_out_map',\n ],\n data: [\n 'devops_chart', 'agile_chart', 'test_chart', 'bar_chart', 'burnout_map', 'table_chart', 'bubble_chart', 'pie_chart', 'pie_chart_outlined',\n 'show_chart',\n ],\n other: [\n 'create_new_folder', 'folder_open2', 'folder', 'folder_open', 'folder_shared', 'folder_special', 'note', 'note_add',\n 'lock', 'unlock', 'lock_open', 'lock_outline', 'classname', 'state_over', 'task_schedule', 'unallocated_question',\n 'unfinished_question', 'all_reports', 'iterative_workbench', 'outstanding_tasks', 'report_overview', 'test_execute',\n 'test_planning', 'project_list', 'domain_list', 'IP_out', 'message_notification',\n 'all_read', 'inmail_template', 'mail_set', 'export_EOT', 'export_html',\n 'export_PDF', 'export_RTF', 'export_XAR', 'mail_modal', 'message_modal', 'message2', 'usermap', 'document',\n 'pass', 'operation_bug', 'operation_change', 'operation_event', 'operation_help',\n 'operation_new_feature', 'operation_problem', 'operation_service_request',\n 'operation_subtask', 'operation_task', 'port', 'aim_port',\n 'saga_define', 'role_tag', 'agile', 'quality', 'appmarket', 'merge_request',\n 'APItest', 'relation', 'relate', 'manage_project', 'book', 'contact_support',\n 'ballot', 'test', 'priority', 'compass', 'sutask',\n 'explicit-outline', 'explicit2', 'framework', 'inbox_content', 'visits', 'work_log',\n 'link', 'link2', 'baseline-link_off', 'baseline-drag_indicator', 'baseline-file_copy', 'sms_outline', 'versionline',\n 'root', 'micro', 'publish2', 'center', 'filter2', 'manage_person',\n 'manage_organization', 'password', 'custom_Directory', 'predefine', 'project', 'return', 'API',\n '/', 'application_model', 'microservice', 'instance', 'instance_outline', 'IAM', 'routeroutline',\n 'version', 'devops', 'CI', 'kubernetes', 'branch', 'point', 'wait_circle', 'add_activity',\n 'add_task', 'export', 'debug',\n 'database', 'Development-monitoring', 'insight', 'jsfiddle', 'Operation-monitoring', 'rocket',\n 'wrench', 'skipped_a', 'skipped_b', 'd_rotation', 'ac_unit', 'accessibility',\n 'accessible', 'account_balance', 'account_balance_wallet', 'account_box', 'account_circle', 'adb',\n 'adjust', 'airline_seat_flat', 'airline_seat_flat_angled',\n 'airline_seat_individual_suite', 'airline_seat_legroom_extra', 'airline_seat_legroom_normal',\n 'airline_seat_legroom_reduced', 'airline_seat_recline_extra', 'airline_seat_recline_normal',\n 'flight', 'airplanemode_inactive', 'airplay', 'airport_shuttle',\n 'album', 'all_inclusive', 'all_out', 'announcement', 'apps', 'archive',\n 'art_track', 'aspect_ratio', 'poll', 'assignment', 'assignment_ind', 'assignment_late', 'assignment_return',\n 'assignment_returned', 'assignment_turned_in', 'assistant', 'flag', 'attach_file', 'attach_money', 'attachment',\n 'audiotrack', 'autorenew', 'av_timer', 'backspace', 'cloud_upload', 'battery_alert', 'battery_charging_full',\n 'battery_std', 'battery_unknown', 'beach_access', 'beenhere', 'bluetooth', 'bluetooth_searching',\n 'bluetooth_connected', 'bluetooth_disabled', 'blur_circular', 'blur_linear', 'blur_off',\n 'blur_on', 'class', 'turned_in', 'turned_in_not', 'branding_watermark',\n 'brightness_1', 'brightness_2', 'brightness_3', 'brightness_4', 'brightness_low',\n 'brightness_medium', 'brightness_high', 'brightness_auto', 'broken_image', 'brush',\n 'bug_report', 'build', 'burst_mode', 'domain', 'business_center',\n 'cached', 'cake', 'phone', 'call_end', 'call_made', 'merge_type', 'call_missed',\n 'call_missed_outgoing', 'call_received', 'call_split', 'call_to_action', 'redeem', 'card_membership', 'card_travel',\n 'casino', 'cast', 'cast_connected', 'center_focus_strong', 'center_focus_weak', 'change_history', 'chat', 'chat_bubble',\n 'chat_bubble_outline', 'check_box', 'check_box_outline_blank', 'child_care',\n 'child_friendly', 'chrome_reader_mode', 'clear_all', 'closed_caption', 'wb_cloudy', 'cloud_circle', 'cloud_done',\n 'cloud_download', 'cloud_off', 'cloud_queue', 'laptop', 'confirmation_number', 'contact_mail', 'contact_phone', 'contacts',\n 'control_point_duplicate', 'copyright', 'payment', 'dashboard', 'data_usage', 'dehaze', 'description',\n 'desktop_mac', 'desktop_windows', 'details', 'developer_board', 'developer_mode', 'device_hub', 'phonelink', 'devices_other',\n 'dialer_sip', 'dialpad', 'directions', 'directions_bike', 'directions_boat', 'directions_bus', 'directions_car', 'directions_railway',\n 'directions_run', 'directions_transit', 'directions_walk', 'disc_full', 'dns', 'dock', 'donut_large', 'donut_small', 'drafts', 'drag_handle',\n 'time_to_leave', 'dvr', 'edit_location', 'eject', 'markunread', 'enhanced_encryption', 'equalizer',\n 'euro_symbol', 'ev_station', 'today', 'date_range', 'insert_invitation', 'event_available', 'event_busy', 'event_note', 'event_seat',\n 'exit_to_app', 'explicit', 'explore', 'extension', 'face', 'favorite', 'favorite_border',\n 'featured_play_list', 'featured_video', 'sms_failed', 'fiber_dvr', 'fiber_manual_record', 'fiber_new', 'fiber_pin',\n 'fiber_smart_record', 'get_app', 'file_upload', 'terrain', 'find_in_page', 'find_replace',\n 'fingerprint', 'fitness_center', 'flare', 'flash_auto', 'flash_off', 'flash_on', 'flight_land', 'flight_takeoff',\n 'question_answer', 'forward', 'forward_10', 'forward_30', 'forward_5', 'free_breakfast', 'games', 'gavel',\n 'gesture', 'gif', 'goat', 'golf_course', 'my_location', 'location_searching', 'location_disabled', 'star', 'gradient', 'grain',\n 'graphic_eq', 'people', 'group_add', 'group_work', 'hd', 'hdr_off', 'hdr_on', 'hdr_strong', 'hdr_weak',\n 'headset', 'headset_mic', 'healing', 'hearing', 'help', 'help_outline', 'high_quality', 'highlight', 'highlight_off', 'restore',\n 'home', 'hot_tub', 'local_hotel', 'hourglass_empty', 'hourglass_full', 'http', 'image_aspect_ratio',\n 'import_contacts', 'import_export', 'important_devices', 'inbox',\n 'input', 'insert_comment', 'insert_drive_file', 'tag_faces', 'invert_colors', 'invert_colors_off', 'iso', 'kitchen', 'label',\n 'label_outline', 'language', 'laptop_chromebook', 'laptop_mac', 'laptop_windows', 'open_in_new',\n 'layers', 'layers_clear', 'leak_add', 'leak_remove', 'lens', 'library_books', 'library_music', 'lightbulb_outline',\n 'line_style', 'line_weight', 'linear_scale', 'linked_camera', 'list', 'live_help', 'live_tv', 'local_play', 'local_airport',\n 'local_atm', 'local_bar', 'local_cafe', 'local_car_wash', 'local_convenience_store', 'restaurant_menu', 'local_drink',\n 'local_florist', 'local_gas_station', 'shopping_cart', 'local_hospital', 'local_laundry_service', 'local_library', 'local_mall',\n 'theaters', 'local_offer', 'local_parking', 'local_pharmacy', 'local_pizza', 'local_shipping', 'local_taxi', 'location_city',\n 'location_off', 'room', 'sync', 'loupe', 'low_priority', 'loyalty', 'mail_outline',\n 'map', 'markunread_mailbox', 'memory', 'menu', 'message', 'mic', 'mic_none', 'mic_off', 'mms',\n 'mode_comment', 'monetization_on', 'money_off', 'monochrome_photos', 'mood_bad', 'more', 'more_horiz',\n 'more_vert', 'motorcycle', 'mouse', 'move_to_inbox', 'movie_creation', 'movie_filter', 'multiline_chart',\n 'music_note', 'music_video', 'nature', 'nature_people', 'navigation', 'near_me', 'network_cell',\n 'network_check', 'network_locked', 'network_wifi', 'new_releases', 'next_week', 'nfc', 'no_encryption',\n 'signal_cellular_no_sim', 'offline_pin', 'ondemand_video', 'opacity', 'open_in_browser',\n 'open_with', 'pages', 'pageview', 'pan_tool', 'panorama', 'radio_button_unchecked', 'panorama_horizontal',\n 'panorama_vertical', 'panorama_wide_angle', 'party_mode', 'pause', 'pause_circle_filled', 'pause_circle_outline',\n 'people_outline', 'perm_camera_mic', 'perm_contact_calendar', 'perm_data_setting', 'perm_device_information', 'person_outline',\n 'perm_media', 'perm_phone_msg', 'perm_scan_wifi', 'person', 'person_add', 'person_pin', 'person_pin_circle', 'personal_video',\n 'pets', 'pin_drop', 'plus_one', 'polymer', 'pool', 'portable_wifi_off',\n 'portrait', 'power', 'power_input', 'power_settings_new', 'pregnant_woman', 'present_to_all',\n 'public', 'publish', 'queue_music', 'queue_play_next', 'radio', 'radio_button_checked', 'rate_review', 'receipt',\n 'recent_actors', 'record_voice_over', 'redo', 'refresh', 'remove_from_queue',\n 'visibility', 'remove_shopping_cart', 'reorder', 'repeat', 'repeat_one', 'replay', 'replay_10', 'replay_30', 'replay_5',\n 'reply', 'reply_all', 'restaurant', 'restore_page', 'ring_volume', 'room_service',\n 'rotate_90_degrees_ccw', 'rotate_left', 'rotate_right', 'rounded_corner', 'router', 'rowing', 'rss_feed',\n 'rv_hookup', 'satellite', 'save', 'scanner', 'school', 'screen_lock_landscape', 'screen_lock_portrait',\n 'screen_lock_rotation', 'screen_rotation', 'screen_share', 'sd_storage', 'search', 'security', 'select_all',\n 'send', 'share', 'shop', 'shop_two', 'shopping_basket', 'short_text',\n 'shuffle', 'slideshow', 'slow_motion_video', 'stay_primary_portrait', 'smoke_free', 'smoking_rooms',\n 'textsms', 'snooze', 'spa', 'space_bar', 'speaker', 'speaker_group',\n 'speaker_notes', 'speaker_notes_off', 'speaker_phone', 'spellcheck', 'star_border', 'star_half',\n 'stars', 'stay_primary_landscape', 'stop', 'stop_screen_share', 'storage', 'store_mall_directory',\n 'straighten', 'streetview', 'strikethrough_s', 'style',\n 'subject', 'subscriptions', 'subtitles', 'subway', 'supervisor_account', 'surround_sound', 'sync_disabled', 'sync_problem',\n 'system_update', 'system_update_alt', 'tab', 'tab_unselected', 'tablet', 'tablet_android', 'tablet_mac', 'tap_and_play',\n 'thumb_down', 'thumb_up', 'thumbs_up_down', 'timelapse',\n 'timeline', 'timer', 'timer_10', 'timer_3', 'timer_off', 'title', 'toc', 'toll', 'tonality',\n 'touch_app', 'toys', 'track_changes', 'traffic', 'train', 'tram', 'transfer_within_a_station',\n 'tune', 'tv', 'unarchive', 'update', 'usb', 'vertical_align_bottom', 'vertical_align_center', 'vertical_align_top',\n 'vibration', 'video_call', 'video_label', 'video_library', 'videocam', 'videocam_off', 'videogame_asset',\n 'vignette', 'visibility_off', 'voice_chat', 'voicemail', 'vpn_key', 'vpn_lock', 'wallpaper', 'watch', 'watch_later',\n 'wb_auto', 'wb_incandescent', 'wb_iridescent', 'wb_sunny', 'wc', 'web', 'web_asset', 'weekend', 'whatshot', 'widgets',\n 'wifi', 'wifi_lock', 'wifi_tethering', 'work', 'youtube_searched_for', 'git', 'android',\n ],\n series: [\n 'wait_one_a', 'wait_one_b', 'wait_two_a', 'wait_two_b', 'wait_three_a', 'wait_three_b',\n 'wait_four_a', 'wait_four_b', 'wait_five_a', 'wait_five_b',\n 'exposure', 'exposure_neg_1', 'exposure_neg_2', 'exposure_plus_1', 'exposure_plus_2', 'exposure_zero',\n 'filter', 'filter_1', 'filter_2', 'filter_3', 'filter_4', 'filter_5',\n 'filter_6', 'filter_7', 'filter_8', 'filter_9', 'filter_9_plus', 'filter_b_and_w', 'filter_center_focus', 'filter_drama',\n 'filter_frames', 'filter_list', 'filter_none', 'filter_tilt_shift', 'filter_vintage',\n 'keyboard', 'keyboard_arrow_down', 'keyboard_arrow_left', 'keyboard_arrow_right', 'keyboard_arrow_up', 'keyboard_backspace',\n 'keyboard_capslock', 'keyboard_hide', 'keyboard_return', 'keyboard_tab', 'keyboard_voice',\n 'looks', 'looks_one', 'looks_two', 'looks_3', 'looks_4', 'looks_5', 'looks_6',\n 'notifications', 'notifications_active', 'notifications_none', 'notifications_off', 'notifications_paused',\n 'phone_android', 'phone_android2', 'phone_bluetooth_speaker', 'phone_forwarded', 'phone_in_talk', 'phone_iphone', 'phone_locked',\n 'phone_missed', 'phone_paused', 'phonelink_erase', 'phonelink_lock', 'phonelink_off', 'phonelink_ring', 'phonelink_setup',\n 'camera', 'photo_camera', 'camera_enhance', 'camera_front', 'camera_rear', 'camera_roll', 'photo',\n 'photo_album', 'photo_filter', 'photo_size_select_actual', 'photo_size_select_large',\n 'photo_size_select_small', 'picture_as_pdf', 'picture_in_picture', 'picture_in_picture_alt',\n 'play_arrow', 'play_circle_filled', 'play_circle_outline', 'play_for_work', 'playlist_add', 'playlist_add_check', 'playlist_play',\n 'sentiment_dissatisfied', 'sentiment_neutral', 'sentiment_satisfied', 'sentiment_very_dissatisfied', 'sentiment_very_satisfied',\n 'settings', 'settings_applications', 'settings_backup_restore', 'settings_bluetooth',\n 'settings_brightness', 'settings_cell', 'settings_ethernet', 'settings_input_antenna', 'settings_input_composite',\n 'settings_input_hdmi', 'settings_input_svideo', 'settings_overscan', 'settings_phone', 'settings_power', 'settings_remote',\n 'settings_system_daydream', 'settings_voice',\n 'signal_cellular_4_bar', 'signal_cellular_connected_no_internet_4_bar',\n 'signal_cellular_null', 'signal_cellular_off', 'signal_wifi_4_bar', 'signal_wifi_4_bar_lock',\n 'signal_wifi_off', 'sim_card', 'sim_card_alert',\n 'swap_calls', 'swap_horiz', 'swap_vert', 'swap_vertical_circle', 'switch_camera', 'switch_video',\n 'view_agenda', 'view_array', 'view_carousel', 'view_column', 'view_comfy', 'view_compact', 'view_day', 'view_headline', 'view_list',\n 'view_module', 'view_quilt', 'view_stream', 'view_week', 'volume_down', 'volume_mute', 'volume_off', 'volume_up',\n ],\n};\n\nvar icons = {\n favorite: ['routeroutline', 'role_tag', 'hdr_strong', 'bar_chart', 'reply', 'class', 'manage_project', 'transfer_within_a_station', 'room_service', 'publish2', 'laptop_mac', 'developer_board', 'CI', 'content_copy', 'book', 'wrench', 'view_day', 'date_range', 'extension', 'filter_vintage', 'hdr_weak', 'dashboard', 'Operation-monitoring', 'application_model', 'folder_shared', 'delete', 'develop_console', 'agile', 'merge_request', 'task_schedule', 'link', 'settings', 'baseline-drag_indicator', 'apps', 'account_box', 'test_planning', 'donut_small', 'agile_fault', 'person', 'view_list', 'directions_run', 'instance_outline', 'password', 'inmail_template', 'error', 'vpn_key', 'classname', 'assignment_ind', 'contact_mail', 'work_log', 'speaker_notes', 'format_list_numbered', 'shuffle', 'API', 'linear_scale', 'device_hub', 'saga_define', 'devops_chart', 'table_chart', 'settings_input_composite', 'event_available', 'flip_to_back', 'kubernetes', 'notifications', 'hearing', 'authority', 'cluster', 'public', 'devops', 'account_balance', 'mail_set', 'person_add', 'record_test', 'folder', 'usermap', 'assignment_late', 'micro', 'secret', 'appmarket', 'brightness_low', 'IAM', 'test', 'message', 'project', 'local_offer', 'domain', 'router', 'settings_applications', 'style', 'polymer', 'manage_organization', 'microservice', 'description', 'jsfiddle', 'manage_person', 'transform', 'subject', 'compare_arrows', 'branch', 'root', 'auto_test', 'strikethrough_s', 'center', 'widgets', 'volume_up', 'link2', 'Development-monitoring', 'whatshot', 'message_notification', 'insert_drive_file', 'accessibility', 'youtube_searched_for', 'test_execution', 'baseline-list_alt', 'cloud_upload', 'APItest', 'build', 'assignment', 'language', 'home', 'favorite', 'filter_drama', 'flare', 'folder_special', 'tag_faces', 'lightbulb_outline', 'loyalty', 'star_border'],\n default: [],\n};\n\nObject.keys(categories).forEach(function (key) {\n icons.default.push.apply(icons.default, categories[key]);\n});\n\nexports.categories = categories;\nexports.icons = icons;\n","/*!\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","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\//.test(userAgent);\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\\/\\w+/.test(userAgent);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {this.id = null;};\n Delayed.prototype.set = function (ms, f) {\n clearTimeout(this.id);\n this.id = setTimeout(f, ms);\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 30;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n input.init(d);\n }\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n // Add a span to a line.\n function addMarkedSpan(line, span) {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) {\n var line = getLine(doc, lineNo$$1);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map$$1 = emitter._handlers || (emitter._handlers = {});\n map$$1[type] = (map$$1[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range$$1;\n try {range$$1 = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range$$1 || range$$1.parentElement() != te) { return false }\n return range$$1.compareEndPoints(\"StartToEnd\", range$$1) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var this$1 = this;\n\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n var this$1 = this;\n\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this$1.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\s)\" + lineClass[2] + \"(?:$|\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.options.gutters.length; ++k) {\n var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (node.className == \"CodeMirror-linewidget\")\n { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\");\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map$$1, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map$$1.length; i += 3) {\n mStart = map$$1[i];\n mEnd = map$$1[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map$$1[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) {\n node = map$$1[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) {\n node = map$$1[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var height = 0;\n if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n { height += widgetHeight(lineObj.widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = true; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight$$1 = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top || y >= coords.bottom;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor]);\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[cm.options.gutters[i]] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range$$1 = doc.sel.ranges[i];\n if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }\n var collapsed = range$$1.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range$$1.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range$$1, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range$$1, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range$$1.from(), sTo = range$$1.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\"; },\n cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n onBlur(cm);\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm);\n return true\n }\n return false\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;\n var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range$$1) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range$$1;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range$$1 = cm.curOp.scrollToPos;\n if (range$$1) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);\n scrollToCoordsRange(cm, from, to, range$$1.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val);\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.pointerEvents = \"auto\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt$$1 = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt$$1 != bar) { bar.style.pointerEvents = \"none\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId // Unique ID\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n var this$1 = this;\n\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this$1.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range$$1 = document.createRange();\n range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range$$1.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range$$1);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(cm) {\n var width = cm.display.gutters.offsetWidth;\n cm.display.sizer.style.marginLeft = width + \"px\";\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function updateGutters(cm) {\n var gutters = cm.display.gutters, specs = cm.options.gutters;\n removeChildren(gutters);\n var i = 0;\n for (; i < specs.length; ++i) {\n var gutterClass = specs[i];\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + gutterClass));\n if (gutterClass == \"CodeMirror-linenumbers\") {\n cm.display.lineGutter = gElt;\n gElt.style.width = (cm.display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = i ? \"\" : \"none\";\n updateGutterSpace(cm);\n }\n\n // Make sure the gutters options contains the element\n // \"CodeMirror-linenumbers\" when the lineNumbers option is true.\n function setGuttersForLineNumbers(options) {\n var found = indexOf(options.gutters, \"CodeMirror-linenumbers\");\n if (found == -1 && options.lineNumbers) {\n options.gutters = options.gutters.concat([\"CodeMirror-linenumbers\"]);\n } else if (found > -1 && !options.lineNumbers) {\n options.gutters = options.gutters.slice(0);\n options.gutters.splice(found, 1);\n }\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && wheelPixelsPerUnit != null) {\n var pixels = dy * wheelPixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n var this$1 = this;\n\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this$1.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var this$1 = this;\n\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n var this$1 = this;\n\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this$1.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n var this$1 = this;\n\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this$1.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight$$1) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight$$1);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(startGen) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = startGen || 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n var this$1 = this;\n\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm)\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n var this$1 = this;\n\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this$1;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n var this$1 = this;\n\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this$1.lines[i];\n this$1.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n var this$1 = this;\n\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n var this$1 = this;\n\n for (var e = at + n; at < e; ++at)\n { if (op(this$1.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n var this$1 = this;\n\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this$1;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n var this$1 = this;\n\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this$1.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this$1.height -= oldHeight - child.height;\n if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n var this$1 = this;\n\n for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n var this$1 = this;\n\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this$1.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this$1.children.splice(++i, 0, leaf);\n leaf.parent = this$1;\n }\n child.lines = child.lines.slice(0, remaining);\n this$1.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n var this$1 = this;\n\n for (var i = 0; i < this.children.length; ++i) {\n var child = this$1.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n var this$1 = this;\n\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this$1[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var this$1 = this;\n\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n var this$1 = this;\n\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this$1.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this$1);\n if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n var this$1 = this;\n\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this$1.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this$1);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null));\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n var this$1 = this;\n\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this$1; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n var this$1 = this;\n\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this$1.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range$$1 = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range$$1.head; }\n else if (start == \"anchor\") { pos = range$$1.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range$$1.to(); }\n else { pos = range$$1.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n var this$1 = this;\n\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this$1, ranges[i].anchor),\n clipPos(this$1, ranges[i].head)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var this$1 = this;\n\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var this$1 = this;\n\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var this$1 = this;\n\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range$$1 = sel.ranges[i];\n changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this$1, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {this.history = new History(this.history.maxGeneration);},\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history.maxGeneration);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo$$1 = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to ||\n span.from == null && lineNo$$1 != from.line ||\n span.from != null && lineNo$$1 == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo$$1;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo$$1;\n });\n return clipPos(this, Pos(lineNo$$1, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n var this$1 = this;\n\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this$1.linked[i];\n if (link.doc != other) { continue }\n this$1.linked.splice(i, 1);\n other.unlinkDoc(this$1);\n detachSharedMarkers(findSharedMarkers(this$1));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var loadFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1)\n { return }\n\n var reader = new FileReader;\n reader.onload = operation(cm, function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) { content = \"\"; }\n text[i] = content;\n if (++read == n) {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));\n }\n });\n reader.readAsText(file);\n };\n for (var i = 0; i < n; ++i) { loadFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 127: \"Delete\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\",\n \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map$$1, handle, context) {\n map$$1 = getKeyMap(map$$1);\n var found = map$$1.call ? map$$1.call(key, context) : map$$1[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map$$1.fallthrough) {\n if (Object.prototype.toString.call(map$$1.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map$$1.fallthrough, handle, context) }\n for (var i = 0; i < map$$1.fallthrough.length; i++) {\n var result = lookupKey(key, map$$1.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Cmd\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"char\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(0, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if (webkit || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n delayBlurEvent(cm);\n setTimeout(function () { return display.input.focus(); }, 20);\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range$$1 = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); }\n else\n { ourRange = range$$1; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range$$1 = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range$$1.anchor, anchor) > 0) {\n head = range$$1.head;\n anchor = minPos(oldRange.from(), range$$1.anchor);\n } else {\n head = range$$1.anchor;\n anchor = maxPos(oldRange.to(), range$$1.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n e_preventDefault(e);\n display.input.focus();\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range$$1) {\n var anchor = range$$1.anchor;\n var head = range$$1.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }\n var order = getOrder(anchorLine);\n if (!order) { return range$$1 }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range$$1 }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.options.gutters.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.options.gutters[i];\n signal(cm, type, cm, line, gutter, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n guttersChanged(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm) {\n setGuttersForLineNumbers(cm.options);\n guttersChanged(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm) {\n setGuttersForLineNumbers(cm.options);\n guttersChanged(cm);\n }, true);\n option(\"firstLineNumber\", 1, guttersChanged, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, guttersChanged, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function guttersChanged(cm) {\n updateGutters(cm);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n setGuttersForLineNumbers(options);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input);\n display.wrapper.CodeMirror = this;\n updateGutters(this);\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(bind(onFocus, this), 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this$1, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range$$1 = sel.ranges[i$1];\n var from = range$$1.from(), to = range$$1.to();\n if (range$$1.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == inserted)\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput)\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range$$1 = sel.ranges[i];\n if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue }\n var mode = cm.getModeAt(range$$1.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range$$1.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch)))\n { indented = indentLine(cm, range$$1.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range$$1.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", !!autocorrect);\n field.setAttribute(\"autocapitalize\", !!autocapitalize);\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map$$1, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map$$1));\n },\n removeKeyMap: function(map$$1) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map$$1 || maps[i].name == map$$1) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var this$1 = this;\n\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this$1.state.modeGen++;\n regChange(this$1);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var this$1 = this;\n\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range$$1 = ranges[i];\n if (!range$$1.empty()) {\n var from = range$$1.from(), to = range$$1.to();\n var start = Math.max(end, from.line);\n end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this$1, j, how); }\n var newRanges = this$1.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range$$1.head.line > end) {\n indentLine(this$1, range$$1.head.line, how, true);\n end = range$$1.head.line;\n if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var this$1 = this;\n\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range$$1 = this.doc.sel.primary();\n if (start == null) { pos = range$$1.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range$$1.from() : range$$1.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var this$1 = this;\n\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this$1.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range$$1) {\n if (this$1.display.shift || this$1.doc.extend || range$$1.empty())\n { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range$$1.from() : range$$1.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range$$1) {\n var other = findPosH(doc, range$$1.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var this$1 = this;\n\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this$1, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this$1, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range$$1) {\n if (collapse)\n { return dir < 0 ? range$$1.from() : range$$1.to() }\n var headPos = cursorCoords(this$1, range$$1.head, \"div\");\n if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range$$1 == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range$$1, margin) {\n if (range$$1 == null) {\n range$$1 = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range$$1 == \"number\") {\n range$$1 = {from: Pos(range$$1, 0), to: null};\n } else if (range$$1.from == null) {\n range$$1 = {from: range$$1, to: null};\n }\n if (!range$$1.to) { range$$1.to = range$$1.from; }\n range$$1.margin = margin || 0;\n\n if (range$$1.from.line != null) {\n scrollToRange(this, range$$1);\n } else {\n scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo$$1 = this.display.viewFrom;\n this.doc.iter(lineNo$$1, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, \"widget\"); break } } }\n ++lineNo$$1;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"char\", \"column\" (like char, but doesn't\n // cross line boundaries), \"word\" (across next word), or \"group\" (to\n // the start of next group of word or non-word-non-whitespace\n // chars). The visually param controls whether, in right-to-left\n // text, direction 1 means to move towards the next index in the\n // string, or towards the character to the right of the current\n // position. The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n function findNextLine() {\n var l = pos.line + dir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, dir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n on(div, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = document.activeElement;\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = this.cm.state.focused;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor())\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var input = this;\n if (this.selectionInEditor())\n { this.pollSelection(); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.options.gutters.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range$$1;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range$$1 = found[0].find(0)))\n { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map$$1 = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map$$1.length; j += 3) {\n var curNode = map$$1[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map$$1[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.44.0\";\n\n return CodeMirror;\n\n})));\n","/**\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","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};","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nrequire('../modules/es7.map.to-json');\nrequire('../modules/es7.map.of');\nrequire('../modules/es7.map.from');\nmodule.exports = require('../modules/_core').Map;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nrequire('../modules/es7.set.of');\nrequire('../modules/es7.set.from');\nmodule.exports = require('../modules/_core').Set;\n","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","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\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","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\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","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\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 NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\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 toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\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.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","// 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","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","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\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","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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\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 hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\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 document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\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","// 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","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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","'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","'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 = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = 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","'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","// 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 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","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 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","// 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","// 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","exports.f = Object.getOwnPropertySymbols;\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","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","// 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","exports.f = {}.propertyIsEnumerable;\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","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = require('./_hide');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\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","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: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\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","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","// 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","// 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","// 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","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\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 id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\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","exports.f = require('./_wks');\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","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","'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","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\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';\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","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\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","/**\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\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\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","/**\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","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;","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\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\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\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\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\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; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\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); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\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\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\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\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\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\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\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\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\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\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\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( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\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\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\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\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\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\n\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\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\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\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element) {\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; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // 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); // add border\n\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, // 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\n el = getOffsetParent(el);\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\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\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; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (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\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\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\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\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\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\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\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\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\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}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\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\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\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\n var visibleRect = getVisibleRectForElement(source); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\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 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\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n points = align.points;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n\n\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) {\n var visibleRect = getVisibleRectForElement(target);\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}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\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\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n 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; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\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","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","/**\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","/**\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","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","\"use strict\";\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\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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 emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","/**\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;","/**\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\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\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 = emptyFunction;\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\nmodule.exports = warning;","'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","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nmodule.exports = baseDelay;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nmodule.exports = defaultTo;\n","var baseDelay = require('./_baseDelay'),\n baseRest = require('./_baseRest');\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nmodule.exports = defer;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var createFind = require('./_createFind'),\n findLastIndex = require('./findLastIndex');\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nmodule.exports = findLast;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\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});\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 if (!(0, _shallowequal2.default)(_this.state.subscribed, nextState)) {\n _this.setState({ subscribed: nextState });\n }\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: '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\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}","'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;","import { spy, observable, computed, getDependencyTree, Reaction, runInAction, transaction, configure } from 'mobx';\nimport React, { useState, useRef, useMemo, useEffect, useCallback, useDebugValue, memo, forwardRef } from 'react';\n\nif (!useState) {\r\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\r\n}\r\nif (!spy) {\r\n throw new Error(\"mobx-react-lite requires mobx at least version 4 to be available\");\r\n}\n\nfunction useObservable(initialValue) {\r\n var observableRef = useRef(null);\r\n if (!observableRef.current) {\r\n observableRef.current = observable(initialValue);\r\n }\r\n return observableRef.current;\r\n}\n\nfunction useComputed(func, inputs) {\r\n if (inputs === void 0) { inputs = []; }\r\n var computed$1 = useMemo(function () { return computed(func); }, inputs);\r\n return computed$1.get();\r\n}\n\nvar doNothingDisposer = function () {\r\n // empty\r\n};\r\n/**\r\n * Adds an observable effect (reaction, autorun, or anything else that returns a disposer) that will be registered upon component creation and disposed upon unmounting.\r\n * Returns the generated disposer for early disposal.\r\n *\r\n * @export\r\n * @template D\r\n * @param {() => D} disposerGenerator A function that returns the disposer of the wanted effect.\r\n * @param {ReadonlyArray<any>} [inputs=[]] If you want the effect to be automatically re-created when some variable(s) are changed then pass them in this array.\r\n * @returns {D}\r\n */\r\nfunction useDisposable(disposerGenerator, inputs) {\r\n if (inputs === void 0) { inputs = []; }\r\n var disposerRef = useRef(null);\r\n var earlyDisposedRef = useRef(false);\r\n useEffect(function () {\r\n return lazyCreateDisposer(false);\r\n }, inputs);\r\n function lazyCreateDisposer(earlyDisposal) {\r\n // ensure that we won't create a new disposer if it was early disposed\r\n if (earlyDisposedRef.current) {\r\n return doNothingDisposer;\r\n }\r\n if (!disposerRef.current) {\r\n var newDisposer = disposerGenerator();\r\n if (typeof newDisposer !== \"function\") {\r\n var error = new Error(\"generated disposer must be a function\");\r\n {\r\n // tslint:disable-next-line:no-console\r\n console.error(error);\r\n return doNothingDisposer;\r\n }\r\n }\r\n disposerRef.current = newDisposer;\r\n }\r\n return function () {\r\n if (disposerRef.current) {\r\n disposerRef.current();\r\n disposerRef.current = null;\r\n }\r\n if (earlyDisposal) {\r\n earlyDisposedRef.current = true;\r\n }\r\n };\r\n }\r\n return lazyCreateDisposer(true);\r\n}\n\nvar globalIsUsingStaticRendering = false;\r\nfunction useStaticRendering(enable) {\r\n globalIsUsingStaticRendering = enable;\r\n}\r\nfunction isUsingStaticRendering() {\r\n return globalIsUsingStaticRendering;\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __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\nfunction __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}\n\nfunction printDebugValue(v) {\r\n if (!v.current) {\r\n return \"<unknown>\";\r\n }\r\n return getDependencyTree(v.current);\r\n}\n\nvar EMPTY_ARRAY = [];\r\nfunction useUnmount(fn) {\r\n useEffect(function () { return fn; }, EMPTY_ARRAY);\r\n}\r\nfunction useForceUpdate() {\r\n var _a = __read(useState(0), 2), setTick = _a[1];\r\n var update = useCallback(function () {\r\n setTick(function (tick) { return tick + 1; });\r\n }, []);\r\n return update;\r\n}\r\nfunction isPlainObject(value) {\r\n if (!value || typeof value !== \"object\") {\r\n return false;\r\n }\r\n var proto = Object.getPrototypeOf(value);\r\n return !proto || proto === Object.prototype;\r\n}\n\nvar EMPTY_OBJECT = {};\r\nfunction useObserver(fn, baseComponentName, options) {\r\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\r\n if (options === void 0) { options = EMPTY_OBJECT; }\r\n if (isUsingStaticRendering()) {\r\n return fn();\r\n }\r\n var wantedForceUpdateHook = options.useForceUpdate || useForceUpdate;\r\n var forceUpdate = wantedForceUpdateHook();\r\n var reaction = useRef(null);\r\n if (!reaction.current) {\r\n reaction.current = new Reaction(\"observer(\" + baseComponentName + \")\", function () {\r\n forceUpdate();\r\n });\r\n }\r\n var dispose = function () {\r\n if (reaction.current && !reaction.current.isDisposed) {\r\n reaction.current.dispose();\r\n reaction.current = null;\r\n }\r\n };\r\n useDebugValue(reaction, printDebugValue);\r\n useUnmount(function () {\r\n dispose();\r\n });\r\n // render the original component, but have the\r\n // reaction track the observables, so that rendering\r\n // can be invalidated (see above) once a dependency changes\r\n var rendering;\r\n var exception;\r\n reaction.current.track(function () {\r\n try {\r\n rendering = fn();\r\n }\r\n catch (e) {\r\n exception = e;\r\n }\r\n });\r\n if (exception) {\r\n dispose();\r\n throw exception; // re-throw any exceptions catched during rendering\r\n }\r\n return rendering;\r\n}\n\n// n.b. base case is not used for actual typings or exported in the typing files\r\nfunction observer(baseComponent, options) {\r\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\r\n if (isUsingStaticRendering()) {\r\n return baseComponent;\r\n }\r\n var realOptions = __assign({ forwardRef: false }, options);\r\n var baseComponentName = baseComponent.displayName || baseComponent.name;\r\n var wrappedComponent = function (props, ref) {\r\n return useObserver(function () { return baseComponent(props, ref); }, baseComponentName);\r\n };\r\n wrappedComponent.displayName = baseComponentName;\r\n // memo; we are not intested in deep updates\r\n // in props; we assume that if deep objects are changed,\r\n // this is in observables, which would have been tracked anyway\r\n var memoComponent;\r\n if (realOptions.forwardRef) {\r\n // we have to use forwardRef here because:\r\n // 1. it cannot go before memo, only after it\r\n // 2. forwardRef converts the function into an actual component, so we can't let the baseComponent do it\r\n // since it wouldn't be a callable function anymore\r\n memoComponent = memo(forwardRef(wrappedComponent));\r\n }\r\n else {\r\n memoComponent = memo(wrappedComponent);\r\n }\r\n copyStaticProperties(baseComponent, memoComponent);\r\n memoComponent.displayName = baseComponentName;\r\n return memoComponent;\r\n}\r\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\r\nvar hoistBlackList = {\r\n $$typeof: true,\r\n render: true,\r\n compare: true,\r\n type: true\r\n};\r\nfunction copyStaticProperties(base, target) {\r\n Object.keys(base).forEach(function (key) {\r\n if (base.hasOwnProperty(key) && !hoistBlackList[key]) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\r\n }\r\n });\r\n}\n\nfunction ObserverComponent(_a) {\r\n var children = _a.children, render = _a.render;\r\n var component = children || render;\r\n if (typeof component !== \"function\") {\r\n return null;\r\n }\r\n return useObserver(component);\r\n}\r\nObserverComponent.propTypes = {\r\n children: ObserverPropsCheck,\r\n render: ObserverPropsCheck\r\n};\r\nObserverComponent.displayName = \"Observer\";\r\nfunction ObserverPropsCheck(props, key, componentName, location, propFullName) {\r\n var extraKey = key === \"children\" ? \"render\" : \"children\";\r\n var hasProp = typeof props[key] === \"function\";\r\n var hasExtraProp = typeof props[extraKey] === \"function\";\r\n if (hasProp && hasExtraProp) {\r\n return new Error(\"MobX Observer: Do not use children and render in the same time in`\" + componentName);\r\n }\r\n if (hasProp || hasExtraProp) {\r\n return null;\r\n }\r\n return new Error(\"Invalid prop `\" +\r\n propFullName +\r\n \"` of type `\" +\r\n typeof props[key] +\r\n \"` supplied to\" +\r\n \" `\" +\r\n componentName +\r\n \"`, expected `function`.\");\r\n}\n\nfunction useAsObservableSourceInternal(current, usedByLocalStore) {\r\n if (usedByLocalStore && current === undefined) {\r\n return undefined;\r\n }\r\n var _a = __read(React.useState(function () { return observable(current, {}, { deep: false }); }), 1), res = _a[0];\r\n runInAction(function () {\r\n Object.assign(res, current);\r\n });\r\n return res;\r\n}\r\nfunction useAsObservableSource(current) {\r\n return useAsObservableSourceInternal(current, false);\r\n}\n\nfunction useLocalStore(initializer, current) {\r\n var source = useAsObservableSourceInternal(current, true);\r\n return React.useState(function () {\r\n var local = observable(initializer(source));\r\n if (isPlainObject(local)) {\r\n runInAction(function () {\r\n Object.keys(local).forEach(function (key) {\r\n var value = local[key];\r\n if (typeof value === \"function\") {\r\n // @ts-ignore No idea why ts2536 is popping out here\r\n local[key] = wrapInTransaction(value, local);\r\n }\r\n });\r\n });\r\n }\r\n return local;\r\n })[0];\r\n}\r\n// tslint:disable-next-line: ban-types\r\nfunction wrapInTransaction(fn, context) {\r\n return function () {\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 transaction(function () { return fn.apply(context, args); });\r\n };\r\n}\n\nvar optimizeScheduler = function (reactionScheduler) {\r\n if (typeof reactionScheduler === \"function\") {\r\n configure({ reactionScheduler: reactionScheduler });\r\n }\r\n};\n\nexport { ObserverComponent as Observer, isUsingStaticRendering, observer, optimizeScheduler, useAsObservableSource, useComputed, useDisposable, useForceUpdate, useLocalStore, useObservable, useObserver, useStaticRendering };\n","import{unstable_batchedUpdates as e}from\"react-dom\";import{isUsingStaticRendering as r,observer as t,Observer as o}from\"mobx-react-lite\";export{Observer,useObserver,useAsObservableSource,useLocalStore,isUsingStaticRendering,useStaticRendering}from\"mobx-react-lite\";import n,{PureComponent as i,Component as a,forwardRef as c,memo as s,createElement as u}from\"react\";import{createAtom as f,_allowStateChanges as p,Reaction as l,$mobx as b,isObservableArray as y,isObservableObject as d,isObservableMap as h,untracked as m,observable as v,configure as O}from\"mobx\";var g=0,w={};function j(e){return w[e]||(w[e]=function(e){if(\"function\"==typeof Symbol)return Symbol(e);var r=\"__$mobx-react \"+e+\" (\"+g+\")\";return g++,r}(e)),w[e]}function x(e,r){if(P(e,r))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof r||null===r)return!1;var t=Object.keys(e),o=Object.keys(r);if(t.length!==o.length)return!1;for(var n=0;n<t.length;n++)if(!hasOwnProperty.call(r,t[n])||!P(e[t[n]],r[t[n]]))return!1;return!0}function P(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}var E={$$typeof:1,render:1,compare:1,type:1,childContextTypes:1,contextType:1,contextTypes:1,defaultProps:1,getDefaultProps:1,getDerivedStateFromError:1,getDerivedStateFromProps:1,mixins:1,propTypes:1};function S(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var R=j(\"patchMixins\"),k=j(\"patchedDefinition\");function A(e,r){for(var t=this,o=[],n=arguments.length-2;n-- >0;)o[n]=arguments[n+2];r.locks++;try{var i;return null!=e&&(i=e.apply(this,o)),i}finally{r.locks--,0===r.locks&&r.methods.forEach(function(e){e.apply(t,o)})}}function C(e,r){return function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];A.call.apply(A,[this,e,r].concat(t))}}function U(e,r,t){var o=function(e,r){var t=e[R]=e[R]||{},o=t[r]=t[r]||{};return o.locks=o.locks||0,o.methods=o.methods||[],o}(e,r);o.methods.indexOf(t)<0&&o.methods.push(t);var n=Object.getOwnPropertyDescriptor(e,r);if(!n||!n[k]){var i=function e(r,t,o,n,i){var a,c=C(i,n);return(a={})[k]=!0,a.get=function(){return c},a.set=function(i){if(this===r)c=C(i,n);else{var a=e(this,t,o,n,i);Object.defineProperty(this,t,a)}},a.configurable=!0,a.enumerable=o,a}(e,r,n?n.enumerable:void 0,o,e[r]);Object.defineProperty(e,r,i)}}var M=b||\"$mobx\",$=j(\"isUnmounted\"),_=j(\"skipRender\"),T=j(\"isForcingUpdate\");function N(e,t){return r()&&console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"),this.state!==t||!x(this.props,e)}function D(e,r){var t=j(\"reactProp_\"+r+\"_valueHolder\"),o=j(\"reactProp_\"+r+\"_atomHolder\");function n(){return this[o]||S(this,o,f(\"reactive \"+r)),this[o]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){return n.call(this).reportObserved(),this[t]},set:function(e){this[T]||x(this[t],e)?S(this,t,e):(S(this,t,e),S(this,_,!0),n.call(this).reportChanged(),S(this,_,!1))}})}var I=\"function\"==typeof Symbol&&Symbol.for,q=I?Symbol.for(\"react.forward_ref\"):\"function\"==typeof c&&c(function(){}).$$typeof,F=I?Symbol.for(\"react.memo\"):\"function\"==typeof s&&s(function(){}).$$typeof;function W(e){if(!0===e.isMobxInjector&&console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"),F&&e.$$typeof===F)throw new Error(\"Mobx observer: You are trying to use 'observer' on function component wrapped to either another observer or 'React.memo'. The observer already applies 'React.memo' for you.\");if(q&&e.$$typeof===q){var s=e.render;if(\"function\"!=typeof s)throw new Error(\"render property of ForwardRef was not a function\");return c(function(){var e=arguments;return n.createElement(o,null,function(){return s.apply(void 0,e)})})}return\"function\"!=typeof e||e.prototype&&e.prototype.render||e.isReactClass||Object.prototype.isPrototypeOf.call(a,e)?function(e){var t=e.prototype;if(t.componentWillReact)throw new Error(\"The componentWillReact life-cycle event is no longer supported\");if(e.__proto__!==i)if(t.shouldComponentUpdate){if(t.shouldComponentUpdate!==N)throw new Error(\"It is not allowed to use shouldComponentUpdate in observer based components.\")}else t.shouldComponentUpdate=N;D(t,\"props\"),D(t,\"state\");var o=t.render;return t.render=function(){return function(e){var t=this;if(!0===r())return e.call(this);S(this,_,!1),S(this,T,!1);var o=this.displayName||this.name||this.constructor&&(this.constructor.displayName||this.constructor.name)||\"<component>\",n=e.bind(this),i=!1,c=new l(o+\".render()\",function(){if(!i&&(i=!0,!0!==t[$])){var e=!0;try{S(t,T,!0),t[_]||a.prototype.forceUpdate.call(t),e=!1}finally{S(t,T,!1),e&&c.dispose()}}});function s(){i=!1;var e=void 0,r=void 0;if(c.track(function(){try{r=p(!1,n)}catch(r){e=r}}),e)throw e;return r}return c.reactComponent=this,s[M]=c,this.render=s,s.call(this)}.call(this,o)},U(t,\"componentWillUnmount\",function(){!0!==r()&&(this.render[M]&&this.render[M].dispose(),this[$]=!0)}),e}(e):t(e)}var L=n.createContext({});function X(e){var r=e.children,t=function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===r.indexOf(o)&&(t[o]=e[o]);return t}(e,[\"children\"]),o=n.useContext(L),i=n.useRef(Object.assign({},o,t)).current;if(\"production\"!==process.env.NODE_ENV&&!x(i,Object.assign({},i,t)))throw new Error(\"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\");return n.createElement(L.Provider,{value:i},r)}function H(e,r,t,o){var i,a,c,s=n.forwardRef(function(t,o){var i=Object.assign({},t),a=n.useContext(L);return Object.assign(i,e(a||{},i)||{}),o&&(i.ref=o),u(r,i)});return o&&(s=W(s)),s.isMobxInjector=!0,i=r,a=s,c=Object.getOwnPropertyNames(Object.getPrototypeOf(i)),Object.getOwnPropertyNames(i).forEach(function(e){E[e]||-1!==c.indexOf(e)||Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(i,e))}),s.wrappedComponent=r,s.displayName=function(e,r){var t=e.displayName||e.name||e.constructor&&e.constructor.name||\"Component\";return r?\"inject-with-\"+r+\"(\"+t+\")\":\"inject(\"+t+\")\"}(r,t),s}function Y(){for(var e,r=[],t=arguments.length;t--;)r[t]=arguments[t];return\"function\"==typeof arguments[0]?(e=arguments[0],function(r){return H(e,r,e.name,!0)}):function(e){return H(function(e){return function(r,t){return e.forEach(function(e){if(!(e in t)){if(!(e in r))throw new Error(\"MobX injector: Store '\"+e+\"' is not available! Make sure it is provided by some Provider\");t[e]=r[e]}}),t}}(r),e,r.join(\"-\"),!1)}}X.displayName=\"MobXProvider\";var V=j(\"disposeOnUnmountProto\"),z=j(\"disposeOnUnmountInst\");function B(){var e=this;(this[V]||[]).concat(this[z]||[]).forEach(function(r){var t=\"string\"==typeof r?e[r]:r;null!=t&&(Array.isArray(t)?t.map(function(e){return e()}):t())})}function G(e,r){if(Array.isArray(r))return r.map(function(r){return G(e,r)});var t=Object.getPrototypeOf(e).constructor||Object.getPrototypeOf(e.constructor),o=Object.getPrototypeOf(e.constructor);if(t!==a&&t!==i&&o!==a&&o!==i)throw new Error(\"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\");if(\"string\"!=typeof r&&\"function\"!=typeof r&&!Array.isArray(r))throw new Error(\"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\");var n=!!e[V]||!!e[z];return(\"string\"==typeof r?e[V]||(e[V]=[]):e[z]||(e[z]=[])).push(r),n||U(e,\"componentWillUnmount\",B),\"string\"!=typeof r?r:void 0}function J(e){function r(r,t,o,n,i,a){for(var c=[],s=arguments.length-6;s-- >0;)c[s]=arguments[s+6];return m(function(){return n=n||\"<<anonymous>>\",a=a||o,null==t[o]?r?new Error(\"The \"+i+\" `\"+a+\"` is marked as required in `\"+n+\"`, but its value is `\"+(null===t[o]?\"null\":\"undefined\")+\"`.\"):null:e.apply(void 0,[t,o,n,i,a].concat(c))})}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function K(e){var r=typeof e;return Array.isArray(e)?\"array\":e instanceof RegExp?\"object\":function(e,r){return\"symbol\"===e||\"Symbol\"===r[\"@@toStringTag\"]||\"function\"==typeof Symbol&&r instanceof Symbol}(r,e)?\"symbol\":r}function Q(e,r){return J(function(t,o,n,i,a){return m(function(){if(e&&K(t[o])===r.toLowerCase())return null;var i;switch(r){case\"Array\":i=y;break;case\"Object\":i=d;break;case\"Map\":i=h;break;default:throw new Error(\"Unexpected mobxType: \"+r)}var c=t[o];if(!i(c)){var s=function(e){var r=K(e);if(\"object\"===r){if(e instanceof Date)return\"date\";if(e instanceof RegExp)return\"regexp\"}return r}(c),u=e?\" or javascript `\"+r.toLowerCase()+\"`\":\"\";return new Error(\"Invalid prop `\"+a+\"` of type `\"+s+\"` supplied to `\"+n+\"`, expected `mobx.Observable\"+r+\"`\"+u+\".\")}return null})})}function Z(e,r){return J(function(t,o,n,i,a){for(var c=[],s=arguments.length-5;s-- >0;)c[s]=arguments[s+5];return m(function(){if(\"function\"!=typeof r)return new Error(\"Property `\"+a+\"` of component `\"+n+\"` has invalid PropType notation.\");var s=Q(e,\"Array\")(t,o,n);if(s instanceof Error)return s;for(var u=t[o],f=0;f<u.length;f++)if((s=r.apply(void 0,[u,f,n,i,a+\"[\"+f+\"]\"].concat(c)))instanceof Error)return s;return null})})}var ee={observableArray:Q(!1,\"Array\"),observableArrayOf:Z.bind(null,!1),observableMap:Q(!1,\"Map\"),observableObject:Q(!1,\"Object\"),arrayOrObservableArray:Q(!0,\"Array\"),arrayOrObservableArrayOf:Z.bind(null,!0),objectOrObservableObject:Q(!0,\"Object\")};if(!a)throw new Error(\"mobx-react requires React to be available\");if(!v)throw new Error(\"mobx-react requires mobx to be available\");\"function\"==typeof e&&O({reactionScheduler:e});export{W as observer,X as Provider,L as MobXProviderContext,Y as inject,G as disposeOnUnmount,ee as PropTypes};\n//# sourceMappingURL=mobx-react.module.js.map\n","// mutationobserver-shim v0.3.2 (github.com/megawac/MutationObserver.js)\n// Authors: Graeme Yeates (github.com/megawac) \nwindow.MutationObserver=window.MutationObserver||function(w){function v(a){this.i=[];this.m=a}function I(a){(function c(){var d=a.takeRecords();d.length&&a.m(d,a);a.h=setTimeout(c,v._period)})()}function p(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]!==w&&a[c]!==w&&(b[c]=a[c]);return b}function J(a,b){var c=C(a,b);return function(d){var f=d.length,n;b.a&&3===a.nodeType&&\na.nodeValue!==c.a&&d.push(new p({type:\"characterData\",target:a,oldValue:c.a}));b.b&&c.b&&A(d,a,c.b,b.f);if(b.c||b.g)n=K(d,a,c,b);if(n||d.length!==f)c=C(a,b)}}function L(a,b){return b.value}function M(a,b){return\"style\"!==b.name?b.value:a.style.cssText}function A(a,b,c,d){for(var f={},n=b.attributes,k,g,x=n.length;x--;)k=n[x],g=k.name,d&&d[g]===w||(D(b,k)!==c[g]&&a.push(p({type:\"attributes\",target:b,attributeName:g,oldValue:c[g],attributeNamespace:k.namespaceURI})),f[g]=!0);for(g in c)f[g]||a.push(p({target:b,\ntype:\"attributes\",attributeName:g,oldValue:c[g]}))}function K(a,b,c,d){function f(b,c,f,k,y){var g=b.length-1;y=-~((g-y)/2);for(var h,l,e;e=b.pop();)h=f[e.j],l=k[e.l],d.c&&y&&Math.abs(e.j-e.l)>=g&&(a.push(p({type:\"childList\",target:c,addedNodes:[h],removedNodes:[h],nextSibling:h.nextSibling,previousSibling:h.previousSibling})),y--),d.b&&l.b&&A(a,h,l.b,d.f),d.a&&3===h.nodeType&&h.nodeValue!==l.a&&a.push(p({type:\"characterData\",target:h,oldValue:l.a})),d.g&&n(h,l)}function n(b,c){for(var g=b.childNodes,\nq=c.c,x=g.length,v=q?q.length:0,h,l,e,m,t,z=0,u=0,r=0;u<x||r<v;)m=g[u],t=(e=q[r])&&e.node,m===t?(d.b&&e.b&&A(a,m,e.b,d.f),d.a&&e.a!==w&&m.nodeValue!==e.a&&a.push(p({type:\"characterData\",target:m,oldValue:e.a})),l&&f(l,b,g,q,z),d.g&&(m.childNodes.length||e.c&&e.c.length)&&n(m,e),u++,r++):(k=!0,h||(h={},l=[]),m&&(h[e=E(m)]||(h[e]=!0,-1===(e=F(q,m,r,\"node\"))?d.c&&(a.push(p({type:\"childList\",target:b,addedNodes:[m],nextSibling:m.nextSibling,previousSibling:m.previousSibling})),z++):l.push({j:u,l:e})),\nu++),t&&t!==g[u]&&(h[e=E(t)]||(h[e]=!0,-1===(e=F(g,t,u))?d.c&&(a.push(p({type:\"childList\",target:c.node,removedNodes:[t],nextSibling:q[r+1],previousSibling:q[r-1]})),z--):l.push({j:e,l:r})),r++));l&&f(l,b,g,q,z)}var k;n(b,c);return k}function C(a,b){var c=!0;return function f(a){var k={node:a};!b.a||3!==a.nodeType&&8!==a.nodeType?(b.b&&c&&1===a.nodeType&&(k.b=G(a.attributes,function(c,f){if(!b.f||b.f[f.name])c[f.name]=D(a,f);return c})),c&&(b.c||b.a||b.b&&b.g)&&(k.c=N(a.childNodes,f)),c=b.g):k.a=\na.nodeValue;return k}(a)}function E(a){try{return a.id||(a.mo_id=a.mo_id||H++)}catch(b){try{return a.nodeValue}catch(c){return H++}}}function N(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=b(a[d],d,a);return c}function G(a,b){for(var c={},d=0;d<a.length;d++)c=b(c,a[d],d,a);return c}function F(a,b,c,d){for(;c<a.length;c++)if((d?a[c][d]:a[c])===b)return c;return-1}v._period=30;v.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=G(b.attributeFilter,function(a,b){a[b]=!0;return a}));d.push({s:a,o:J(a,c)});this.h||I(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 B=document.createElement(\"i\");B.style.top=0;var D=(B=\"null\"!=B.attributes.style.value)?L:M,H=1;return v}(void 0);\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","// 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","// 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","/**\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 printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\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\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","/**\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';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\n\nvar _extends = Object.assign || 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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n} : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar __extends = undefined && undefined.__extends || function() {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n }\n instanceof Array && function(d, b) {\n d.__proto__ = b;\n } || function(d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return function(d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar React = require('react');\nvar SERVER_RENDERED = typeof navigator === 'undefined' || global['PREVENT_CODEMIRROR_RENDER'] === true;\nvar cm;\nif (!SERVER_RENDERED) {\n cm = require('codemirror');\n}\nvar Helper = function() {\n function Helper() {}\n Helper.equals = function(x, y) {\n var _this = this;\n var ok = Object.keys,\n tx = typeof x === 'undefined' ? 'undefined' : _typeof(x),\n ty = typeof y === 'undefined' ? 'undefined' : _typeof(y);\n return x && y && tx === 'object' && tx === ty ? ok(x).length === ok(y).length && ok(x).every(function(key) {\n return _this.equals(x[key], y[key]);\n }) : x === y;\n };\n return Helper;\n}();\nvar Shared = function() {\n function Shared(editor, props) {\n this.editor = editor;\n this.props = props;\n }\n Shared.prototype.delegateCursor = function(position, scroll, focus) {\n var doc = this.editor.getDoc();\n if (focus) {\n this.editor.focus();\n }\n scroll ? doc.setCursor(position) : doc.setCursor(position, null, {\n scroll: false\n });\n };\n Shared.prototype.delegateScroll = function(coordinates) {\n this.editor.scrollTo(coordinates.x, coordinates.y);\n };\n Shared.prototype.delegateSelection = function(ranges, focus) {\n this.editor.setSelections(ranges);\n if (focus) {\n this.editor.focus();\n }\n };\n Shared.prototype.apply = function(props) {\n if (props && props.selection && props.selection.ranges) {\n this.delegateSelection(props.selection.ranges, props.selection.focus || false);\n }\n if (props && props.cursor) {\n this.delegateCursor(props.cursor, props.autoScroll || false, this.editor.getOption('autofocus') || false);\n }\n if (props && props.scroll) {\n this.delegateScroll(props.scroll);\n }\n };\n Shared.prototype.applyNext = function(props, next, preserved) {\n if (props && props.selection && props.selection.ranges) {\n if (next && next.selection && next.selection.ranges && !Helper.equals(props.selection.ranges, next.selection.ranges)) {\n this.delegateSelection(next.selection.ranges, next.selection.focus || false);\n }\n }\n if (props && props.cursor) {\n if (next && next.cursor && !Helper.equals(props.cursor, next.cursor)) {\n this.delegateCursor(preserved.cursor || next.cursor, next.autoScroll || false, next.autoCursor || false);\n }\n }\n if (props && props.scroll) {\n if (next && next.scroll && !Helper.equals(props.scroll, next.scroll)) {\n this.delegateScroll(next.scroll);\n }\n }\n };\n Shared.prototype.applyUserDefined = function(props, preserved) {\n if (preserved && preserved.cursor) {\n this.delegateCursor(preserved.cursor, props.autoScroll || false, this.editor.getOption('autofocus') || false);\n }\n };\n Shared.prototype.wire = function(props) {\n var _this = this;\n Object.keys(props || {}).filter(function(p) {\n return (/^on/.test(p));\n }).forEach(function(prop) {\n switch (prop) {\n case 'onBlur':\n {\n _this.editor.on('blur', function(cm, event) {\n _this.props.onBlur(_this.editor, event);\n });\n }\n break;\n case 'onContextMenu':\n {\n _this.editor.on('contextmenu', function(cm, event) {\n _this.props.onContextMenu(_this.editor, event);\n });\n break;\n }\n case 'onCopy':\n {\n _this.editor.on('copy', function(cm, event) {\n _this.props.onCopy(_this.editor, event);\n });\n break;\n }\n case 'onCursor':\n {\n _this.editor.on('cursorActivity', function(cm) {\n _this.props.onCursor(_this.editor, _this.editor.getCursor());\n });\n }\n break;\n case 'onCursorActivity':\n {\n _this.editor.on('cursorActivity', function(cm) {\n _this.props.onCursorActivity(_this.editor);\n });\n }\n break;\n case 'onCut':\n {\n _this.editor.on('cut', function(cm, event) {\n _this.props.onCut(_this.editor, event);\n });\n break;\n }\n case 'onDblClick':\n {\n _this.editor.on('dblclick', function(cm, event) {\n _this.props.onDblClick(_this.editor, event);\n });\n break;\n }\n case 'onDragEnter':\n {\n _this.editor.on('dragenter', function(cm, event) {\n _this.props.onDragEnter(_this.editor, event);\n });\n }\n break;\n case 'onDragLeave':\n {\n _this.editor.on('dragleave', function(cm, event) {\n _this.props.onDragLeave(_this.editor, event);\n });\n break;\n }\n case 'onDragOver':\n {\n _this.editor.on('dragover', function(cm, event) {\n _this.props.onDragOver(_this.editor, event);\n });\n }\n break;\n case 'onDragStart':\n {\n _this.editor.on('dragstart', function(cm, event) {\n _this.props.onDragStart(_this.editor, event);\n });\n break;\n }\n case 'onDrop':\n {\n _this.editor.on('drop', function(cm, event) {\n _this.props.onDrop(_this.editor, event);\n });\n }\n break;\n case 'onFocus':\n {\n _this.editor.on('focus', function(cm, event) {\n _this.props.onFocus(_this.editor, event);\n });\n }\n break;\n case 'onGutterClick':\n {\n _this.editor.on('gutterClick', function(cm, lineNumber, gutter, event) {\n _this.props.onGutterClick(_this.editor, lineNumber, gutter, event);\n });\n }\n break;\n case 'onKeyDown':\n {\n _this.editor.on('keydown', function(cm, event) {\n _this.props.onKeyDown(_this.editor, event);\n });\n }\n break;\n case 'onKeyPress':\n {\n _this.editor.on('keypress', function(cm, event) {\n _this.props.onKeyPress(_this.editor, event);\n });\n }\n break;\n case 'onKeyUp':\n {\n _this.editor.on('keyup', function(cm, event) {\n _this.props.onKeyUp(_this.editor, event);\n });\n }\n break;\n case 'onMouseDown':\n {\n _this.editor.on('mousedown', function(cm, event) {\n _this.props.onMouseDown(_this.editor, event);\n });\n break;\n }\n case 'onPaste':\n {\n _this.editor.on('paste', function(cm, event) {\n _this.props.onPaste(_this.editor, event);\n });\n break;\n }\n case 'onRenderLine':\n {\n _this.editor.on('renderLine', function(cm, line, element) {\n _this.props.onRenderLine(_this.editor, line, element);\n });\n break;\n }\n case 'onScroll':\n {\n _this.editor.on('scroll', function(cm) {\n _this.props.onScroll(_this.editor, _this.editor.getScrollInfo());\n });\n }\n break;\n case 'onSelection':\n {\n _this.editor.on('beforeSelectionChange', function(cm, data) {\n _this.props.onSelection(_this.editor, data);\n });\n }\n break;\n case 'onTouchStart':\n {\n _this.editor.on('touchstart', function(cm, event) {\n _this.props.onTouchStart(_this.editor, event);\n });\n break;\n }\n case 'onUpdate':\n {\n _this.editor.on('update', function(cm) {\n _this.props.onUpdate(_this.editor);\n });\n }\n break;\n case 'onViewportChange':\n {\n _this.editor.on('viewportChange', function(cm, from, to) {\n _this.props.onViewportChange(_this.editor, from, to);\n });\n }\n break;\n }\n });\n };\n return Shared;\n}();\nvar Controlled = function(_super) {\n __extends(Controlled, _super);\n\n function Controlled(props) {\n var _this = _super.call(this, props) || this;\n if (SERVER_RENDERED) return _this;\n _this.applied = false;\n _this.appliedNext = false;\n _this.appliedUserDefined = false;\n _this.deferred = null;\n _this.emulating = false;\n _this.hydrated = false;\n _this.initCb = function() {\n if (_this.props.editorDidConfigure) {\n _this.props.editorDidConfigure(_this.editor);\n }\n };\n _this.mounted = false;\n return _this;\n }\n Controlled.prototype.hydrate = function(props) {\n var _this = this;\n var userDefinedOptions = _extends({}, cm.defaults, this.editor.options, props.options || {});\n var optionDelta = Object.keys(userDefinedOptions).some(function(key) {\n return _this.editor.getOption(key) !== userDefinedOptions[key];\n });\n if (optionDelta) {\n Object.keys(userDefinedOptions).forEach(function(key) {\n if (props.options.hasOwnProperty(key)) {\n if (_this.editor.getOption(key) !== userDefinedOptions[key]) {\n _this.editor.setOption(key, userDefinedOptions[key]);\n _this.mirror.setOption(key, userDefinedOptions[key]);\n }\n }\n });\n }\n if (!this.hydrated) {\n if (!this.mounted) {\n this.initChange(props.value || '');\n } else {\n if (this.deferred) {\n this.resolveChange();\n } else {\n this.initChange(props.value || '');\n }\n }\n }\n this.hydrated = true;\n };\n Controlled.prototype.initChange = function(value) {\n this.emulating = true;\n var lastLine = this.editor.lastLine();\n var lastChar = this.editor.getLine(this.editor.lastLine()).length;\n this.editor.replaceRange(value || '', {\n line: 0,\n ch: 0\n }, {\n line: lastLine,\n ch: lastChar\n });\n this.mirror.setValue(value);\n this.editor.clearHistory();\n this.mirror.clearHistory();\n this.emulating = false;\n };\n Controlled.prototype.resolveChange = function() {\n this.emulating = true;\n if (this.deferred.origin === 'undo') {\n this.editor.undo();\n } else if (this.deferred.origin === 'redo') {\n this.editor.redo();\n } else {\n this.editor.replaceRange(this.deferred.text, this.deferred.from, this.deferred.to, this.deferred.origin);\n }\n this.emulating = false;\n this.deferred = null;\n };\n Controlled.prototype.mirrorChange = function(deferred) {\n if (deferred.origin === 'undo') {\n this.editor.setHistory(this.mirror.getHistory());\n this.mirror.undo();\n } else if (deferred.origin === 'redo') {\n this.editor.setHistory(this.mirror.getHistory());\n this.mirror.redo();\n } else {\n this.mirror.replaceRange(deferred.text, deferred.from, deferred.to, deferred.origin);\n }\n return this.mirror.getValue();\n };\n Controlled.prototype.componentWillMount = function() {\n if (SERVER_RENDERED) return;\n if (this.props.editorWillMount) {\n this.props.editorWillMount();\n }\n };\n Controlled.prototype.componentDidMount = function() {\n var _this = this;\n if (SERVER_RENDERED) return;\n if (this.props.defineMode) {\n if (this.props.defineMode.name && this.props.defineMode.fn) {\n cm.defineMode(this.props.defineMode.name, this.props.defineMode.fn);\n }\n }\n this.editor = cm(this.ref);\n this.shared = new Shared(this.editor, this.props);\n this.mirror = cm(function() {});\n this.editor.on('electricInput', function() {\n _this.mirror.setHistory(_this.editor.getHistory());\n });\n this.editor.on('cursorActivity', function() {\n _this.mirror.setCursor(_this.editor.getCursor());\n });\n this.editor.on('beforeChange', function(cm, data) {\n if (_this.emulating) {\n return;\n }\n data.cancel();\n _this.deferred = data;\n var phantomChange = _this.mirrorChange(_this.deferred);\n if (_this.props.onBeforeChange) _this.props.onBeforeChange(_this.editor, _this.deferred, phantomChange);\n });\n this.editor.on('change', function(cm, data) {\n if (!_this.mounted) {\n return;\n }\n if (_this.props.onChange) {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n });\n this.hydrate(this.props);\n this.shared.apply(this.props);\n this.applied = true;\n this.mounted = true;\n this.shared.wire(this.props);\n if (this.editor.getOption('autofocus')) {\n this.editor.focus();\n }\n if (this.props.editorDidMount) {\n this.props.editorDidMount(this.editor, this.editor.getValue(), this.initCb);\n }\n };\n Controlled.prototype.componentWillReceiveProps = function(nextProps) {\n if (SERVER_RENDERED) return;\n var preserved = {\n cursor: null\n };\n if (nextProps.value !== this.props.value) {\n this.hydrated = false;\n }\n if (!this.props.autoCursor && this.props.autoCursor !== undefined) {\n preserved.cursor = this.editor.getCursor();\n }\n this.hydrate(nextProps);\n if (!this.appliedNext) {\n this.shared.applyNext(this.props, nextProps, preserved);\n this.appliedNext = true;\n }\n this.shared.applyUserDefined(this.props, preserved);\n this.appliedUserDefined = true;\n };\n Controlled.prototype.componentWillUnmount = function() {\n if (SERVER_RENDERED) return;\n if (this.props.editorWillUnmount) {\n this.props.editorWillUnmount(cm);\n }\n };\n Controlled.prototype.shouldComponentUpdate = function(nextProps, nextState) {\n return !SERVER_RENDERED;\n };\n Controlled.prototype.render = function() {\n var _this = this;\n if (SERVER_RENDERED) return null;\n var className = this.props.className ? 'react-codemirror2 ' + this.props.className : 'react-codemirror2';\n return React.createElement('div', {\n className: className,\n ref: function ref(self) {\n return _this.ref = self;\n }\n });\n };\n return Controlled;\n}(React.Component);\nexports.Controlled = Controlled;\nvar UnControlled = function(_super) {\n __extends(UnControlled, _super);\n\n function UnControlled(props) {\n var _this = _super.call(this, props) || this;\n if (SERVER_RENDERED) return _this;\n _this.applied = false;\n _this.appliedUserDefined = false;\n _this.continueChange = false;\n _this.detached = false;\n _this.hydrated = false;\n _this.initCb = function() {\n if (_this.props.editorDidConfigure) {\n _this.props.editorDidConfigure(_this.editor);\n }\n };\n _this.mounted = false;\n _this.onBeforeChangeCb = function() {\n _this.continueChange = true;\n };\n return _this;\n }\n UnControlled.prototype.hydrate = function(props) {\n var _this = this;\n var userDefinedOptions = _extends({}, cm.defaults, this.editor.options, props.options || {});\n var optionDelta = Object.keys(userDefinedOptions).some(function(key) {\n return _this.editor.getOption(key) !== userDefinedOptions[key];\n });\n if (optionDelta) {\n Object.keys(userDefinedOptions).forEach(function(key) {\n if (props.options.hasOwnProperty(key)) {\n if (_this.editor.getOption(key) !== userDefinedOptions[key]) {\n _this.editor.setOption(key, userDefinedOptions[key]);\n }\n }\n });\n }\n if (!this.hydrated) {\n var lastLine = this.editor.lastLine();\n var lastChar = this.editor.getLine(this.editor.lastLine()).length;\n this.editor.replaceRange(props.value || '', {\n line: 0,\n ch: 0\n }, {\n line: lastLine,\n ch: lastChar\n });\n }\n this.hydrated = true;\n };\n UnControlled.prototype.componentWillMount = function() {\n if (SERVER_RENDERED) return;\n if (this.props.editorWillMount) {\n this.props.editorWillMount();\n }\n };\n UnControlled.prototype.componentDidMount = function() {\n var _this = this;\n if (SERVER_RENDERED) return;\n this.detached = this.props.detach === true;\n if (this.props.defineMode) {\n if (this.props.defineMode.name && this.props.defineMode.fn) {\n cm.defineMode(this.props.defineMode.name, this.props.defineMode.fn);\n }\n }\n this.editor = cm(this.ref);\n this.shared = new Shared(this.editor, this.props);\n this.editor.on('beforeChange', function(cm, data) {\n if (_this.props.onBeforeChange) {\n _this.props.onBeforeChange(_this.editor, data, _this.editor.getValue(), _this.onBeforeChangeCb);\n }\n });\n this.editor.on('change', function(cm, data) {\n if (!_this.mounted || !_this.props.onChange) {\n return;\n }\n if (_this.props.onBeforeChange) {\n if (_this.continueChange) {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n } else {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n });\n this.hydrate(this.props);\n this.shared.apply(this.props);\n this.applied = true;\n this.mounted = true;\n this.shared.wire(this.props);\n this.editor.clearHistory();\n if (this.props.editorDidMount) {\n this.props.editorDidMount(this.editor, this.editor.getValue(), this.initCb);\n }\n };\n UnControlled.prototype.componentWillReceiveProps = function(nextProps) {\n if (this.detached && nextProps.detach === false) {\n this.detached = false;\n if (this.props.editorDidAttach) {\n this.props.editorDidAttach(this.editor);\n }\n }\n if (!this.detached && nextProps.detach === true) {\n this.detached = true;\n if (this.props.editorDidDetach) {\n this.props.editorDidDetach(this.editor);\n }\n }\n if (SERVER_RENDERED || this.detached) return;\n var preserved = {\n cursor: null\n };\n if (nextProps.value !== this.props.value) {\n this.hydrated = false;\n this.applied = false;\n this.appliedUserDefined = false;\n }\n if (!this.props.autoCursor && this.props.autoCursor !== undefined) {\n preserved.cursor = this.editor.getCursor();\n }\n this.hydrate(nextProps);\n if (!this.applied) {\n this.shared.apply(this.props);\n this.applied = true;\n }\n if (!this.appliedUserDefined) {\n this.shared.applyUserDefined(this.props, preserved);\n this.appliedUserDefined = true;\n }\n };\n UnControlled.prototype.componentWillUnmount = function() {\n if (SERVER_RENDERED) return;\n if (this.props.editorWillUnmount) {\n this.props.editorWillUnmount(cm);\n }\n };\n UnControlled.prototype.shouldComponentUpdate = function(nextProps, nextState) {\n var update = true;\n if (SERVER_RENDERED) update = false;\n if (this.detached) update = false;\n return update;\n };\n UnControlled.prototype.render = function() {\n var _this = this;\n if (SERVER_RENDERED) return null;\n var className = this.props.className ? 'react-codemirror2 ' + this.props.className : 'react-codemirror2';\n return React.createElement('div', {\n className: className,\n ref: function ref(self) {\n return _this.ref = self;\n }\n });\n };\n return UnControlled;\n}(React.Component);\nexports.UnControlled = UnControlled;","/** @license React v16.9.0\n * react-is.development.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';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\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","/**\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","/**\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","//\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","var nargs = /\\{([0-9a-zA-Z_]+)\\}/g\n\nmodule.exports = template\n\nfunction template(string) {\n var args\n\n if (arguments.length === 2 && typeof arguments[1] === \"object\") {\n args = arguments[1]\n } else {\n args = new Array(arguments.length - 1)\n for (var i = 1; i < arguments.length; ++i) {\n args[i - 1] = arguments[i]\n }\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {}\n }\n\n return string.replace(nargs, function replaceArg(match, i, index) {\n var result\n\n if (string[index - 1] === \"{\" &&\n string[index + match.length] === \"}\") {\n return i\n } else {\n result = args.hasOwnProperty(i) ? args[i] : null\n if (result === null || result === undefined) {\n return \"\"\n }\n\n return result\n }\n })\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\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","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","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","module.exports = __WEBPACK_EXTERNAL_MODULE_mobx__;","module.exports = __WEBPACK_EXTERNAL_MODULE_moment__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;"],"sourceRoot":""}
\No newline at end of file