UNPKG

7.98 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/DocumentUtils.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/PromiseMerger.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/focusable.tsx","webpack://[name]/./components-pro/_util/getReactNodeText.tsx","webpack://[name]/./components-pro/_util/isEmpty.tsx","webpack://[name]/./components-pro/_util/isFragment.tsx","webpack://[name]/./components-pro/_util/isIE.tsx","webpack://[name]/./components-pro/_util/isMobile.tsx","webpack://[name]/./components-pro/_util/isReactChildren.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/_util/objectFitPolyfill.tsx","webpack://[name]/./components-pro/_util/transform.tsx","webpack://[name]/./components-pro/_util/treeUtils.tsx","webpack://[name]/./components-pro/animate/index.tsx","webpack://[name]/./components-pro/animate/style/index.tsx","webpack://[name]/./components-pro/attachment/Attachment.tsx","webpack://[name]/./components-pro/attachment/AttachmentList.tsx","webpack://[name]/./components-pro/attachment/Item.tsx","webpack://[name]/./components-pro/attachment/index.tsx","webpack://[name]/./components-pro/attachment/style/index.less?b09b","webpack://[name]/./components-pro/attachment/style/index.tsx","webpack://[name]/./components-pro/attachment/utils.tsx","webpack://[name]/./components-pro/auto-complete/AutoComplete.tsx","webpack://[name]/./components-pro/auto-complete/index.tsx","webpack://[name]/./components-pro/auto-complete/style/index.less?116b","webpack://[name]/./components-pro/auto-complete/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/cascader/Cascader.tsx","webpack://[name]/./components-pro/cascader/enum.tsx","webpack://[name]/./components-pro/cascader/index.tsx","webpack://[name]/./components-pro/cascader/style/index.less?173f","webpack://[name]/./components-pro/cascader/style/index.tsx","webpack://[name]/./components-pro/cascader/utils.ts","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/AttachmentFile.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/interface.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/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/FormItemLabel.tsx","webpack://[name]/./components-pro/form/FormVirtualGroup.tsx","webpack://[name]/./components-pro/form/Item.tsx","webpack://[name]/./components-pro/form/enum.tsx","webpack://[name]/./components-pro/form/index.tsx","webpack://[name]/./components-pro/form/interface.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/index.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/inject-modal/index.tsx","webpack://[name]/./components-pro/inject-modal/style/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.less?1089","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.less?d8d1","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-manager/index.tsx","webpack://[name]/./components-pro/modal-manager/style/index.tsx","webpack://[name]/./components-pro/modal-provider/ModalContext.tsx","webpack://[name]/./components-pro/modal-provider/ModalProvider.tsx","webpack://[name]/./components-pro/modal-provider/index.tsx","webpack://[name]/./components-pro/modal-provider/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/preview.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/MultiLine.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/output/utils.tsx","webpack://[name]/./components-pro/overflow-tip/index.tsx","webpack://[name]/./components-pro/overflow-tip/style/index.tsx","webpack://[name]/./components-pro/overflow-tip/util.tsx","webpack://[name]/./components-pro/pagination/Pager.tsx","webpack://[name]/./components-pro/pagination/Pagination.tsx","webpack://[name]/./components-pro/pagination/QuickJumper.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/performance-table/Cell.tsx","webpack://[name]/./components-pro/performance-table/CellGroup.tsx","webpack://[name]/./components-pro/performance-table/Column.tsx","webpack://[name]/./components-pro/performance-table/ColumnGroup.tsx","webpack://[name]/./components-pro/performance-table/ColumnResizeHandler.tsx","webpack://[name]/./components-pro/performance-table/HeaderCell.tsx","webpack://[name]/./components-pro/performance-table/Row.tsx","webpack://[name]/./components-pro/performance-table/Scrollbar.tsx","webpack://[name]/./components-pro/performance-table/SelectionBox.tsx","webpack://[name]/./components-pro/performance-table/SelectionCheckboxAll.tsx","webpack://[name]/./components-pro/performance-table/Table.tsx","webpack://[name]/./components-pro/performance-table/TableContext.tsx","webpack://[name]/./components-pro/performance-table/TableStore.tsx","webpack://[name]/./components-pro/performance-table/constants.ts","webpack://[name]/./components-pro/performance-table/customization-settings/CustomizationColumnHeader.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/CustomizationSettings.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/Group.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/ItemSuffix.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/ItemTitle.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/SubGroup.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/SubGroups.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/column-groups/index.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/index.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/tree/Tree.tsx","webpack://[name]/./components-pro/performance-table/customization-settings/tree/TreeNode.tsx","webpack://[name]/./components-pro/performance-table/index.tsx","webpack://[name]/./components-pro/performance-table/query-bar/TableDynamicFilterBar.tsx","webpack://[name]/./components-pro/performance-table/query-bar/TableProfessionalBar.tsx","webpack://[name]/./components-pro/performance-table/query-bar/index.tsx","webpack://[name]/./components-pro/performance-table/style/index.less","webpack://[name]/./components-pro/performance-table/style/index.tsx","webpack://[name]/./components-pro/performance-table/tool-bar/ColumnFilter.tsx","webpack://[name]/./components-pro/performance-table/tool-bar/index.tsx","webpack://[name]/./components-pro/performance-table/utils/createContext.ts","webpack://[name]/./components-pro/performance-table/utils/domFns.ts","webpack://[name]/./components-pro/performance-table/utils/findAllParents.ts","webpack://[name]/./components-pro/performance-table/utils/findRowKeys.ts","webpack://[name]/./components-pro/performance-table/utils/flattenData.ts","webpack://[name]/./components-pro/performance-table/utils/getTotalByColumns.ts","webpack://[name]/./components-pro/performance-table/utils/getUnhandledProps.ts","webpack://[name]/./components-pro/performance-table/utils/index.ts","webpack://[name]/./components-pro/performance-table/utils/isNullOrUndefined.ts","webpack://[name]/./components-pro/performance-table/utils/isNumberOrTrue.ts","webpack://[name]/./components-pro/performance-table/utils/isRTL.ts","webpack://[name]/./components-pro/performance-table/utils/mergeCells.tsx","webpack://[name]/./components-pro/performance-table/utils/prefix.ts","webpack://[name]/./components-pro/performance-table/utils/requestAnimationTimeout.ts","webpack://[name]/./components-pro/performance-table/utils/resetLeftForCells.ts","webpack://[name]/./components-pro/performance-table/utils/shouldShowRowByExpanded.ts","webpack://[name]/./components-pro/performance-table/utils/toggle.ts","webpack://[name]/./components-pro/performance-table/utils/toggleClass.ts","webpack://[name]/./components-pro/performance-table/utils/translateDOMPositionXY.ts","webpack://[name]/./components-pro/picture/Picture.tsx","webpack://[name]/./components-pro/picture/PictureContext.tsx","webpack://[name]/./components-pro/picture/PictureViewer.tsx","webpack://[name]/./components-pro/picture/index.tsx","webpack://[name]/./components-pro/picture/style/index.less?9d97","webpack://[name]/./components-pro/picture/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/rate/Rate.tsx","webpack://[name]/./components-pro/rate/index.tsx","webpack://[name]/./components-pro/rate/style/index.less?917b","webpack://[name]/./components-pro/rate/style/index.tsx","webpack://[name]/./components-pro/rich-text/BaseEditor.tsx","webpack://[name]/./components-pro/rich-text/RichText.tsx","webpack://[name]/./components-pro/rich-text/RichTextViewer.tsx","webpack://[name]/./components-pro/rich-text/enum.tsx","webpack://[name]/./components-pro/rich-text/index.tsx","webpack://[name]/./components-pro/rich-text/style/index.less?2da1","webpack://[name]/./components-pro/rich-text/style/index.tsx","webpack://[name]/./components-pro/rich-text/toolbar/index.tsx","webpack://[name]/./components-pro/rich-text/utils.tsx","webpack://[name]/./components-pro/rich-text/utils/imageDropAndPaste.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/screening/ScreeningItem.tsx","webpack://[name]/./components-pro/screening/ScreeningOption.tsx","webpack://[name]/./components-pro/screening/index.tsx","webpack://[name]/./components-pro/screening/style/index.less?239f","webpack://[name]/./components-pro/screening/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/skeleton/Avatar.tsx","webpack://[name]/./components-pro/skeleton/Button.tsx","webpack://[name]/./components-pro/skeleton/Input.tsx","webpack://[name]/./components-pro/skeleton/Skeleton.tsx","webpack://[name]/./components-pro/skeleton/index.tsx","webpack://[name]/./components-pro/skeleton/style/index.ts","webpack://[name]/./components-pro/spin/index.tsx","webpack://[name]/./components-pro/spin/style/index.tsx","webpack://[name]/./components-pro/stores/AttachmentStore.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/AggregationButton.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/ResizeObservedRow.tsx","webpack://[name]/./components-pro/table/SelectionTips.tsx","webpack://[name]/./components-pro/table/SelectionTreeBox.tsx","webpack://[name]/./components-pro/table/StickyShadow.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/TableCellInner.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/TableHeaderRow.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/VirtualWrapper.tsx","webpack://[name]/./components-pro/table/customization-settings/CustomizationColumnHeader.tsx","webpack://[name]/./components-pro/table/customization-settings/CustomizationSettings.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/Group.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/ItemSuffix.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/ItemTitle.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/SubGroup.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/SubGroups.tsx","webpack://[name]/./components-pro/table/customization-settings/column-groups/index.tsx","webpack://[name]/./components-pro/table/customization-settings/tree/Tree.tsx","webpack://[name]/./components-pro/table/customization-settings/tree/TreeNode.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/FieldList.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/TableDynamicFilterBar.tsx","webpack://[name]/./components-pro/table/query-bar/TableFilterBar.tsx","webpack://[name]/./components-pro/table/query-bar/TableProfessionalBar.tsx","webpack://[name]/./components-pro/table/query-bar/TableToolBar.tsx","webpack://[name]/./components-pro/table/query-bar/index.tsx","webpack://[name]/./components-pro/table/query-bar/quick-filter/QuickFilterDataSet.tsx","webpack://[name]/./components-pro/table/query-bar/quick-filter/QuickFilterMenu.tsx","webpack://[name]/./components-pro/table/query-bar/quick-filter/index.tsx","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/calculateNodeHeight.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/RenderedText.tsx","webpack://[name]/./components-pro/text-field/TextField.tsx","webpack://[name]/./components-pro/text-field/TextFieldGroup.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/singleton.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-select/TreeNode.tsx","webpack://[name]/./components-pro/tree-select/TreeSelect.tsx","webpack://[name]/./components-pro/tree-select/index.tsx","webpack://[name]/./components-pro/tree-select/normalizeTreeNodes.tsx","webpack://[name]/./components-pro/tree-select/style/index.less?a314","webpack://[name]/./components-pro/tree-select/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/placements.tsx","webpack://[name]/./components-pro/trigger-field/style/index.less","webpack://[name]/./components-pro/trigger-field/style/index.tsx","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/use-computed/index.tsx","webpack://[name]/./components-pro/use-computed/style/index.tsx","webpack://[name]/./components-pro/use-modal/index.tsx","webpack://[name]/./components-pro/use-modal/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/TooltipUtils.tsx","webpack://[name]/./components/_util/UnitConvertor.tsx","webpack://[name]/./components/_util/addEventListener.tsx","webpack://[name]/./components/_util/createChains.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/reactNode.tsx","webpack://[name]/./components/_util/resizeObserver.tsx","webpack://[name]/./components/_util/warning.tsx","webpack://[name]/./components/align/Align.tsx","webpack://[name]/./components/align/domAlign.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/badge/ScrollNumber.tsx","webpack://[name]/./components/badge/index.tsx","webpack://[name]/./components/badge/style/index.less?c978","webpack://[name]/./components/badge/style/index.tsx","webpack://[name]/./components/button/Button.tsx","webpack://[name]/./components/button/ButtonGroup.tsx","webpack://[name]/./components/button/index.tsx","webpack://[name]/./components/button/style/index.less?fab8","webpack://[name]/./components/button/style/index.tsx","webpack://[name]/./components/calendar/locale/en_US.tsx","webpack://[name]/./components/cascader/index.tsx","webpack://[name]/./components/checkbox/Checkbox.tsx","webpack://[name]/./components/checkbox/Group.tsx","webpack://[name]/./components/checkbox/index.tsx","webpack://[name]/./components/checkbox/style/index.less","webpack://[name]/./components/checkbox/style/index.tsx","webpack://[name]/./components/col/index.tsx","webpack://[name]/./components/collapse/Collapse.tsx","webpack://[name]/./components/collapse/CollapsePanel.tsx","webpack://[name]/./components/collapse/index.tsx","webpack://[name]/./components/collapse/style/index.less?cee5","webpack://[name]/./components/collapse/style/index.tsx","webpack://[name]/./components/configure/index.tsx","webpack://[name]/./components/date-picker/locale/en_US.tsx","webpack://[name]/./components/grid/col.tsx","webpack://[name]/./components/grid/index.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/Icon.tsx","webpack://[name]/./components/icon/IconFont.tsx","webpack://[name]/./components/icon/generate.tsx","webpack://[name]/./components/icon/index.tsx","webpack://[name]/./components/icon/utils.ts","webpack://[name]/./components/input/Group.tsx","webpack://[name]/./components/input/Input.tsx","webpack://[name]/./components/input/Search.tsx","webpack://[name]/./components/input/TextArea.tsx","webpack://[name]/./components/input/calculateNodeHeight.tsx","webpack://[name]/./components/input/index.tsx","webpack://[name]/./components/input/style/index.less?3315","webpack://[name]/./components/input/style/index.tsx","webpack://[name]/./components/locale-provider/LocaleReceiver.tsx","webpack://[name]/./components/locale-provider/default.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/popover/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/radio/group.tsx","webpack://[name]/./components/radio/index.tsx","webpack://[name]/./components/radio/radio.tsx","webpack://[name]/./components/radio/radioButton.tsx","webpack://[name]/./components/rate/index.tsx","webpack://[name]/./components/rc-components/calendar/locale/en_US.jsx","webpack://[name]/./components/rc-components/cascader/Cascader.jsx","webpack://[name]/./components/rc-components/cascader/Menus.jsx","webpack://[name]/./components/rc-components/cascader/MenusSingle.jsx","webpack://[name]/./components/rc-components/cascader/index.jsx","webpack://[name]/./components/rc-components/cascader/locale/en_US.jsx","webpack://[name]/./components/rc-components/checkbox/Checkbox.jsx","webpack://[name]/./components/rc-components/checkbox/index.jsx","webpack://[name]/./components/rc-components/collapse/Collapse.jsx","webpack://[name]/./components/rc-components/collapse/Panel.jsx","webpack://[name]/./components/rc-components/collapse/PanelContent.jsx","webpack://[name]/./components/rc-components/collapse/index.jsx","webpack://[name]/./components/rc-components/collapse/openAnimationFactory.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/pagination/locale/en_US.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/rate/Rate.jsx","webpack://[name]/./components/rc-components/rate/Star.jsx","webpack://[name]/./components/rc-components/rate/index.jsx","webpack://[name]/./components/rc-components/rate/util.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/DropIndicator.tsx","webpack://[name]/./components/rc-components/tree/Indent.tsx","webpack://[name]/./components/rc-components/tree/List.tsx","webpack://[name]/./components/rc-components/tree/MotionTreeNode.tsx","webpack://[name]/./components/rc-components/tree/NodeList.tsx","webpack://[name]/./components/rc-components/tree/Tree.tsx","webpack://[name]/./components/rc-components/tree/TreeNode.tsx","webpack://[name]/./components/rc-components/tree/contextTypes.ts","webpack://[name]/./components/rc-components/tree/index.ts","webpack://[name]/./components/rc-components/tree/interface.tsx","webpack://[name]/./components/rc-components/tree/util.tsx","webpack://[name]/./components/rc-components/tree/utils/conductUtil.ts","webpack://[name]/./components/rc-components/tree/utils/diffUtil.ts","webpack://[name]/./components/rc-components/tree/utils/treeUtil.ts","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/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/row/index.tsx","webpack://[name]/./components/select/style/index.less?2fc0","webpack://[name]/./components/select/style/index.tsx","webpack://[name]/./components/skeleton/Avatar.tsx","webpack://[name]/./components/skeleton/Button.tsx","webpack://[name]/./components/skeleton/Element.tsx","webpack://[name]/./components/skeleton/Grid.tsx","webpack://[name]/./components/skeleton/Input.tsx","webpack://[name]/./components/skeleton/Paragraph.tsx","webpack://[name]/./components/skeleton/Skeleton.tsx","webpack://[name]/./components/skeleton/Title.tsx","webpack://[name]/./components/skeleton/index.tsx","webpack://[name]/./components/skeleton/style/index.less?4ab1","webpack://[name]/./components/skeleton/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/Count.tsx","webpack://[name]/./components/tabs/TabBar.tsx","webpack://[name]/./components/tabs/TabBarInner.tsx","webpack://[name]/./components/tabs/TabContent.tsx","webpack://[name]/./components/tabs/TabGroup.tsx","webpack://[name]/./components/tabs/TabPane.tsx","webpack://[name]/./components/tabs/Tabs.tsx","webpack://[name]/./components/tabs/TabsContext.tsx","webpack://[name]/./components/tabs/TabsWithContext.tsx","webpack://[name]/./components/tabs/customization-settings/CustomizationSettings.tsx","webpack://[name]/./components/tabs/customization-settings/index.tsx","webpack://[name]/./components/tabs/customization-settings/tab-groups/Group.tsx","webpack://[name]/./components/tabs/customization-settings/tab-groups/Item.tsx","webpack://[name]/./components/tabs/customization-settings/tab-groups/ItemSuffix.tsx","webpack://[name]/./components/tabs/customization-settings/tab-groups/ItemTitle.tsx","webpack://[name]/./components/tabs/customization-settings/tab-groups/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/tabs/utils.tsx","webpack://[name]/./components/tag/CheckableTag.tsx","webpack://[name]/./components/tag/index.tsx","webpack://[name]/./components/time-picker/locale/en_US.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/DirectoryTree.tsx","webpack://[name]/./components/tree/index.tsx","webpack://[name]/./components/tree/style/index.less?f14e","webpack://[name]/./components/tree/style/index.tsx","webpack://[name]/./components/tree/utils/dictUtil.ts","webpack://[name]/./components/trigger/Popup.tsx","webpack://[name]/./components/trigger/PopupInner.tsx","webpack://[name]/./components/trigger/Trigger.tsx","webpack://[name]/./components/trigger/TriggerChild.tsx","webpack://[name]/./components/trigger/enum.tsx","webpack://[name]/./components/trigger/style/index.less?7630","webpack://[name]/./components/trigger/style/index.tsx","webpack://[name]/./components/upload/utils.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/esm/extends.js","webpack://[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.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/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/@better-scroll/core/dist/core.esm.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/index.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/interfaces.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/public_api.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/random.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/readability.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","webpack://[name]/./node_modules/@ctrl/tinycolor/dist/module/util.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/array-tree-filter/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/buildFullPath.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/isValidXss.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/get-iterator.js","webpack://[name]/./node_modules/babel-runtime/core-js/is-iterable.js","webpack://[name]/./node_modules/babel-runtime/core-js/json/stringify.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/slicedToArray.js","webpack://[name]/./node_modules/babel-runtime/helpers/typeof.js","webpack://[name]/./node_modules/base64-js/index.js","webpack://[name]/./node_modules/buffer/index.js","webpack://[name]/./node_modules/buffer/node_modules/isarray/index.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/get-iterator.js","webpack://[name]/./node_modules/core-js/library/fn/is-iterable.js","webpack://[name]/./node_modules/core-js/library/fn/json/stringify.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/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-object.js","webpack://[name]/./node_modules/core-js/library/modules/_array-includes.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/_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/_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.js","webpack://[name]/./node_modules/core-js/library/modules/_is-object.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-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.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/_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/core.get-iterator.js","webpack://[name]/./node_modules/core-js/library/modules/core.is-iterable.js","webpack://[name]/./node_modules/core-js/library/modules/es6.array.iterator.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/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/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/css-box-model/dist/css-box-model.esm.js","webpack://[name]/./node_modules/css-unit-converter/index.js","webpack://[name]/./node_modules/dom-lib/es/BrowserSupportCore.js","webpack://[name]/./node_modules/dom-lib/es/DOMMouseMoveTracker.js","webpack://[name]/./node_modules/dom-lib/es/WheelHandler.js","webpack://[name]/./node_modules/dom-lib/es/animation/cancelAnimationFramePolyfill.js","webpack://[name]/./node_modules/dom-lib/es/animation/index.js","webpack://[name]/./node_modules/dom-lib/es/animation/nativeRequestAnimationFrame.js","webpack://[name]/./node_modules/dom-lib/es/animation/requestAnimationFramePolyfill.js","webpack://[name]/./node_modules/dom-lib/es/classNames/addClass.js","webpack://[name]/./node_modules/dom-lib/es/classNames/hasClass.js","webpack://[name]/./node_modules/dom-lib/es/classNames/index.js","webpack://[name]/./node_modules/dom-lib/es/classNames/removeClass.js","webpack://[name]/./node_modules/dom-lib/es/classNames/toggleClass.js","webpack://[name]/./node_modules/dom-lib/es/events/index.js","webpack://[name]/./node_modules/dom-lib/es/events/off.js","webpack://[name]/./node_modules/dom-lib/es/events/on.js","webpack://[name]/./node_modules/dom-lib/es/getGlobal.js","webpack://[name]/./node_modules/dom-lib/es/getVendorPrefixedName.js","webpack://[name]/./node_modules/dom-lib/es/index.js","webpack://[name]/./node_modules/dom-lib/es/normalizeWheel.js","webpack://[name]/./node_modules/dom-lib/es/query/activeElement.js","webpack://[name]/./node_modules/dom-lib/es/query/canUseDOM.js","webpack://[name]/./node_modules/dom-lib/es/query/contains.js","webpack://[name]/./node_modules/dom-lib/es/query/getContainer.js","webpack://[name]/./node_modules/dom-lib/es/query/getHeight.js","webpack://[name]/./node_modules/dom-lib/es/query/getOffset.js","webpack://[name]/./node_modules/dom-lib/es/query/getOffsetParent.js","webpack://[name]/./node_modules/dom-lib/es/query/getPosition.js","webpack://[name]/./node_modules/dom-lib/es/query/getScrollbarSize.js","webpack://[name]/./node_modules/dom-lib/es/query/getWidth.js","webpack://[name]/./node_modules/dom-lib/es/query/getWindow.js","webpack://[name]/./node_modules/dom-lib/es/query/index.js","webpack://[name]/./node_modules/dom-lib/es/query/isOverflowing.js","webpack://[name]/./node_modules/dom-lib/es/query/nodeName.js","webpack://[name]/./node_modules/dom-lib/es/query/ownerDocument.js","webpack://[name]/./node_modules/dom-lib/es/query/ownerWindow.js","webpack://[name]/./node_modules/dom-lib/es/query/scrollLeft.js","webpack://[name]/./node_modules/dom-lib/es/query/scrollTop.js","webpack://[name]/./node_modules/dom-lib/es/style/addStyle.js","webpack://[name]/./node_modules/dom-lib/es/style/camelizeStyleName.js","webpack://[name]/./node_modules/dom-lib/es/style/getComputedStyle.js","webpack://[name]/./node_modules/dom-lib/es/style/getStyle.js","webpack://[name]/./node_modules/dom-lib/es/style/hyphenateStyleName.js","webpack://[name]/./node_modules/dom-lib/es/style/index.js","webpack://[name]/./node_modules/dom-lib/es/style/removeStyle.js","webpack://[name]/./node_modules/dom-lib/es/transition/index.js","webpack://[name]/./node_modules/dom-lib/es/transition/translateDOMPositionXY.js","webpack://[name]/./node_modules/dom-lib/es/utils/UserAgent_DEPRECATED.js","webpack://[name]/./node_modules/dom-lib/es/utils/emptyFunction.js","webpack://[name]/./node_modules/dom-lib/es/utils/isEventSupported.js","webpack://[name]/./node_modules/dom-lib/es/utils/stringFormatter.js","webpack://[name]/./node_modules/dom-lib/lib/BrowserSupportCore.js","webpack://[name]/./node_modules/dom-lib/lib/animation/cancelAnimationFramePolyfill.js","webpack://[name]/./node_modules/dom-lib/lib/animation/nativeRequestAnimationFrame.js","webpack://[name]/./node_modules/dom-lib/lib/animation/requestAnimationFramePolyfill.js","webpack://[name]/./node_modules/dom-lib/lib/getGlobal.js","webpack://[name]/./node_modules/dom-lib/lib/getVendorPrefixedName.js","webpack://[name]/./node_modules/dom-lib/lib/query/canUseDOM.js","webpack://[name]/./node_modules/dom-lib/lib/transition/translateDOMPositionXY.js","webpack://[name]/./node_modules/dom-lib/lib/utils/emptyFunction.js","webpack://[name]/./node_modules/dom-lib/lib/utils/stringFormatter.js","webpack://[name]/./node_modules/element-resize-event/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/exenv/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/ieee754/index.js","webpack://[name]/./node_modules/insert-css/index.js","webpack://[name]/./node_modules/is-promise/index.js","webpack://[name]/./node_modules/lodash/_DataView.js","webpack://[name]/./node_modules/lodash/_Hash.js","webpack://[name]/./node_modules/lodash/_LazyWrapper.js","webpack://[name]/./node_modules/lodash/_ListCache.js","webpack://[name]/./node_modules/lodash/_LodashWrapper.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/_arrayIncludes.js","webpack://[name]/./node_modules/lodash/_arrayIncludesWith.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/_arrayReduce.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/_baseClamp.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/_baseDifference.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/_baseIndexOf.js","webpack://[name]/./node_modules/lodash/_baseIndexOfWith.js","webpack://[name]/./node_modules/lodash/_baseIntersection.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/_baseIsNaN.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/_baseLodash.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/_baseOrderBy.js","webpack://[name]/./node_modules/lodash/_basePick.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/_basePullAll.js","webpack://[name]/./node_modules/lodash/_baseReduce.js","webpack://[name]/./node_modules/lodash/_baseRest.js","webpack://[name]/./node_modules/lodash/_baseSet.js","webpack://[name]/./node_modules/lodash/_baseSetData.js","webpack://[name]/./node_modules/lodash/_baseSetToString.js","webpack://[name]/./node_modules/lodash/_baseSlice.js","webpack://[name]/./node_modules/lodash/_baseSome.js","webpack://[name]/./node_modules/lodash/_baseSortBy.js","webpack://[name]/./node_modules/lodash/_baseTimes.js","webpack://[name]/./node_modules/lodash/_baseToString.js","webpack://[name]/./node_modules/lodash/_baseTrim.js","webpack://[name]/./node_modules/lodash/_baseUnary.js","webpack://[name]/./node_modules/lodash/_baseUniq.js","webpack://[name]/./node_modules/lodash/_baseUnset.js","webpack://[name]/./node_modules/lodash/_baseXor.js","webpack://[name]/./node_modules/lodash/_cacheHas.js","webpack://[name]/./node_modules/lodash/_castArrayLikeObject.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/_compareAscending.js","webpack://[name]/./node_modules/lodash/_compareMultiple.js","webpack://[name]/./node_modules/lodash/_composeArgs.js","webpack://[name]/./node_modules/lodash/_composeArgsRight.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/_countHolders.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/_createBind.js","webpack://[name]/./node_modules/lodash/_createCaseFirst.js","webpack://[name]/./node_modules/lodash/_createCtor.js","webpack://[name]/./node_modules/lodash/_createCurry.js","webpack://[name]/./node_modules/lodash/_createFind.js","webpack://[name]/./node_modules/lodash/_createHybrid.js","webpack://[name]/./node_modules/lodash/_createPartial.js","webpack://[name]/./node_modules/lodash/_createRecurry.js","webpack://[name]/./node_modules/lodash/_createSet.js","webpack://[name]/./node_modules/lodash/_createWrap.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/_getData.js","webpack://[name]/./node_modules/lodash/_getFuncName.js","webpack://[name]/./node_modules/lodash/_getHolder.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/_getWrapDetails.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/_insertWrapDetails.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/_isLaziable.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/_mergeData.js","webpack://[name]/./node_modules/lodash/_metaMap.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/_realNames.js","webpack://[name]/./node_modules/lodash/_reorder.js","webpack://[name]/./node_modules/lodash/_replaceHolders.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/_setData.js","webpack://[name]/./node_modules/lodash/_setToArray.js","webpack://[name]/./node_modules/lodash/_setToString.js","webpack://[name]/./node_modules/lodash/_setWrapToString.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/_strictIndexOf.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/_trimmedEndIndex.js","webpack://[name]/./node_modules/lodash/_unicodeToArray.js","webpack://[name]/./node_modules/lodash/_updateWrapDetails.js","webpack://[name]/./node_modules/lodash/_wrapperClone.js","webpack://[name]/./node_modules/lodash/capitalize.js","webpack://[name]/./node_modules/lodash/clamp.js","webpack://[name]/./node_modules/lodash/cloneDeep.js","webpack://[name]/./node_modules/lodash/constant.js","webpack://[name]/./node_modules/lodash/curry.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/find.js","webpack://[name]/./node_modules/lodash/findIndex.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/intersection.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/isElement.js","webpack://[name]/./node_modules/lodash/isEmpty.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/isNull.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/pick.js","webpack://[name]/./node_modules/lodash/pickBy.js","webpack://[name]/./node_modules/lodash/property.js","webpack://[name]/./node_modules/lodash/pull.js","webpack://[name]/./node_modules/lodash/pullAll.js","webpack://[name]/./node_modules/lodash/reduce.js","webpack://[name]/./node_modules/lodash/some.js","webpack://[name]/./node_modules/lodash/sortBy.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/unionBy.js","webpack://[name]/./node_modules/lodash/uniq.js","webpack://[name]/./node_modules/lodash/uniqBy.js","webpack://[name]/./node_modules/lodash/uniqWith.js","webpack://[name]/./node_modules/lodash/upperFirst.js","webpack://[name]/./node_modules/lodash/wrapperLodash.js","webpack://[name]/./node_modules/lodash/xor.js","webpack://[name]/./node_modules/memoize-one/dist/memoize-one.esm.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/quill-delta-to-html/dist/commonjs/DeltaInsertOp.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/InsertData.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/InsertOpDenormalizer.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/InsertOpsConverter.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/OpAttributeSanitizer.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/OpToHtmlConverter.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/QuillDeltaToHtmlConverter.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/funcs-html.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/grouper/Grouper.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/grouper/ListNester.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/grouper/group-types.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/helpers/array.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/helpers/object.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/helpers/string.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/helpers/url.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/main.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/mentions/MentionSanitizer.js","webpack://[name]/./node_modules/quill-delta-to-html/dist/commonjs/value-types.js","webpack://[name]/./node_modules/quill/dist/quill.js","webpack://[name]/./node_modules/raf-schd/dist/raf-schd.esm.js","webpack://[name]/./node_modules/raf/index.js","webpack://[name]/./node_modules/rc-motion/es/CSSMotion.js","webpack://[name]/./node_modules/rc-motion/es/CSSMotionList.js","webpack://[name]/./node_modules/rc-motion/es/DomWrapper.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useState.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useStatus.js","webpack://[name]/./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack://[name]/./node_modules/rc-motion/es/index.js","webpack://[name]/./node_modules/rc-motion/es/interface.js","webpack://[name]/./node_modules/rc-motion/es/util/diff.js","webpack://[name]/./node_modules/rc-motion/es/util/motion.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://[name]/./node_modules/rc-motion/node_modules/@babel/runtime/helpers/typeof.js","webpack://[name]/./node_modules/rc-motion/node_modules/rc-util/es/Dom/canUseDom.js","webpack://[name]/./node_modules/rc-motion/node_modules/rc-util/es/Dom/findDOMNode.js","webpack://[name]/./node_modules/rc-motion/node_modules/rc-util/es/raf.js","webpack://[name]/./node_modules/rc-motion/node_modules/rc-util/es/ref.js","webpack://[name]/./node_modules/rc-resize-observer/es/index.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/@babel/runtime/helpers/typeof.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js","webpack://[name]/./node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js","webpack://[name]/./node_modules/rc-virtual-list/es/Filler.js","webpack://[name]/./node_modules/rc-virtual-list/es/Item.js","webpack://[name]/./node_modules/rc-virtual-list/es/List.js","webpack://[name]/./node_modules/rc-virtual-list/es/ScrollBar.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack://[name]/./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack://[name]/./node_modules/rc-virtual-list/es/index.js","webpack://[name]/./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack://[name]/./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack://[name]/./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack://[name]/./node_modules/rc-virtual-list/lib/Filler.js","webpack://[name]/./node_modules/rc-virtual-list/lib/Item.js","webpack://[name]/./node_modules/rc-virtual-list/lib/List.js","webpack://[name]/./node_modules/rc-virtual-list/lib/ScrollBar.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useChildren.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useDiffItem.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useFrameWheel.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useHeights.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useMobileTouchMove.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useOriginScroll.js","webpack://[name]/./node_modules/rc-virtual-list/lib/hooks/useScrollTo.js","webpack://[name]/./node_modules/rc-virtual-list/lib/utils/CacheMap.js","webpack://[name]/./node_modules/rc-virtual-list/lib/utils/algorithmUtil.js","webpack://[name]/./node_modules/rc-virtual-list/lib/utils/isFirefox.js","webpack://[name]/./node_modules/rc-virtual-list/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://[name]/./node_modules/rc-virtual-list/node_modules/rc-util/es/Dom/findDOMNode.js","webpack://[name]/./node_modules/rc-virtual-list/node_modules/rc-util/es/raf.js","webpack://[name]/./node_modules/rc-virtual-list/node_modules/rc-util/lib/Dom/findDOMNode.js","webpack://[name]/./node_modules/rc-virtual-list/node_modules/rc-util/lib/raf.js","webpack://[name]/./node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js","webpack://[name]/./node_modules/react-beautiful-dnd/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://[name]/./node_modules/react-beautiful-dnd/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://[name]/./node_modules/react-beautiful-dnd/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://[name]/./node_modules/react-codemirror2/index.js","webpack://[name]/./node_modules/react-dom-factories/index.js","webpack://[name]/./node_modules/react-dom/cjs/react-dom-server.browser.development.js","webpack://[name]/./node_modules/react-dom/server.browser.js","webpack://[name]/./node_modules/react-image-lightbox/dist/main.js","webpack://[name]/./node_modules/react-intersection-observer/react-intersection-observer.m.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/react-modal/lib/components/Modal.js","webpack://[name]/./node_modules/react-modal/lib/components/ModalPortal.js","webpack://[name]/./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://[name]/./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack://[name]/./node_modules/react-modal/lib/helpers/classList.js","webpack://[name]/./node_modules/react-modal/lib/helpers/focusManager.js","webpack://[name]/./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack://[name]/./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://[name]/./node_modules/react-modal/lib/helpers/scopeTab.js","webpack://[name]/./node_modules/react-modal/lib/helpers/tabbable.js","webpack://[name]/./node_modules/react-modal/lib/index.js","webpack://[name]/./node_modules/react-quill/dist/quill.snow.css","webpack://[name]/./node_modules/react-quill/lib/component.js","webpack://[name]/./node_modules/react-quill/lib/index.js","webpack://[name]/./node_modules/react-quill/lib/mixin.js","webpack://[name]/./node_modules/react-quill/lib/toolbar.js","webpack://[name]/./node_modules/react-redux/es/components/Context.js","webpack://[name]/./node_modules/react-redux/es/components/Provider.js","webpack://[name]/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://[name]/./node_modules/react-redux/es/connect/connect.js","webpack://[name]/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://[name]/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://[name]/./node_modules/react-redux/es/connect/mergeProps.js","webpack://[name]/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://[name]/./node_modules/react-redux/es/connect/verifySubselectors.js","webpack://[name]/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://[name]/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://[name]/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://[name]/./node_modules/react-redux/es/hooks/useSelector.js","webpack://[name]/./node_modules/react-redux/es/hooks/useStore.js","webpack://[name]/./node_modules/react-redux/es/index.js","webpack://[name]/./node_modules/react-redux/es/utils/Subscription.js","webpack://[name]/./node_modules/react-redux/es/utils/batch.js","webpack://[name]/./node_modules/react-redux/es/utils/isPlainObject.js","webpack://[name]/./node_modules/react-redux/es/utils/reactBatchedUpdates.js","webpack://[name]/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://[name]/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://[name]/./node_modules/react-redux/es/utils/verifyPlainObject.js","webpack://[name]/./node_modules/react-redux/es/utils/warning.js","webpack://[name]/./node_modules/react-redux/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://[name]/./node_modules/redux/es/redux.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/symbol-observable/es/index.js","webpack://[name]/./node_modules/symbol-observable/es/ponyfill.js","webpack://[name]/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://[name]/./node_modules/tslib/tslib.es6.js","webpack://[name]/./node_modules/use-memo-one/dist/use-memo-one.esm.js","webpack://[name]/./node_modules/warning/warning.js","webpack://[name]/(webpack)/buildin/global.js","webpack://[name]/(webpack)/buildin/harmony-module.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","React","createElement","props","Spin","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","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","Infinity","allowStale","mA","lC","refreshCacheOptions","cache","reaction","getConfig","lookupCache","lengthCalculator","getDocument","parent","top","document","getDocuments","list","concat","findIFrame","querySelectorAll","find","frame","contentWindow","getPageMousePosition","x","y","documentElement","scrollTop","scrollLeft","getMousePosition","client","iframe","getBoundingClientRect","left","newX","newY","EventManager","mobxGet","obj","isObservableObject","mobxSet","runInAction","mobxRemove","remove","prop","index","indexOf","slice","restKey","isArrayLike","isObject","data","fields","observable","field","i","push","KEY","PromiseMerger","callback","config","timeout","promiseMap","toJS","code","getBatchKey","args","Promise","resolve","batchKey","reject","promiseList","promise","resolveCallback","resolves","rejects","waitID","clearTimeout","setTimeout","codeList","keys","process","env","LOGGER_LEVEL","console","info","res","r","error","__decorate","action","prototype","PromiseQueue","queueing","queue","splice","clear","pop","ready","TaskRunner","Node","insert","inserted","Error","n","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","selector","focusable","some","method","findFirstFocusableElement","querySelector","findFocusableElements","findFocusableParent","root","parentElement","getReactNodeText","isNumber","String","window","isValidElement","textDiv","body","appendChild","render","textContent","unmountComponentAtNode","parentNode","removeChild","toString","isEmpty","allowBlank","isNil","isFragment","type","isReactFragment","isIE","ActiveXObject","isMobile","navigator","userAgent","agents","isReactChildren","element","isSame","oldValue","isEqual","isSameLike","keep","findEl","currentTarget","persist","delayer","keeper","event","stopFn","isRunning","cancel","delayFn","run","delay","addEventListener","keepRunning","measureTextWidth","text","style","span","cssText","innerHTML","replace","property","getComputedStyle","width","contentWidth","parseFloat","offsetWidth","normalizeLanguage","language","toLowerCase","OBJECT_FIT_SUPPORT","isObjectFitSupport","ownerDocument","defaultView","checkParentContainer","$container","styles","position","getPropertyValue","overflow","display","clientHeight","height","className","checkMediaProperties","$media","constraints","right","bottom","constraint","constraintValue","setPosition","axis","objectPosition","other","end","side","split","clientWidth","parseInt","objectFitPolyfill","fit","marginTop","marginLeft","transform","webkitTransform","prefix","join","treeReduce","initialValue","childName","reduce","previousValue","children","treeForEach","treeSome","treeFind","result","found","foundChild","Animate","defaultSort","order","custom","Attachment","on","dataSet","DataSetEvents","load","handleDataSetLoad","fetchCount","processDataSetEventListener","prevProps","viewMode","FieldType","attachment","count","attachments","observableProps","AttachmentFile","status","includes","getValidAttachments","attachmentCount","getValue","fetchAttachmentCount","batchFetchCount","attachmentStore","fetchCountInBatch","mobxAction","attachmentUUID","originFileObj","globalConfig","headers","fileKey","defaultFileKey","withCredentials","newHeaders","formData","FormData","append","appendFormData","onUploadProgress","handleProgress","total","loaded","url","actionHook","bucketName","bucketDirectory","storageCode","newConfig","customData","customUploadProgress","accept","acceptTypes","RegExp","acceptType","test","getAttachmentUUID","oldAttachmentUUID","tempAttachmentUUID","getProp","Modal","$l","oldAttachments","multiple","doRemove","all","upload","changeOrder","setValue","beforeUpload","removeAttachment","invalid","getUploadAxiosConfig","axios","handleSuccess","handleError","otherProps","onClick","handleClick","percent","response","handleUploadSuccess","onUploadSuccess","checkValidity","handleUploadError","onUploadError","errorMessage","files","autoCreate","uploadAttachments","file","uid","getUid","URL","createObjectURL","size","lastModified","creationDate","onRemove","renderHistory","open","title","cancelButton","okText","drawer","fetchProps","fetchAttachments","fetchList","results","setPopup","onAttachmentsChange","fileSize","defaultFileSize","isAcceptFile","types","formatFileSize","click","prefixCls","hasFloatLabel","label","getLabel","isCardButton","buttonProps","getOtherProps","ref","rest","uploadProps","getPictureWidth","Button","funcType","FuncType","link","icon","classNames","hidden","flat","color","isValid","ButtonColor","primary","red","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","Fragment","showValidation","ShowValidation","tooltip","getTooltipValidationMessage","showValidationMessage","sort","onOrderChange","wrapper","sortable","ObserverSelect","onChange","newType","handleSort","clearButton","isFlat","popupPlacement","getPopupContainer","getSortSelectPopupContainer","Size","small","border","Option","uploadButton","listType","listLimit","showHistory","readOnly","AttachmentList","pictureWidth","sortAttachments","limit","onHistory","handleHistory","handleRemove","onUpload","uploadAttachment","handleOrderChange","onFetchAttachments","handleFetchAttachment","onPreview","handlePreview","uploadBtn","downloadAll","renderHeaderLabel","buttons","getDownloadAllUrl","downProps","href","viewProps","disabled","renderSorter","wrapperReference","renderWrapperList","validationMessage","renderValidationResult","isValidationMessageHidden","validationResult","isCard","renderHeader","renderHelp","ShowHelp","newLine","renderEmpty","renderUploadList","forceHelpMode","showHelp","help","none","Tooltip","openClassName","placement","Icon","fontSize","getProPrefixCls","FIELD_SUFFIX","popup","_inTable","Trigger","popupContent","renderWrapper","Action","hover","focus","builtinPlacements","BUILT_IN_PLACEMENTS","popupHidden","onPopupHiddenChange","handlePopupHiddenChange","renderViewButton","renderUploadBtn","valueMissing","ctxShowValidation","FormField","displayName","defaultProps","suffixCls","propTypes","PropTypes","bool","oneOf","__IS_IN_CELL_EDITOR","observer","classString","handleDragEnd","useCallback","destination","source","newAttachments","arrayMove","useEffect","draggable","previewIndex","restCount","itemDraggable","Draggable","draggableId","isDragDisabled","provided","Item","startsWith","PictureProvider","DragDropContext","onDragEnd","Droppable","droppableId","isDropDisabled","direction","droppableProvided","innerRef","droppableProps","transitionName","exclusive","placeholder","ATTACHMENT_TARGET","filename","ext","attachmentConfig","tooltipRef","useRef","pictureRef","getPreviewUrl","src","dragProps","dragHandleProps","isPicture","preview","current","renderDragger","iconProps","renderImagePreview","renderIcon","defaultIcon","isSrcIcon","Picture","alt","previewUrl","objectFit","previewTarget","lazy","renderPlaceholder","renderTitle","isCardTitle","fileName","nameNode","renderProgress","Progress","showInfo","strokeWidth","ProgressStatus","normal","renderButtons","upProps","classnames","block","historyProps","getDownloadUrl","rmProps","renderErrorMessage","errorMessageNode","show","theme","getTooltipTheme","hide","listProps","draggableProps","units","unitIndex","Math","round","a","b","localeCompare","getTime","defaultMatcher","inputText","AutoComplete","isChoose","maxLength","inputLength","record","isDefaultPrevented","temDs","DataSet","textField","string","valueField","choose","menuProps","menuDisabled","dropdownMenuStyle","optionRenderer","onOption","matcher","optGroups","selectedKeys","optionProps","optionDisabled","getItemKey","itemContent","option","menuPrefix","getMenuPrefixCls","Menu","saveMenu","defaultActiveFirst","menuMultiple","handleMenuClick","onMouseDown","preventDefault","paging","currentPage","totalPage","MORE_KEY","checkable","Select","searchable","ObserverAutoComplete","getDefaultCache","cacheAdapterEnhancer","adapter","enabledByDefault","cacheFlag","defaultCache","useCache","isCacheLike","buildURLWithAxiosConfig","responsePromise","jsonMimeType","instance","Accept","interceptors","use","success","throttleAdapterEnhancer","threshold","recordCacheWithRequest","timestamp","cachedRecord","buildSortedURL","builtURL","buildURL","urlPath","queryString","paramsPair","params","paramsSerializer","JSON","stringify","handleClickWait","getHandleClick","loading","nextProps","nextContext","wait","waitType","isTooltipShown","leading","trailing","WaitType","throttle","maxWait","debounce","stopPropagation","afterClick","isPromise","getTooltip","ButtonTooltip","always","isOverflow","noop","handleClickIfBubble","childrenCount","Children","__C7N_ICON","buttonIcon","ProgressType","hasString","child","getMergedProps","tooltipWrapper","omit","rippleDisabled","button","Ripple","ButtonType","submit","DataSetStatus","submitting","DataSetComponent","__PRO_BUTTON","contextType","FormContext","raised","gray","blue","green","yellow","purple","dark","number","computed","disabledField","defaultOnOption","Record","id","getSimpleValue","isPlainObject","ObjectChainValue","arraySameLike","arrNext","defaultSearchMatcher","Cascader","doSearch","searchMatcher","searchRemote","handleSearch","setActiveValue","setItemMenuWidth","setIsClickTab","returnActiveValue","arrayOption","getRecordOrObjValue","treeData","activeValues","isClickTab","clickTab","menuItemWith","ele","addOptionsParent","checkValueReaction","cascadeOptions","processSelectedData","checkComboReaction","generateComboOption","clearCheckValue","clearCheckCombo","clearReaction","forcePopupAlign","primitiveValue","pagingOptionContent","toValueString","notFoundContent","recordTree","isFunction","findParentRecordTree","loadData","promises","idField","parentField","queryMore","expandTrigger","menuMode","singleMenuStyle","singleMenuItemStyle","singlePleaseRender","changeOnSelect","singleMenuItemRender","async","selectedValues","treePropsChange","treeRecord","isFilterSearch","treeRecords","recordItem","treeTextToArray","isSelected","isLeaf","expandTreeRecords","filteredOptions","getInputSelectedValue","inputValue","activeInputValue","findActiveRecord","getActiveValue","activeValue","treeValueToArray","getValues","dropdownMenuStyleMerge","itemMenuWidth","pxToRem","selectedValueMultiple","selectedMultiple","Set","accumulator","currentValue","MenuMode","single","menuPrefixCls","eventKey","getPagingOptionContent","SingleMenu","locale","pleaseSelect","onSelect","handleMenuSelect","isTabSelected","dropdownMenuColumnStyle","visible","Menus","getNotFoundContent","menu","spinning","getMenu","chooseAll","unChooseAll","dropdownMatchSelectWidth","minWidth","isFocused","keyCode","KeyCode","RIGHT","handleKeyLeftRightNext","DOWN","handleKeyDownPrevNext","LEFT","UP","END","PAGE_DOWN","handleKeyDownFirstLast","HOME","PAGE_UP","ENTER","handleKeyDownEnter","ESC","handleKeyDownEsc","SPACE","handleKeyDownSpace","nowIndexList","stopEvent","activeItem","findTreeDataFirstLast","editable","nowIndex","findIndex","valueKey","findTreeDataUpDown","sameKeyRecordIndex","expand","_options","findTreeParentChidren","unChoose","collapse","resetFilter","findByTextWithValue","emptyValue","findByText","findTreeItem","valueItem","sameItemTreeNode","textArray","simpleValue","findByValue","getValueKey","autoType","auto","_key","_exists","targetOption","_menuIndex","trigger","onChoose","onUnChoose","ExpandTrigger","processRecordToObject","loadDataCallBack","handleLoadData","setactiveEmpty","prepareSetValue","removeValue","values","oldValues","afterRemoveValue","_text","setLovPara","matchRecordBySearch","setText","combo","primitive","getFromTree","treeToArray","allArray","toData","cloneObj","cloneDeep","processvalue","processObjectValue","getText","processLookupValue","isEmptyUtil","oldValuesJS","handleOptionUnSelect","handleOptionSelect","newValues","cascadeMap","cascades","every","cascade","normalizeOptions","searchData","object","pending","TriggerField","oneOfType","arrayOf","func","ObserverCascader","_transformStack","tree","parentValue","stack","isArray","hasOwnProperty","treeToList","curStack","shift","nodeKey","subTree","reactNode","treeNormalData","selection","DataSetSelection","autoLocateFirst","records","isAllleaf","mapRecords","expandRecords","TreeToArray","PRecords","parentRecords","CheckBox","defaultChecked","checkedValue","unCheckedValue","unCheckedChildren","isChecked","indeterminate","checked","isControlled","getDataSetValue","BooleanValue","falseValue","trueValue","Radio","any","__PRO_CHECKBOX","ObserverCheckBox","CodeMirror","require","Controlled","defaultCodeMirrorOptions","lineNumbers","lint","gutters","CodeArea","content","cmOptions","getCodeMirrorOptions","handleCodeMirrorBlur","codeMirrorInstance","formatter","codeMirrorText","getRaw","midText","isFocus","findDOMNode","classes","handleCodeMirrorDidMount","editor","cb","formatHotKey","unFormatHotKey","editorDidMount","Tab","cm","somethingSelected","indentSelection","spaces","getOption","replaceSelection","getFormatted","setSize","setOption","labelLayout","LabelLayout","floatLabelOffsetX","disposer","autorun","recordValue","_editor","_data","onKeyDown","onEnterDown","getInputField","blur","handleCodeMirrorKeyDown","getTextNode","getWrapperProps","processValue","onBeforeChange","handleBeforeChange","onBlur","renderFloatLabel","Col","getNodeRect","ColorPicker","eventManager","HSV","s","saveGradientRef","gradient","saveSelectPointerRef","selectPointer","saveHuePointerRef","huePointer","saveHueRef","hue","saveOpacityRef","opacity","saveOpacityPointerRef","opacityPointer","setHuePointer","setGradientPointer","backgroundColor","huePointerProps","handleHPMouseDown","handleHueClick","gradientProps","handleGPClick","gradientPointerProps","handleGPMouseDown","setColor","hueColor","getPopupFooter","hexToRGB","g","rgbToHSV","setHSV","hsvToRGB","hr","hg","hb","ha","rgbToHEX","setHueColor","hueWidth","hueLeft","hex","num","hexNum","hexArray","exec","min","d","m","h1","floor","f","p","q","t","rgb","pointer","wrap","isClient","wrapX","wrapY","wrapW","wrapH","pointerH","pointerW","positionToHSV","clientX","clientY","hexColor","valueR","valueG","valueB","valueA","valueColor","onGPMouseUp","removeEventListener","onHPMouseUp","typeMismatch","Colorpicker","CodeGen","ViewComponent","setCode","setObservableProps","getClassName","getWrapperClassNames","wrapperProps","mergedProps","_context","lang","getObservableProps","tabIndex","getOmitPropsKeys","onFocus","handleFocus","handleBlur","elementReference","minHeight","maxHeight","elementClassName","mergedStyle","large","useFocusedClassName","add","forceBlur","nextPrefixCls","updateObservableProps","autoFocus","defer","localeContext","isDisabled","accessKey","dir","contentEditable","spellCheck","onDoubleClick","onMouseUp","onMouseMove","onMouseOver","onMouseOut","onContextMenu","onKeyUp","onKeyPress","Currency","currency","getCurrencyFormatter","getCurrencyFormatOptions","NumberField","format","formatCurrency","extReg","matches","match","ALL_PAGE_SELECTION","QUERY_PARAMETER","addDataSetField","fieldProps","processIntlField","langName","langProps","Field","addRecordField","prepareForReport","performance","timing","fetchStart","fetchEnd","loadStart","loadEnd","originalData","resetInBatch","validating","inBatchSelection","syncChildrenRemote","remoteKeys","syncChild","queryFields","queryDataSet","autoQuery","pageSize","events","queryParameter","dataToJSON","selectionStrategy","totalCount","cachedSelected","processListener","initChildren","initEvents","initFields","initQueryDataSet","query","indexChange","handleCascade","merge","DataSetSnapshot","snapshot","enable","currentSelected","currentUnSelected","clearCachedSelected","selectable","generateData","noCascade","adapterDataToJSON","useSelected","selected","generateJSONData","_isSelect","page","doQuery","doQueryMore","doQueryMoreChild","read","loadDataFromResponse","appendDataFromResponse","isSelect","validate","write","columns","exportQuantity","checkReadable","generateQueryParameter","_HAP_EXCEL_EXPORT_COLUMNS","totalKey","_r","generateOrderQueryString","axiosConfigAdapter","exportMode","ExportMode","fireEvent","ExportQuantity","doExport","getUri","doClientExport","warning","columnsExport","newResult","processData","itemValue","dataItem","columnsExportkeys","firstRecord","exportField","getField","processItemValue","getSplitValue","processExportValue","quantity","isFile","exportProgress","exportStatus","DataSetExportStatus","queryTime","ceil","queryExportList","exporting","generateQueryString","getPromise","concurrentPromise","currentPromiseIndex","resultValue","reducer","todataList","dataKey","progressing","exportAlldate","displayDataTransform","exportExcel","err","warn","failed","locate","created","destroyed","modifiedCheck","modifiedCheckMessage","dirty","confirm","currentRecord","findInAllPage","currentIndex","dataIndex","objectFieldsList","normalFields","entries","fieldDefaultValue","defaultValue","level","items","init","autoLocateAfterCreate","confirmMessage","beforeDelete","autoLocateAfterRemove","isCurrent","previous","fireEventSync","beforeRemove","deleteRecord","removeAll","checkParentByInsert","transferRecords","fromRecord","deleted","spliceRecord","getSpliceRecord","transformedRecords","fromIndex","thisArg","reduceRight","reverse","fieldName","combineSort","currents","getOrderFields","SortOrder","asc","desc","getFieldSorter","recordOrIndex","isAllPageSelection","cachedIndex","select","batchSelect","unSelect","batchUnSelect","selectAll","unSelectAll","recordOrId","findRecordById","treeSelect","treeSelectParent","treeUnSelect","treeUnSelectParent","setCachedSelected","CheckedStrategy","SHOW_PARENT","SHOW_CHILD","useCascade","validateResult","forceValidate","useAll","reportValidityImmediately","validationResults","getValidationErrors","errors","groups","addField","allData","onlyDelete","autoQueryAfterSubmit","primaryKey","DataToJSON","flatMap","dirtyRecords","commit","statusKey","restCreatedData","restUpdatedData","dataStatus","__id","RecordStatus","update","updated","ds","parentName","para","getState","childrenField","beforeAppend","appendData","unionBy","storeSelected","sliceTree","beforeLoad","releaseCachedSelected","nextRecord","processOneData","sync","selectedIndex","isNew","isRemoved","indexRecord","getIndexInCurrentPage","childDs","resp","generateResponseData","prepareSubmitData","axiosConfigs","submitData","prepareForSubmit","changeSubmitStatus","submitEventResult","axiosStatic","handleSubmitSuccess","handleSubmitFail","DataSetRequestError","changeStatus","queryEventResult","fixAxiosConfig","handleLoadSuccess","handleLoadFail","cacheSelectionKeys","isCached","cached","hasChildren","syncChildren","feedback","loadSuccess","defaultFeedback","loadFailed","submitSuccess","myTotal","statusText","commitData","submitFailed","dataSetSnapshot","restore","onlyClient","cascadeRecordsMap","cascadeRecords","childRecords","getIf","oldSnapshot","pageSizeInner","pagesize","orderFields","orderField","sortname","bindField","findBindFieldBy","param","sortorder","pageQuery","generatePageQueryString","generatePageQuery","sortParams","sortName","sortOrder","cascadeParams","validateBeforeQuery","parentParams","getParentParams","queryParameterMap","toPOJO","array","getCascadeRecordsIncludeDelete","reslove","first","server","transport","Transport","isSelectionIndeterminate","currentParent","findRootParent","sortTree","group","normalizeGroups","getUniqueFieldNames","cacheSelection","uniqueKeys","isDirtyRecord","_result","isEqualDynamicProps","oldProps","newProps","newKeys","getPropsFromLovConfig","lovCode","propsName","lovCodeStore","LOOKUP_SIDE_EFFECT_KEYS","LOV_SIDE_EFFECT_KEYS","LOOKUP_TOKEN","dynamicProps","raf","fetchLookup","fetchLovConfig","computedProps","fetches","one","dsField","findDataSetField","lookupUrl","computedPropsMap","computedProp","computedValue","newComputedProp","computProp","executeDynamicProps","checkDynamicProp","dynamicProp","dsValue","lookupToken","lookupCaches","lovProp","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","dirtyProps","fieldChange","handlePropChange","lookup","showValueIfNotFound","getLookupText","validator","required","baseType","getBaseType","customValidator","getDateFormatByField","pattern","step","nonStrictStep","minLength","range","unique","defaultValidationMessages","validatorProps","getLimit","validatorPropKeys","report","valid","Validator","reportValidity","noCache","oldToken","batch","lookupCode","getLovPara","cachedLookup","lookupStore","fetchLookupDataInBatch","axiosConfig","getAxiosConfig","fetchLookupData","lookupData","fetchConfig","uuid","validity","newProp","lastDynamicProps","oldProp","intl","dynamicPropsComputingChains","attachmentCaches","dirtyKeys","others","optionsProps","getLovDataSet","dirtyData","dirtyNames","getChainFieldName","tlsKey","supports","getValidationMessage","defaultTextField","defaultValueField","FieldTrim","both","IDGen","EXPANDED_KEY","SELECTABLE_KEY","SELECT_KEY","UNSELECT_KEY","initData","needIgnore","isCascadeSelect","useNormal","childrenKeys","jsonFieldKeys","fieldKeys","json","childKey","normalizeData","normalizeCascadeData","__dirty","getCascadeSelectedRecords","getCascadeRecords","getValidationErrorValues","childDataSet","cascading","isObservableArray","getRecordValue","checkField","oldName","findBindField","checkFieldType","newValueForCompare","processToJSON","findBindFields","findBindTargetFields","oneField","chainFieldName","cloneData","tlsData","commitTls","pristineData","memo","tmpDs","transformResponse","originValue","old","newData","processFieldValue","needMerge","bindValue","getSortedFields","jsonFields","onlyDirtyField","useDirtyField","neverKeys","getUniqueKeysAndPrimaryKey","pick","fieldIgnore","FieldIgnore","clean","ignoreFieldNames","ignore","transformRequest","childrenInfoForDelete","getCascadeSelectedRecordsIncludeDelete","jsonArray","newItem","isDataSetInAllPageSelection","checkedLength","isIndeterminate","expandField","expanded","cascadeParent","$children","childParentId","$parent","parentId","parents","queryUrl","destroy","validateUrl","submitUrl","exports","exportUrl","tls","tlsUrl","FieldFormat","useDirty","suffix","processOneToJSON","checkRange","isDate","moment","isMoment","jsonDate","startIndex","processOne","formatString","isNaN","parseNumber","email","date","dateTime","time","week","month","year","parse","isCreated","processRangeToText","valueRange","_isEmpty","isBind","nameArray","levelValue","Number","record1","record2","rootMap","itemMap","getValueType","isBoolean","fieldType","valueType","form","throwCycleBindingFields","getChainFieldNamePrivate","linkedMap","names","myField","deep","bindFields","numberSorter","stringSorter","generateRecordJSONData","toJSONData","storeWith","defaultAxiosConfigAdapter","generateConfig","globalAdapter","configs","languages","myName","inserts","EMPTY_GROUP_KEY","restRecords","previousGroup","subGroups","groupRecords","excelName","XLSX","ws","utils","json_to_sheet","skipHeader","wb","book_new","book_append_sheet","writeFile","objectBindFields","transformResponseField","dynamicFields","dynamicObjectBindFields","dynamicBindFields","entry","targetNames","targetName","promiseLoaders","cancelFnc","promiseLoadersLength","fail","resulet","fill","maxConcurrent","execPromise","Boolean","unSelected","propName","viewComponents","ViewMode","decade","DecadeYearsView","YearsView","MonthsView","DaysView","DateTimesView","WeeksView","TimesView","DatePicker","popupRangeEditor","isEditableLike","getViewMode","editorInPopup","renderedText","mode","getDefaultViewMode","timeZone","renderedTimeZone","createDefaultTime","defaultTime","getPlaceholders","startPlaceholder","endPlaceHolder","rangeTarget","processRangeValue","rangeValue","startValue","endValue","startText","endText","handleChange","handleRangeStart","savePopupRangeEditor","handleRangeEnd","ObserverTextField","onInput","getSelectedDate","getPopupEditor","view","disabledNow","isValidNowDate","renderer","getCellRenderer","handleSelect","onSelectedDateChange","handleSelectedDateChange","onViewModeChange","handelViewModeChange","isValidDate","getDateFormat","renderExtraFooter","extraFooterPlacement","cellRenderer","noCheck","parsingFlags","unusedTokens","getDefaultTime","hour","minute","second","toMoment","momentToTimestamp","changeSelectedDate","valueOf","selectedDate","clone","getValidDate","minOrMax","momentValue","getLimitWithType","startOf","endOf","isUnderRange","exists","el","handleKeyDownRight","handleKeyDownLeft","handleKeyDownDown","handleKeyDownUp","handleKeyDownEnd","handleKeyDownHome","handleKeyDownPageUp","handleKeyDownPageDown","TAB","handleKeyDownTab","subtract","altKey","_e","isEditable","setRangeTarget","beginRange","checkMoment","isSameOrBefore","isSameOrAfter","m1","m2","isBefore","isBetween","currentDate","shape","changeViewMode","getCloneDate","firstDay","daysInMonth","footerProps","handleTimeSelect","getDateFormatByFieldType","alwaysValidDate","getViewClassName","renderBody","customFooter","renderFooter","handlePrevYearClick","handlePrevMonthClick","handleMonthSelect","localeData","monthsShort","handleYearSelect","handleNextYearClick","handleNextMonthClick","renderPanel","getPanelClass","cellSpacing","renderPanelHead","renderPanelBody","getDaysOfWeek","renderCell","prevMonth","getFirstDay","currentYear","currentMonth","lastDay","rows","cells","dayProps","renderInner","handleCellClick","days","weekdaysMin","firstDayOfWeek","dow","day","prevYear","lastYear","decadeProps","lastMonth","monthProps","stepMapping","TimeUnit","panel","handleWheel","passive","changeUnit","getPrevUnit","getNextUnit","unit","getCurrentUnit","unitStep","parentUnit","parentStep","preValue","use12Hours","deltaY","handleDateTimeSelect","savePanel","showHour","showMinute","showSecond","activeStyle","getTimeBar","isUpperCase","finalUnit","selectedValue","begin","pre","last","handleTimeCellClick","barStyle","currentUnit","timeUnitQueue","weekProps","getWeekCell","yearProps","DateTimePicker","_minOrMax","popupStyle","whiteSpace","Dropdown","defaultHidden","defaultVisible","onHiddenChange","onVisibleChange","propsHidden","propsVisible","onOverlayClick","renderedContentProps","overlay","getContent","cloneElement","popupClassName","onHiddenBeforeChange","triggerAction","renderPopupContent","onPopupHiddenBeforeChange","PureComponent","contextMenu","Placements","bottomLeft","bottomCenter","bottomRight","topLeft","topCenter","topRight","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","points","offset","EmailField","TextField","CloseButton","onClose","getFieldsById","multipleValidateMessageLength","renderProps","defaultRenderer","noValidate","pristine","isFieldValueEmpty","getControlled","getObservablePropsExcludeOutput","contextDataSet","contextRecord","contextDataIndex","highlight","highlightRenderer","fieldHighlightRenderer","handleKeyDown","onCompositionStart","handleCompositionStart","onCompositionEnd","getOtherPropsExcludeOutput","empty","getWrapperClassNamesExcludeOutput","labelTooltip","TextTooltip","handleFloatLabelMouseEnter","handleFloatLabelMouseLeave","addToForm","removeFromForm","tooltipShown","formNode","removeField","showIcon","renderValidationMessage","getFieldType","currentValidationResult","validationRenderer","showTooltip","endRange","lock","handleEnterDown","syncValueOnBlur","getPristineValue","getTextByValue","preventRenderer","processRenderer","repeat","maxTagTextLength","processedValue","processText","toRangeValue","toMultipleValue","uniqWith","compare","_value1","_value2","processV","isLowerRange","addValue","removeValues","_repeat","fromRangeValue","getOldValue","updateAndValidate","storedValue","beforeChange","afterSetValue","rejectCallback","renderRangeValue","_v","maxTagCount","maxTagPlaceholder","renderMultipleValues","isMultipleBlockDisabled","handleMutipleValueRemove","getKey","tags","onClear","onInvalid","$validator","isLdEmpty","defaultTo","highlightWrapper","transformHighlightProps","renderHighLight","renderHelpMessage","transitionAppear","recordField","isReadOnly","rowSpan","colSpan","fieldClassName","useColon","ObserverFormField","multipleValue","defaultFormat","currencyFormatter","getNumberFormatter","numberFieldFormatter","formatNumber","controlLang","precision","formatterOptions","currencyFormatterOptions","minimumFractionDigits","maximumFractionDigits","numberGrouping","useGrouping","getNumberFormatOptions","precisionInValue","getPrecision","numberFieldFormatterOptions","formatOptions","isObjectEmpty","selfShowValidationMessage","valueLength","repeats","blockClassName","blockDisabled","closeBtn","inner","omittedValues","renderMultiLine","selfProcessValue","multiLineFields","lines","fieldItem","validationHidden","fieldValue","notEmpty","validationInner","MultiLine","renderOption","NameGen","labelWidthPropTypes","labelAlignPropTypes","LabelAlign","center","labelLayoutPropTypes","horizontal","vertical","Form","responsiveItems","labelAlign","labelWidth","excludeUseColonTagList","separateSpacing","onSubmit","handleSubmit","onReset","handleReset","header","processDataSetListener","componentDidMountOrUpdate","isUnderForm","hasParentElement","flag","handler","handleDataSetValidate","firstInvalidRecord","getFields","formReadOnly","normalizeLabelWidth","cols","rowIndex","colIndex","matrix","noLabel","childrenArray","separateSpacingWidth","setChild","outChild","groupProps","outChildProps","getProperty","outChildChildren","otherOutChildProps","isFragmentElement","__PRO_FORM_VIRTUAL_GROUP","c","completeLine","TagName","fieldLabelWidth","fieldUseColon","newColSpan","currentRow","j","isOutput","labelClassName","wrapperClassName","__PRO_FORM_ITEM","columnLabelWidth","FormItemLabel","paddingLeft","fieldElementProps","paddingRight","isAutoWidth","w","tableStyle","borderCollapse","borderSpacing","getHeader","layout","FormLayout","table","rasterizedChildren","Responsive","handleResponsive","Provider","processParams","onSuccess","onError","configUseColon","configExcludeUseColonTagList","defaultExcludeUseColonTag","responsiveColumns","defaultColumns","hasBreakPointMap","responsiveWidth","defaultLabelWidth","defaultLabelAlign","responsiveAlign","responsiveLabelLayout","FormVirtualGroup","ResponsiveKeys","xs","sm","md","lg","xl","xxl","createContext","useMemo","LabelTooltip","Label","useContext","contextLabelWidth","only","childrenProps","Row","defaultLabelLayout","labelWidths","fieldProperty","tagName","toLocaleStringSupportsLocales","toLocaleString","toLocaleStringPolyfill","formatReactTemplate","template","stringText","textArr","transformString","trimString","supportsLocales","fraction","fieldTrim","trimLeft","trimRight","uppercase","toUpperCase","lowercase","capitalize","IconCategory","setPage","ul","onPageChange","category","syncItemPosition","offsetHeight","offsetTop","scrollTo","icons","Pagination","showSizeChanger","handlePageChange","measureScrollbar","customFontName","getIcons","IconItem","handleItemSelect","active","renderPagination","saveRef","renderIcons","MobxPropTypes","arrayOrObservableArrayOf","isRequired","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","tab","handleTabsChange","activeKey","propsIcon","flatten","ENV","injectModal","IntlField","openModal","modal","modalProps","maxLengths","maxLengthList","setLoading","storeLocales","IntlList","handleIntlListClose","onOk","handleIntlListOk","onCancel","handleIntlListCancel","destroyOnClose","intlField","locales","wrapperSuffix","close","maxLengthProps","renderOptions","setMomentLocale","defaultLocale","LocaleContext","defaultSupports","numberFormatLanguage","cmp","Lang","injectionOptions","zh_CN","en_GB","en_US","rename","restore_default","set_default","set_default_tip","show_count","yes","no","save","customization_settings","Table","show_cached_seletion","hide_cached_seletion","selection_tips","select_current_page","unselect_current_page","select_all_page","unselect_all_page","edit_button","create_button","save_button","cancel_button","delete_button","remove_button","reset_button","retry_button","download_button","query_button","expand_button","collapse_button","export_button","file_name","defalut_export","export_failed","export_success","export_ing","export_break","export_operating","export_waiting","advanced_search","dirty_info","empty_data","choose_export_columns","column_name","filter_bar_placeholder","advanced_query","advanced_query_conditions","more","enter_text_filter","clear_filter","save_filter","predefined_fields","add_filter","enter_search_content","save_as","no_save_filter","modified","fast_filter","default_flag","cancel_default","filter_rename","save_filter_as","whether_delete_filter","filter_name","please_enter","query_option_yes","query_option_no","display_settings","view_display","tiled_view","aggregation_view","density_display","compact","parity_row","table_settings","height_settings","auto_height","fixed_height","flex_height","flex_height_help","column_settings","left_lock","right_lock","unlocked","unlock","up","down","row_expand_settings","expand_cell","expand_row","expand_column","collapse_cell","collapse_row","collapse_column","jump_to","jump_to_confirm","records_per_page","Upload","file_selection","click_to_upload","upload_success","upload_failure","no_file","been_uploaded","upload_path_unset","not_acceptable_prompt","file_list_max_length","value_missing_no_label","value_missing","upload_attachment","upload_picture","download_all","view_attachment","no_attachments","by_upload_time","by_name","operation_records","view_operation_records","download","file_max_size","file_type_mismatch","ok","preview_picture","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","type_mismatch","today","this_week","invalid_date","modal_title","SelectBox","no_matching_results","select_all","select_re","unselect_all","common_item","Lov","Transfer","UrlField","bad_input","pattern_mismatch","range_overflow","range_underflow","step_mismatch","step_mismatch_between","too_long","too_short","unknown","whatsNew","suggestion","edit","series","please_select","Screening","pack_up","multi_select","fetchSingle","onBeforeSelect","getModalProps","tableProps","getTableProps","lovViewProps","beforeOpen","LovView","handleLovViewSelect","handleLovViewClose","closable","bodyStyle","innerHeight","afterClose","handleLovViewAfterClose","afterOpen","searchFieldProps","searchFieldInPopup","fetched","mergedTableProps","pagination","queryBar","renderSearchField","searchAction","getPopupLovView","SearchAction","input","SHOW_ALL","lovEvents","needToFetch","oldSelected","newSelected","lovQueryCachedSelected","fetchCachedSelected","onShowCachedSelectionChange","resetOptions","searching","isSearchTextEmpty","searchPara","getSearchPara","setQueryParameter","isSearchFieldInPopup","lovPara","handleOpenModal","defaultClassName","hasRecord","lovStore","holder","holders","autoSelectSingle","selectSingle","elements","getButtonProps","handleButtonClick","handleClearButtonClick","editableFlag","searchText","statePopup","lovDataSet","showCheckedStrategy","checkValueOnOptionsChange","resizedColumns","lovItems","gridField","seq1","gridFieldSequence","seq2","gridFieldName","gridFieldWidth","gridFieldAlign","column","align","selectionMode","SelectionMode","treebox","treeSelected","rowbox","alwaysShowRowBox","onRow","getColumnKey","treeFlag","queryColumns","configTableProps","handleOk","getColumns","lovTableProps","TableMode","queryFieldsLimit","queryBarProps","highLightRow","selectedHighLightRow","handleSingleRow","handleRow","showSelectionCachedButton","showCachedSelection","autoWidth","onColumnResize","handleColumnResize","isProfessionalBar","TableQueryBarType","professionalBar","TableProfessionalBar","LovFieldType","PrefixRule","Mask","containerInstances","ModalManager","getArrayIndex","getRoot","doc","hasScrollBar","scrollHeight","hideBodyScrollBar","defaultBodyStyle","showBodyScrollBar","ModalContainer","modals","saveMount","mount","handleAnimationEnd","modalKey","isEnter","updateModals","handleMaskClick","findLast","maskClosable","maskHidden","drawerOffsets","mousePositionEventBound","mousePosition","addInstance","location","currentLocation","pathname","removeInstance","mergeModals","__deprecate__","drawerOffset","drawerTransitionName","offsets","newModals","originModals","closeByLocationChange","closeOnLocationChange","isTop","baseOffsets","indexes","activeModal","maskTransition","marginBottom","marginRight","hiddenProp","onEnd","animationProps","eventProps","mask","maskStyle","maskClassName","getModalContainer","getContainer","getComponent","createPortal","is","loop","container","getCurrentContainer","KeyGen","WeakSet","ModalContext","ModalProvider","contextLocation","prepareToOpen","prepare","useModal","Target","Hoc","fixUnit","getTransformOrigin","originX","originY","moveEvent","okCancelEvent","getDefaultHeader","closeButton","_okBtn","_cancelBtn","getDefaultFooter","okBtn","cancelBtn","_modalChildrenProps","okCancel","okButton","okFirst","drawerOkFirst","registerOk","registerCancel","handleCancel","keyboardClosable","transformOrigin","contentNode","fullScreen","drawerBorder","autoCenter","contentStyle","getBody","footer","getFooter","contentReference","downEvent","offsetLeft","heightW","autoMove","moveX","moveY","ret1","ret2","getCloseButton","getWrappedHeader","movable","headerProps","handleHeaderMouseDown","renderChildren","getWrappedFooter","okProps","modalButtonProps","cancelProps","cancelText","saveCancelRef","normalizeProps","iconType","titleNode","iconNode","destroyAll","destroyAllFn","customizedPrefixCls","PictureViewer","MonthPicker","Notification","getCurrentValidValue","plusElement","minusElement","value1","value2","longPressPlus","plusIconProps","savePlusRef","handlePlus","handleOncePlus","onTouchStart","minIconProps","saveMinusRef","handleMinus","handleOnceMinus","wrapperInnerSpanButton","getSuffix","getInnerSpanButton","isKeeping","isPlus","nearStep","getNearStepValues","nextValue","plus","nearMaxStep","restrict","allowDecimal","isNegative","allowNegative","getFormatOptions","getFormatter","numberFieldNonStrictStep","defaultFormatNumber","ObserverNumberField","valueString","getMaxPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","precisionFix","precisionFactor","v1","v2","getBeforeStepValue","minFactor","stepFactor","getNearStepMoments","unitValue","mod","before","after","valueFactor","minFactorBase","maxFactor","beforeStepFactor","afterStepFactor","OptGroup","__PRO_OPT_GROUP","__PRO_OPTION","OTHER_OPTION_PROPS","getOptionsFromChildren","handleLabelMouseEnter","handleFieldMouseEnter","Output","defaultOutputRenderer","getRenderedValue","checkBoxPrefix","OverflowTip","defaultGetOverflowContainer","strict","getOverflowContainer","isOverFlow","utilIsOverflow","handleHiddenBeforeChange","getContentWidth","computedStyle","boxSizing","borderLeftWidth","borderRightWidth","pl","pr","bl","br","scrollWidth","textWidth","Pager","defaultItemRender","globalPagination","pageSizeOptions","maxPageSize","pageSizeEditable","jumpPage","showQuickJumper","simple","goButton","pageInput","disabledSender","itemRender","disabledValue","classNamePager","handlePagerClick","bufferSize","pagerList","getPager","showSizeChangerLabel","sizeChangerOptionRenderer","handlePageSizeBeforeChange","handlePageSizeChange","getOptions","showTotal","gotoButton","handleJumpGo","QuickJumper","handleJumpChange","hideOnSinglePage","sizeChangerPosition","showPager","quickJumperPosition","sizeChanger","renderSizeChange","valueChangeAction","ValueChangeAction","SizeChangerPosition","QuickJumperPosition","renderQuickGo","renderTotal","renderPagers","useState","focused","setFocused","Password","reveal","handleToggleReveal","lengthInfoWidth","doReveal","resetReveal","selectionEnd","selectionStart","setSelectionRange","verticalAlign","classPrefix","isHeaderCell","headerHeight","firstColumn","lastColumn","rowKey","rowData","depth","onTreeToggle","renderTreeToggle","wordWrap","treeCol","groupHeader","groupCount","isDragging","Cell","addPrefix","handleExpandClick","hasCustomTreeCol","isTree","expandButton","isTreeCol","role","onCell","fixed","tableStore","cellExternalProps","cellHidden","cellRowSpan","rowZIndex","rtl","nextHeight","getHeight","zIndex","contentStyles","textAlign","LAYER_WIDTH","cellContent","isNullOrUndefined","getChildren","unhandledProps","getUnhandledProps","Column","cell","highlightRowIndexs","beforeStr","substr","afterStr","renderTreeNodeExpandIcon","TableContext","defaultClassPrefix","rowDraggable","CellGroup","childArr","cloneChildren","Consumer","translateDOMPositionXY","_props","hideable","resizable","flexGrow","titleEditable","onResize","__PFM_TABLE_COLUMN","ColumnGroup","forwardRef","nodeStyles","__PRO_TABLE_COLUMN_GROUP","defaultColumnWidth","columnLeft","columnFixed","onColumnResizeStart","onColumnResizeEnd","onColumnResizeMove","ColumnResizeHandler","columnWidth","cursorDelta","mounted","deltaX","touchX","handleDragStart","touches","dragging","thisNode","addEvent","handleDrag","handleDragStop","onMove","isKeyDown","clamp","RESIZE_MIN_WIDTH","mouseMoveTracker","releaseMouseMoves","onColumnResizeMouseDown","getMouseMoveTracker","captureMouseMoves","Function","handleRef","removeEvent","ReactDOM","DOMMouseMoveTracker","unhandled","onTouchEnd","sortColumn","sortType","onSortColumn","HeaderCell","handleColumnResizeStart","handleColumnResizeEnd","iconClasses","ariaSort","renderSortColumn","renderResizeSpanner","prevState","isHeaderRow","rowRef","providedProps","regex","regex3d","parentValues","childValues","p_x","p_y","p_z","cursor","tableId","scrollLength","scrollBarOffset","clickScrollLength","showScrollArrow","onScroll","Scrollbar","scrollOffset","handleMouseDown","handlePressed","handleDragMove","handleScroll","contains","barOffset","pageY","pageX","handleWidth","delta","nextDelta","handleArrowClick","handleLength","barRef","initBarOffset","updateScrollBarPosition","getOffset","scrollDelta","forceDelta","SCROLLBAR_MIN_WIDTH","addStyle","IEstyles","scrollbarStyle","valuenow","onTouchMove","SelectionBox","getCheckState","defaultSelection","store","selectionDirty","selectedRowKeys","Checkbox","checkSelection","getCheckboxPropsByItem","getRecordKey","byDefaultChecked","getIndeterminateState","someCheckedNotByDefaultChecked","someCheckedByDefaultChecked","SelectionCheckboxAll","handleSelectAllChange","defaultSelections","hideDefaultSelections","newState","selections","selectionPrefixCls","customSelections","newSelections","renderMenus","polyfill","SORT_TYPE","DESC","ASC","autoHeight","affixHeader","affixHorizontalScrollbar","bordered","bodyRef","cellBordered","defaultExpandAllRows","defaultExpandedRowKeys","defaultSortType","disabledScroll","expandedRowKeys","loadAnimation","rowHeight","renderRowExpanded","rowExpandedHeight","renderLoading","rowClassName","showHeader","shouldUpdateScroll","translate3d","virtualized","onRowClick","onRowContextMenu","onExpandChange","onDataUpdated","customizedCode","customizable","columnDraggable","columnTitleEditable","columnsDragRender","rowSelection","CUSTOMIZED_KEY","getRowSelection","PerformanceTable","scrollListener","bscroll","tableRows","disableEventsTimeoutId","scrollY","scrollX","setRowBottomBorderList","nextRowZIndex","_cacheCells","_cacheScrollX","_cacheRenderCols","_cacheChildrenSize","_visibleRows","TableStore","listenWheel","scrollbarXRef","onWheelScroll","scrollbarYRef","recordKey","getCheckboxProps","checkboxPropsCache","checkboxProps","nativeEvent","getDefaultSelection","pivot","realIndex","expandedRowRender","row","shiftKey","changeRowKeys","sign","dist","abs","setSelectedRowKeys","selectWay","handleSelectRow","selectionKey","onSelectFunc","changeableRowKeys","customSelectionStartIndex","handleRadioSelect","renderSelectionBox","setOffsetByAffix","headerNode","headerWrapperRef","isNumberOrTrue","headerOffset","tableNode","tableRef","tableOffset","handleWindowScroll","affixTableHeader","pageYOffset","windowHeight","getTableHeight","fixedHorizontalScrollbar","getTableHeaderHeight","fixedScrollbar","contentHeight","fixedHeader","affixHeaderWrapperRef","toggleClass","handleSortColumn","getSortType","_cursorDelta","changeCustomizedColumnValue","isColumnResizing","mouseAreaRef","handleColumnResizeMove","mouseAreaLeft","isRTL","minScrollX","SCROLLBAR_WIDTH","handleTreeToggle","_rowIndex","getExpandedRowKeys","nextExpandedRowKeys","handleScrollX","handleScrollY","nextScrollX","nextScrollY","minScrollY","updatePosition","isScrolling","cancelAnimationTimeout","requestAnimationTimeout","debounceScrollEndedCallback","handleTouchStart","touchY","handleTouchMove","shouldHandleWheelY","shouldHandleWheelX","handleBodyScroll","tableBodyRef","resultDrag","onDragEndBefore","resultBefore","isDropresult","resData","calculateTableWidth","nextWidth","getWidth","resetScrollBarPosition","getControlledScrollTopValue","forceUpdate","getControlledScrollLeftValue","coord","bindTableRowsRef","bindRowClick","bindRowContextMenu","findRowKeys","shouldFixedColumn","cacheData","flattenData","tableRowsMaxHeight","wheelHandler","WheelHandler","getTranslateDOMPositionXY","enable3DTransform","wheelWrapperRef","tableHeaderRef","rowSelectionFixed","columnsWithRowSelectionProps","columnIndex","columnsWithRowSelection","renderRowSelection","originalColumns","originalChildren","calculateTableContextHeight","calculateRowMaxHeight","initPosition","bindElementResize","tableBody","initBScroll","wheelListener","onWheel","nextState","updateProps","eq","calculateTableContentWidth","unbindElementResize","off","touchStartListener","touchMoveListener","customized","heightType","cusHeight","heightDiff","tempCustomized","tableHeight","tempHeightType","TableHeightType","flex","SCROLLBAR_LARGE_WIDTH","visibleColumn","col","getColumnProps","processTableColumns","flattenColumns","columnChildren","cellProps","childColumns","childColumn","groupCellProps","flatColumns","calculateFixedAndScrollColumn","fixedLeftCells","fixedRightCells","scrollCells","flatData","selectionColumn","columnTitle","selectionCheckboxAll","checkboxAllDisabled","headerCells","bodyCells","columnsJson","columnHack","allColumnsWidth","getTableColumns","tableWidth","getTotalByColumns","totalFlexGrow","totalWidth","headerCellProps","customizationHeaderProps","customizedColumnHeader","selectionInfo","selectedRows","onSelectMultiple","changeRows","onSelectAll","onSelectInvert","BScroll","disableMouse","disableTouch","useTransition","scrollbar","probeType","momentumLimitTime","hooks","scroller","actions","thHooks","actionsHandler","pos","updatePositionByFixedCell","wheelStyle","headerStyle","wheelElement","headerElement","affixHeaderElement","hasChildNodes","firstChild","wheelGroupStyle","scrollGroups","getScrollCellGroups","fixedLeftGroups","getFixedLeftCellGroups","fixedRightGroups","getFixedRightCellGroups","scrollArrayGroups","leftShadowClassName","rightShadowClassName","showLeftShadow","showRightShadow","cellArray","toPx","getRowHeight","nextContentHeight","rowNum","_lastRowIndex","shouldRenderExpandedRow","nextRowKey","rowProps","renderRow","fixedLeftCellGroupWidth","fixedRightCellGroupWidth","isFixedStart","isFixedEnd","restRowProps","rowStyles","rowRight","cellUnit","setNextRow","uniq","mergeCells","resetLeftForCells","spanStyles","rowWidth","fixedStyle","bodyHeight","minLeft","bodyStyles","topHideHeight","bottomHideHeight","renderCols","minTop","maxTop","isCustomRowHeight","isUncertainHeight","displayColWidth","renderLeftFixedCol","renderRightFixedCol","showNum","divideLeftFixedCol","divideRightFixedCol","bc","val","elem","colStartIndex","currentDisplayColWidth","divideWidth","colEndIndex","keyIndex","nextRowHeight","CELL_PADDING_HEIGHT","findAllParents","shouldShowRowByExpanded","renderRowData","endIndex","wheelStyles","pointerEvents","topRowStyles","bottomRowStyles","LocaleReceiver","componentName","renderInfo","renderScrollbar","emptyMessage","decScrollBarOffset","loadingElement","toolbar","toolBarRender","settings","Toolbar","hideToolbar","getCellDescriptor","clesses","lineHeight","totalHeight","PerformanceTableQueryBar","renderTableToolbar","renderTableHeader","renderTableBody","renderMouseArea","ProfessionalBar","DynamicFilterBar","rlt","mergeDefaultProps","customizedColumns","defaultKey","columnSort","leftColumns","rightColumns","newColumn","childrenColumns","ColumnLock","sortBy","saveCustomizedDebounce","saveCustomized","setCheckboxPropsCache","customizedActiveKey","loadCustomized","handleLoadCustomized","tableCustomizedLoad","CustomizationSettings","padding","CustomizationColumnHeader","onHeaderClick","openCustomizationModal","initColumns","columnKey","oldCustomized","tableCustomizedSave","columnHideable","getCustomizable","originalHeightType","isCalcSize","normalizeColumnsToTreeData","_sort","parentColumn","parentKey","getColumnFixed","HEIGHT_CHANGE_KEY","proPrefixCls","setCustomizedColumns","tableRecord","handleHeightTypeChange","columnDataSet","handleRestoreTable","handleRestoreColumns","handleOption","handleCollapseChange","isActive","tableHeightType","Collapse","expandIcon","expandIconPosition","ghost","CollapsePanel","extra","groupClassName","ColumnGroups","Group","treeNodeRenderer","treeNodeSuffix","Tree","SubGroups","findRecords","ItemSuffix","changeFixed","oldFixed","oldGroup","changeIndex","newIndex","oldSort","removed","arg","getTreeNodesMenus","menus","Switch","dom","ItemTitle","editing","handleEditBlur","handleHeaderChange","SubGroup","childrenRecords","treeNode","TreeNode","groupedTreeRecords","handleDragTree","srcIndex","destIndex","srcLock","destLock","srcGroup","destGroup","destRecords","handleDragTreeNode","srcDroppableId","destDroppableId","dest","getGroupHeader","groupNodes","renderClone","selfPrefixCls","isExpanded","expended","setExpanded","isHover","setIsHover","toggleExpanded","renderSwitcherIcon","getIcon","isEnumEmpty","originalValue","oEp","nEp","getQueryData","queryData","TableDynamicFilterBar","refDropdown","refFilterWrapper","refEditors","originalConditionKeys","enterNum","handleClickOut","fieldSelectHidden","codes","selectFields","handleUnSelect","pull","handleDataSetUpdate","handleDataSetCreate","orglValue","conditionStatus","onQuery","setConditionStatus","conditionData","handleQuery","childHeight","dynamicFilterBar","tableFilterAdapter","renderPrefix","quickSearch","QuickFilterMenu","onStatusChange","getExpandNode","renderSuffix","suffixes","ColumnFilter","prefixes","getFilterMenu","wrapperNode","queryField","itemClassName","createFields","dropdownNode","FieldList","closeMenu","onUnSelect","stopImmediatePropagation","getQueryBar","openMore","moreFields","defaultExpanded","handleQueryReset","handleFieldEnter","queryFormProps","currentFields","moreFieldsButton","getMoreFieldsButton","getResetButton","__TableQueryBarType","filterBarProps","filterBar","getPlaceholderByField","getEditorByField","getQueryFields","renderProfessionalBar","renderDynamicFilterBar","domEvent","setDropDownHidden","handleHiddenChange","menuColumns","onDeselect","handleMenuUnSelect","getSettingItem","setting","settingConfig","ToolBar","tableContext","toolbarPrefixCls","buttonsDom","btn","settingsDom","settingItem","ReactContext","inputOptions","capture","attachEvent","detachEvent","findHiddenKeys","hiddenColumnKeys","findParent","_parent","flattenItems","propTypeKeys","isNull","isUndefined","getAttribute","cloneCell","nextCells","groupChildren","nextCell","nextCellWidth","colSpanWidth","cellText","globalKey","getClassNamePrefix","curry","cancelAnimationFramePolyfill","requestAnimationFramePolyfill","extraWidth","parentKeys","intersectionKeys","intersection","toggle","condition","addClass","removeClass","sources","propStatus","PictureContext","customPrefixCls","imgRef","setStatus","inView","setInView","modalPreview","wrapperStyle","elementStyle","img","Image","onLoad","registerPicture","unRegisterPicture","useImperativeHandle","renderSources","renderImg","isPictureSupport","HTMLPictureElement","picture","ReactIntersectionObserver","ForwardPicture","Context","pictureList","defaultIndex","setIndex","handlePrev","handleNext","C7NProgress","labelRef","labelText","getLabelText","floatLabel","renderSwitchFloatLabel","getChildrenText","getLabelChildren","saveLabelRef","setChecked","box","__PRO_RADIO","ObserverRadio","Range","dragEvent","renderTrack","getPercent","handleTrackClick","track","totalLength","oneStepLength","Rate","handleHelpMouseEnter","handleHelpMouseLeave","renderTooltipHelp","C7NRate","__PRO_RATE","ObserverRate","ReactQuill","Quill","register","QuillImageDropAndPaste","BaseEditor","imgOpen","images","handleOpenLightBox","nodeName","deltaOps","imgArr","image","getEditor","setContents","_","__","___","rtDelta","getContents","ops","clipboard","convert","toolbarId","RichTextViewer","handleRichTextChange","bounds","renderContent","LightBox","mainSrc","onCloseRequest","imageTitle","prevSrc","nextSrc","onMovePrevRequest","onMoveNextRequest","RichTextToolbarType","defaultRichTextOptions","RichText","randomWord","rtOptions","getRichTextOptions","modules","imageDropAndPaste","handleRichTextBlur","RichTextMode","escape","str","html","delta2Html","dangerouslySetInnerHTML","__html","RichTextToolbar","renderToolBar","QuillDeltaToHtmlConverter","text2Delta","description","temp","converter","substring","randomString","chars","maxPos","charAt","random","randomFlag","ImageData","dataUrl","maxWidth","quality","onload","canvas","ctx","getContext","drawImage","canvasType","canvasDataUrl","toDataURL","File","toBlob","base64","buff","binaryStringToArrayBuffer","atob","createBlob","binary","buffer","ArrayBuffer","Uint8Array","charCodeAt","parts","properties","Blob","Builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","builder","getBlob","ImageDropAndPaste","quill","handleDrop","handlePaste","dataTransfer","caretRangeFromPoint","getSelection","setBaseAndExtent","startContainer","startOffset","readFiles","clipboardData","reader","FileReader","blob","getAsFile","readAsDataURL","getLength","insertEmbed","expandedButton","iconExpanded","handleExpanedClick","handleConfirm","onConfirm","handleDeselect","_info","getScreeningOption","colProps","valueRecord","textNode","screeningOptionProps","optionkey","optionRender","ScreeningOption","handleMultiple","screeningMultiple","handleClear","onRef","processValueNormal","multipleButton","expandButtonContainer","needExpandButton","labelNode","allClassName","getMergedClassNames","ObserverButton","colNumber","ScreeningOptionPrefix","attrs","mouseEvent","checkbox","mergeValue","valueNow","handleCloseItem","filedName","renderTag","tagRender","tagsProps","itemText","tagProps","handleClose","labelTitle","tagItemProps","Tag","filteredChildren","_index","screenProps","ScreeningItem","GroupIdGen","handleInput","optionsFilter","itemProps","handleItemChange","renderItem","Element","renderSearcher","renderSelectAll","handleQueryMore","selectAllButton","updateActiveKey","getStore","menuId","getEventKey","DISABLED_FIELD","isRenderEmpty","checkValue","checkCombo","removeComboOptions","commonItem","paramMatcher","selectReverse","maxCommonTagCount","maxCommonTagPlaceholder","maxCommonTagTextLength","textRecord","handleCommonItemClick","optionTooltip","getGroups","IeMenuStyle","IeItemStyle","ItemGroup","recordValues","tooltipTheme","getPopupContent","getSearchFieldProps","handlePopupSearch","builtInButtons","chooseRe","BACKSPACE","findRecord","getFlatInstanceArray","comboOptions","optionsWithCombo","currentComboOption","removeComboOption","createComboOption","restricted","restrictInput","valuesDisabled","selectedOptions","optionIsSelect","_maxLength","$searchText","__PRO_SELECT","Avatar","C7nAvatar","SkeletonButton","C7nSkeletonButton","dispalyName","SkeletonInput","C7nSkeletonInput","Skeleton","skeletonTitle","omitProps","C7nSkeleton","Input","SkeletonAvatar","C7NSpin","AttachmentStore","batchCallback","uuids","merger","defaults","noCacheAdapter","LookupCodeStore","lookupBatchAxiosConfig","lookupAxiosConfig","processAxiosConfig","getUrl","getQueryAxiosConfig","conditionFieldType","INT","TEXT","DATE","DATETIME","POPUP","generateConditionField","conditionField","conditionFieldName","conditionFieldLovCode","conditionFieldSelectCode","conditionFieldSelectUrl","conditionFieldSelectTf","conditionFieldSelectVf","conditionFieldRequired","aliasName","generateGridField","LovCodeStore","pendings","lovCodes","lovDefineAxiosConfig","getConfigUrl","getDefineAxiosConfig","dataSetProps","lovPageSize","parentIdField","configDataSetProps","dsProps","conditionFieldSequence","conditionFieldSequence2","configItem","querys","lovDefineUrl","lovQueryAxiosConfig","lovQueryUrl","getQueryUrl","customUrl","stores","__PRO_SWITCH","AggregationButton","columnGroup","setAggregationCellExpanded","columnGroups","allLeafs","aggregation","aggregationExpandType","getOverlay","defaultMinWidth","defaultAggregationMinWidth","defaultAggregationRenderer","ColumnDefaultProps","aggregationLimit","__PRO_TABLE_COLUMN","minColumnWidth","getColumnLock","wide","leafs","sum","leftLeafs","rightLeafs","ExpandIcon","expandable","iconPrefixCls","ExpandedRow","ResizeObservedRow","handleResize","_width","ReactResizeObserver","resizeProp","immediately","SelectionTips","handleSwitch","newShowCachedSelection","cachedButton","showSelectionTips","SelectionTreeBox","SELECTION_KEY","StickyShadow","onlyCustomizedColumn","stickyLeft","stickyRight","scrollBarWidth","leftLeafColumnsWidth","rightLeafColumnsWidth","overflowY","buttonsEnumType","TableButtonType","expandAll","collapseAll","_instance","_tableContain","thead","headtr","tbody","wrapperWidth","setSpin","refSpin","resizeLine","duplicate","wrapperWidthTimer","offsetParent","styledHidden","syncSizeInFrame","performanceEnabled","performanceOn","initDefaultExpandedRows","inlineEdit","currentEditRecord","findCell","keyboard","ctrlKey","metaKey","handleKeyDownUpShift","handleKeyDownDownShift","prePage","nextPage","S","handleKeyDownCTRLS","N","handleKeyDownCTRLN","D","handleKeyDownCTRLD","DELETE","handleKeyDownCTRLDELETE","dataset","focusRow","firstRow","lastRow","editors","currentElementSibling","isCanEdictingRow","previousElementSibling","findIndexedSibling","cloneRecodData","dealCloneRecodData","editeColumn","nowValue","uniqueFieldIterator","uniqueFieldNames","returnRecod","nextElementSibling","expandedRowRenderer","setRowExpanded","parityRow","spin","connect","syncSize","disconnect","scrollId","bodyHeightReaction","handleWindowResize","virtual","overflowX","isAnyColumnsLeftLock","isAnyColumnsRightLock","treeQueryExpanded","virtualSpin","buttonsLimit","summaryFieldsLimit","filterBarFieldName","filterBarPlaceholder","summaryBar","clientExportQuantity","indentSize","rowRenderer","expandRowByClick","rowDragRender","autoMaxWidth","summary","searchCode","getTable","getPagination","TablePaginationPosition","tableSpinProps","tableButtonsLimit","styleHeight","TableContextProvider","TableQueryBar","getSpinProps","saveVirtualSpinRef","isStickySupport","getLeftFixedTable","getRightFixedTable","saveResizeRef","move","reorderDataSet","handle","handleBodyScrollTop","handleBodyScrollLeft","tableFootWrap","fixedColumnsBodyLeft","bodyTable","tableBodyWrap","fixedColumnsBodyRight","lastScrollTop","setLastScrollTop","headTable","tableHeadWrap","footTable","lastScrollLeft","cellNode","alignEditor","hideEditor","setScrollPositionClassName","isAnyColumnsLock","scrollToLeft","scrollToRight","setScrollPosition","ScrollPosition","middle","scrollPosition","hasHeader","hasBody","hasFooter","rightColumnGroups","leftColumnGroups","TableWrapper","getTableHeader","VirtualWrapper","getTableBody","getTableFooter","paginationPosition","getPaginationPosition","paginationProps","tableHead","tableFooter","tableHeadRef","tableFootRef","renderTable","TableBody","getRef","TableTBody","TableHeader","TableFooter","nextFrameActionId","parentTop","parentHeight","paddingBottom","tableTop","paddingBottomPx","TableAutoHeightType","maxBodyHeight","tableHeader","getStyleHeight","computedHeight","getComputedHeight","isComputedHeight","footerHeight","rowMinHeight","minTotalHeight","defaultRowExpanded","immediate","FilterBar","AdvancedQueryBar","TableRow","TableHeaderCell","showRemovedRow","columnEditorBorder","advancedBar","bar","useMouseBatchChoose","showAllPageSelectionButton","editMode","TableEditMode","inline","HighLightRowType","dragColumnAlign","DragColumnAlign","expandIconAsCell","expandIconColumnIndex","autoFootHeight","virtualRowHeight","rowBoxPlacement","RowBoxPlacement","getHeightStyle","fixedLeft","hasFooterAndNotLock","hasLockAndNoFooter","TableCell","tableAggregation","cellPrefix","tableColumnOnCell","getInnerNode","onCellStyle","inAggregation","TableCellInner","getColumnsInnerNode","hiddenInAggregation","isBuiltInColumn","columnOnCell","innerNode","renderInnerNode","visibleChildren","aggregationDefaultExpandedKeys","aggregationDefaultExpandAll","isAggregationCellExpanded","hasExpand","defaultExpandedKeys","defaultExpandAll","columnLock","baseStyle","baseClassName","cellStyle","widthDraggingStyle","draggingStyle","inTab","multipleValidateMessageLengthRef","tooltipShownRef","innerPrefixCls","getColumnTooltip","command","fieldDisabled","columnCommand","useComputed","canFocus","cellEditor","getEditorByColumnAndRecord","cellEditorInCell","isInCellEditor","hasEditor","showEditor","leftSide","rightSide","sl","activeElement","handleEditorKeyDown","handleCommandSave","handleCommandCancel","handleCommandEdit","handleCommandDelete","multiLine","checkBox","hasCheckFieldColumn","renderCommand","tableCommandProps","commands","tableButtonProps","TableCommandType","defaultButtonProps","renderEditor","newEditorProps","rendererProps","prefixStyle","isCheckBox","borderPadding","heightPx","lineHeightPx","ColumnAlign","colSpanStyle","innerStyle","utilRenderValidationMessage","editorBorder","utilProcessValue","columnResizing","currentEditor","innerProps","innerClassName","inValid","indentText","output","cellHighlightRenderer","TableCol","hasEmptyWidthColumn","canTreeLoadData","isTextArea","__PRO_TEXTAREA","isHTMLElement","topNode","initialize","TableEditor","handleEditorBlur","handleWindowClick","virtualData","editorNextKeyEnterDown","showNextEditor","parentTdNode","parentTrNode","cloneRecordData","dealCloneRecordData","editorProps","editorCellNode","rendered","originalCssText","forcePositionChanged","reserve","handleEditorKeyEnterDown","handleEditorClick","currentEditorName","renderMultiLineEditor","resize","ResizeType","handleEditorResize","saveWrap","lockColumnsFootRowsHeight","getTds","hasPlaceholder","tds","TableFooterCell","placeHolderProps","classList","tr","footerClassName","footerStyle","innerClassNames","columnResizable","headerRows","getTableHeaderRows","isHeaderHover","setIsHeaderHover","nodeRef","getHeaderNode","handleTheadMouseEnter","handleTheadMouseLeave","getTrs","notLockLeft","lastColumnClassName","lastLeaf","TableHeaderRow","theadProps","headerClassName","needIntersection","virtualCell","useInView","rootMargin","globalRef","bodyLeft","resizeBoundary","resizeEvent","setSplitLineHidden","setSplitLinePosition","resizeColumnGroup","resizePosition","resizeEnd","resizeColumn","newWidth","th","resizeStart","delayResizeStart","prevColumnGroup","currentColumnGroup","TableColumnTooltip","setResizeGroup","headerDom","handleLeftResize","handleStopResize","handleRightResize","resizeDoubleClick","getMaxClientWidth","handleLeftDoubleClick","handleRightDoubleClick","renderResizer","resizerPrefixCls","getHelpIcon","fieldHelp","helpIcon","sortIcon","childNodes","thProps","setRowHeight","lockColumnsHeadRowsHeight","getHeaderRowStyle","needStoreRowHeight","mouseBatchChooseState","initialInView","intersectionRef","isDisabledRow","childrenRenderedRef","needSaveRowHeight","hasAggregationColumn","rowExternalProps","expandedRow","isLoading","isRowPending","isLoaded","isRowLoaded","isRowExpanded","isRowHover","lockColumnsBodyRowsHeight","setRowHover","handleSelection","handleClickCapture","onClickCapture","rowClicked","handleSelectionByClick","handleSelectionByMouseDown","handleSelectionByDblClick","handleExpandChange","bottomSide","st","onTreeNodeLoad","renderExpandRow","expandRows","expandRowExternalProps","EXPAND_KEY","renderExpandIcon","needIndentSpaced","onExpand","hasExpandIcon","getCell","DRAG_KEY","columnLength","rowPrefixCls","isSelectedRow","mouseBatchChooseIdList","dblclick","mousedown","boundingClientRect","ROW_NUMBER_KEY","AGGREGATION_EXPAND_CELL_KEY","columnFilter","getIdList","mouseBatchChooseStartId","mouseBatchChooseEndId","endId","idList","getRowNumbers","pageIndex","path","indexInParent","hasCheckField","lastSelected","pointKeys","pointRecord","rangeRecords","changedRecords","rangeRecord","batchSelectProps","handleDragMouseUp","changeMouseBatchChooseIdList","startRecord","childrenHasAffregationColumn","normalizeColumns","normalizeColumn","getHeaderTexts","inBatchExpansion","renderStart","renderEnd","isSelectAll","expandedRows","leftOriginalColumns","rightOriginalColumns","setProps","onAggregationChange","customAggregation","leafNamedColumns","hasRowBox","expandedKeys","disHandler","childrenLoaded","hoverRow","treeLoadData","treeAsync","setRowPending","queryMoreChild","setRowLoaded","rowNumber","numbers","pathNumbers","customizedLoaded","allChecked","setAllPageSelection","handleAllPageSelectionMenuClick","renderAllPageSelectionMenu","virtualHeight","calcBodyHeight","propAggregation","defaultAutoHeight","virtualStartIndex","virtualEndIndex","dragColumn","dragRow","tableRowHeight","tableColumnEditorBorder","tableShowSelectionTips","renderRowNumber","multipleSelectionRenderer","draggableColumn","renderDragBox","expandColumn","rowNumberColumn","customizedColumn","selectedLength","onPerformance","handlePerformance","getRows","getEmptyRow","rubric","isDraggingStyle","leafColumnsWidth","leafColumnsBody","getContainerForClone","getRow","emptyText","tdStyle","renderExpandedRows","hasPlaceHolder","colGroup","fixedColumnLength","virtualTop","setHeight","changeLock","oldLock","cloneProvided","cloneSnapshot","getPrefixCls","setSearchText","o","hasSelect","hasSelectAll","renderGroup","selectItems","FilterSelect","setFilterText","filterText","optionDataSet","handleDataSetReset","selectField","paramName","getFieldLabel","setQueryValue","getQueryValues","getQueryFieldMultiple","getQueryField","filtered","setSelectField","addQueryParams","getQueryRecord","multipleFieldExistsValue","handleFieldEnterDown","isEditorReadOnly","getInputFilterOptions","getFieldSelectOptions","hiddenIfNone","handleFieldChange","getFieldEditor","getFieldSelect","TableAdvancedQueryBar","isMore","newStyle","valueFilter","getFilterSelect","TableButtons","buttonGroup","refSingleWrapper","originalConditionFields","setOriginalConditionFields","shouldUpdate","suffixesDom","tableButtons","fuzzyQuery","autoQueryAfterReset","fuzzyQueryPlaceholder","getPrefix","getFuzzyQuery","quickFilterMenu","onOriginalChange","resetButton","isSingleLineOpt","expandNode","singleLineModeAction","TableFilterBar","getButtons","formProps","filterBindField","newFields","TableToolBar","dirtyInfo","getMoreButton","getDirtyInfo","ExportBody","exportMessage","ExportFooter","exportButton","username","setUsername","messageTimeout","setMessageTimeout","currentTimeout","moreSummary","renderSummary","exportModal","getColumnHeaders","columnHeaders","exportDataSet","handleExport","exportData","handleExportButton","handleButtonCreate","handleButtonSubmit","handleButtonDelete","handleButtonRemove","handleButtonReset","handleButtonExport","handleExpandAll","handleCollapseAll","fieldTypeArr","summaryCol","hasSeparate","summaryValue","summaryObj","currentSummaryBar","moreSummaryButton","getMoreSummaryButton","buttonsLimits","buttonsArr","moreButton","getSummaryBar","showQueryBar","tableQueryBarProps","expandTree","collapseTree","renderFilterBar","renderAdvancedQueryBar","getTransportConfig","ConditionDataSet","QuickFilterDataSet","Store","StoreProvider","searchCodes","filterMenuDS","conditionDataSet","menuDataSet","isSampleEmpty","findFieldObj","ModalContent","onLoadData","putData","statusAdd","fieldObj","comparator","hasValueFields","pt","otherRecord","searchId","showLengthInfo","optionDs","conditionAssign","conditionList","emptyRecord","locateData","defaultMenu","handleDelete","currentId","delRecord","getTitle","handleSave","toJSONFields","handleEdit","handleSaveOther","setDefaultFlag","defaultFlag","isDefault","userSelect","isQueryField","flatProps","TreeSelect","TimePicker","WeekPicker","YearPicker","STICKY_SUPPORT","vendorList","stickyElement","vendor","wrapperSelector","sibling","getAttributeNodeNS","dropResult","getResizeProp","TextArea","autoSize","transition","minRows","maxRows","calculateNodeHeight","resized","elementProps","lengthElement","renderLengthInfo","renderPlaceHolder","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","hiddenTextarea","calculateNodeStyling","paddingSize","borderSize","sizingStyle","nodeInfo","uiTextNode","setAttribute","removeAttribute","singleRowHeight","RenderedText","onContentChange","renderedValueRef","setContent","useLayoutEffect","PLACEHOLDER_SUPPORT","defaultWrap","isPlaceHolderSupport","handleChangeWait","getHandleChange","renderedStartText","renderedEndText","tagContainer","addonAfterRef","addonBeforeRef","startPlaceHolder","unRenderedText","processedText","unRenderedStartText","unRenderedEndText","getEditorTextInfo","autoComplete","addonBefore","addonAfter","renderedValue","renderRenderedValue","getWrappedEditor","otherPrevNode","getOtherPrevNode","otherNextNode","getOtherNextNode","placeholderDiv","multipleHolder","renderMultipleHolder","ZIndexOfIEProps","addonBeforeStyle","addonAfterStyle","inputElement","renderInputElement","TextFieldGroup","wrapGroupItem","GroupItemCategory","saveAddonBeforeRef","handleAddonBeforeKeyDown","saveAddonAfterRef","handleAddonAfterKeyDown","placeholderOrigin","startRenderedValue","startStyle","endStyle","endRenderedValue","startWidth","endPlaceholder","endWidth","editorStyle","textIndent","texts","componentProps","saveTagContainer","lastAnimationRecord","handleTagAnimateEnd","onEnter","handleTagAnimateEnter","renderRangeEditor","renderMultipleEditor","getMultipleText","editorTextInfo","getDefaultSuffix","hasValue","getPlaceHolderNode","noRangeValue","handleRenderedValueChange","clearRenderedText","handleInnerButtonMouseDown","focusableElement","removeLastValue","handleMousedown","defaultPrevented","splitObject","picked","ommitted","getDisabledCompatableChildren","elementType","spanStyle","buttonStyle","PopupContent","translate","arrowCls","contentCls","arrowStyle","_source","_align","_target","getRootDomNode","restProps","hasHiddenProp","onPopupAlign","handlePopupAlign","defaultPopupHidden","arrowPointAtCenter","getPlacements","verticalArrowShift","mouseEnterDelay","mouseLeaveDelay","manager","TooltipContainer","task","tooltipProps","setTooltipProps","duration","preState","handlePopupMouseEnter","handlePopupMouseLeave","onPopupMouseEnter","onPopupMouseLeave","popupContainer","getGlobalPopupContainer","createRef","sourceSelected","targetSelected","selectRecord","titles","TransferList","handleSourceSelectAllChange","sourceFilter","TransferOperation","leftActive","rightActive","moveToLeft","handleMoveToLeft","moveToRight","handleMoveToRight","handleTargetSelectAllChange","handleTargetMenuClick","targetFilter","selectedText","searchField","getSearchField","getHeaderSelected","__PRO_TREE_SELECT_NODE","unChooseRecords","unChooseParents","selectedRecords","preSelected","childRecord","chooseRecord","treeDefaultExpandAll","treeDefaultExpandedKeys","treeCheckable","getTreeNodes","handleTreeNode","ripple","handleTreeCheck","handleTreeSelect","onCheck","handleExpand","checkedKeys","normalizeTreeNodes","ThreeSelect","__treeNodeProps","defaultNodeCover","keyPropType","stateCheckedKeys","stateExpandedKeys","stateLoadedKeys","defaultSelectedKeys","defaultCheckedKeys","defaultCheckKeys","initDefaultCheckRows","initDefaultSelectRows","initDefaultLoadedRows","dealDefaultCheckExpand","selectKey","defaultKeys","defaultAll","defaultStateKeys","eventObj","setExpand","oldCheckedKeys","setCheck","diffKeys","xor","titleField","onTreeNode","handleCheck","loadedKeys","C7NTree","showLine","checkStrictly","defaultExpandParent","autoExpandParent","onRightClick","onDragStart","onDragEnter","onDragOver","onDragLeave","onDrop","filterTreeNode","motion","switcherIcon","getTreeNode","treeNodeProps","popupTask","getPopupProps","popupCls","triggerShowDelay","triggerHiddenDelay","tabIntoPopupContent","getPopupAlignTarget","saveTrigger","focusDelay","blurDelay","getPopupClassName","onPopupAnimateAppear","handlePopupAnimateAppear","onPopupAnimateEnd","handlePopupAnimateEnd","getPopupStyleFromAlign","getTriggerIconFont","getResponse","xhr","responseText","saveNativeInputElement","nativeInputElement","handleWrapperBtnClick","handleUploadBtnClick","startUpload","fileList","removeFileItem","uploadFiles","handleOnRemove","uploadFileList","defaultFileList","uniqBy","formAction","uploadImmediately","showPreviewImage","previewImageWidth","showUploadBtn","showUploadList","inputWrapperBtn","IeStyle","UploadList","appendUpload","tempFileList","fileBuffer","onFileChange","fileListMaxLength","partialUpload","isAcceptFiles","that","xhrWithCredentials","XMLHttpRequest","onprogress","errorMsg","isSuccessful","setRequestHeader","send","onerror","ontimeout","timeoutMsg","targetItem","getFileItem","onRemoveFile","matchKey","T","previewImg","progress","removeIcon","progressProps","listWrapperCls","useMobxComputed","inputs","ValidationResult","control","clearErrors","uniqueRefFields","uniqueRefField","reportMessage","dsName","innerValidationResults","rules","addError","execute","valueMiss","validationRules","controlProps","omitBy","getValidatorProps","ruleName","validatorInnerValidationResults","uniqueRefValidationResult","Validity","badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","uniqueError","isBadInput","generatePattern","endsWith","isUnderflow","isStepMismatch","nearStepValues","emailReg","urlReg","colorRgbaReg","colorHexReg","isNotDateIf","isNotDate","validateType","otherValue","otherObjectValue","dataSetField","isEmptyArray","eventName","handles","delegates","delegateFn","isEventListenerOptions","isAddEventListenerOptions","getCapture","isSameHandler","handleFn","otherFn","otherOption","callHandler","once","delegate","handleEvent","newHandle","captureIndex","handleOptions","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","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","E","F","G","H","I","J","K","L","M","O","P","Q","R","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","setInterval","clearInterval","getTooltipPolyfill","validationTooltipTheme","builtInHeight","calcReg","unitReg","calcMatches","calc","eval","unitMatches","u","cssUnitConverter","addEventListenerWrap","eventType","unstable_batchedUpdates","addDOMEventListener","createChains","chains","animation","isCssAnimationSupported","domPrefixes","elm","animationName","flexSupported","isFlexSupported","scrollbarWidth","rootFontSize","getRootFontSize","scrollDiv","matchMediaPolifill","mediaQuery","media","addListener","removeListener","animate","done","requestAnimationFrameId","cssAnimation","enter","leave","appear","replaceElement","replacement","resizeObserver","boxSize","contentRect","borderBoxSize","borderBox","isBorderBox","inlineSize","blockSize","fixedWidth","fixedHeight","onComponentUpdated","destroyObserver","ResizeObserver","observe","warned","isWindow","isChildrenFunction","Align","saveSourceRef","childrenRef","onAlign","domAlign","r1","r2","monitorWindowResize","forceAlign","startMonitorWindowResize","preHidden","preAlign","preTarget","reAlign","lastTarget","stopMonitorWindowResize","monitorBufferTime","resizeHandler","bufferMonitor","isFailX","elFuturePos","elRegion","visibleRect","isFailY","isCompleteFailX","isCompleteFailY","getVisibleRectForElement","getRegion","rect","isOutOfVisibleRect","targetRegion","flip","reg","flipOffset","getAlignOffset","region","getElFuturePos","refNodeRegion","p1","p2","adjustForViewport","resizeWidth","resizeHeight","refNode","newOverflowCfg","newElRegion","isTargetNotOutOfVisible","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","getChildrenFromProps","currentlyAnimatingKeys","keysToEnter","keysToLeave","toArrayChildren","childrenRefs","performEnter","childRef","componentWillEnter","handleDoneAdding","performAppear","componentWillAppear","onAppear","isValidChildByKey","performLeave","animUtil","allowAppearCallback","allowEnterCallback","componentWillLeave","handleDoneLeaving","onLeave","currentChildren","allowLeaveCallback","isSameChildren","nextChildren","stop","newChildren","nextChild","newChild","currentChild","findChildInChildrenByKey","mergeChildren","hasPrev","showInNext","showInNow","findShownChildInChildrenByKey","hasNext","transitionEnter","transitionLeave","stateChildren","AnimateChild","passedProps","transitionMap","isEnterSupported","isAppearSupported","isLeaveSupported","animationType","finishCallback","nameIsObj","stopper","activeName","cssAnimate","getStyle","c1","c2","same","child2","nextChildrenPending","pendingChildren","getNumberArray","ScrollNumber","renderCurrentNumber","getPositionByNum","animateStarted","removeTransition","lastCount","msTransform","WebkitTransform","renderNumberList","currentDigit","lastDigit","onAnimated","childrenToReturn","currentClassName","borderColor","boxShadow","renderNumberElement","Badge","showZero","customizePrefixCls","scrollNumberPrefixCls","overflowCount","dot","displayCount","isZero","isDot","statusCls","scrollNumberCls","badgeCls","styleWithOffset","scrollNumber","clicked","currentLoading","delayTimeout","htmlType","sizeCls","ComponentProp","kids","useWrapper","__C7N_BUTTON","ButtonGroup","highlightKeyword","keyword","defaultFilterOption","defaultRenderFilteredOption","defaultSortFilteredOption","defaultDisplayRender","__IS_FILTERED_OPTION","unwrappedValue","unwrappedSelectedOptions","handlePopupVisibleChange","popupVisible","inputFocused","onPopupVisibleChange","handleInputBlur","handleInputClick","handleInputChange","clearSelection","saveInput","flattenOptions","showSearch","flattenTree","displayRender","arrayTreeFilter","ancestor","customizeInputPrefixCls","inputPrefixCls","allowClear","pickerCls","inputProps","generateFilteredOptions","cachedOptions","isNotFound","resultListMatchInputWidth","matchInputWidth","clearIcon","renderCascader","cascaderLocal","enUS","RcCascader","saveCheckbox","rcCheckbox","checkboxGroup","shallowEqual","toggleOption","checkboxClass","RcCheckbox","contextTypes","CheckboxGroup","optionIndex","wrapperClassString","labelClassString","childContextTypes","panelProps","renderExpandTextContent","localeCode","expandIconPositionCof","iconCls","fold","unfold","expandIconCof","triggerCof","collapseClassName","expandIconContent","RcCollapse","Panel","openAnimation","showArrow","collapsePanelClassName","isCustomizable","defaultTooltipTheme","defaultRenderEmpty","defaultFormFieldHighlightRenderer","Popover","defaultSpinProps","defaultTableColumnAlign","_column","getComponentKey","defaultLookupCache","defaultStatus","defaultCustomizedSave","localStorage","setItem","defaultCustomizedLoad","getItem","defaultFormatter","defaultAttachment","defaultConfig","iconfontPrefix","collapseExpandIconPosition","collapseTrigger","lookupAxiosMethod","lovModalProps","lovAutoSelectSingle","tableBorder","tableHighLightRow","tableSelectedHighLightRow","tableDefaultRenderer","tableColumnResizable","tableColumnHideable","performanceTableColumnHideable","tableRowDraggable","tableColumnDraggable","performanceTableColumnDraggable","tableColumnAlign","tableAlwaysShowRowBox","tableUseMouseBatchChoose","tableEditorNextKeyEnterDown","tableAutoFocus","tableKeyboard","tableFilterSearchText","tableAutoHeightDiff","customizedSave","customizedLoad","tableShowRemovedRow","modalSectionBorder","drawerSectionBorder","modalOkFirst","modalAutoCenter","modalKeyboard","modalMaskClosable","buttonColor","buttonFuncType","selectPagingOptionContent","selectSearchable","selectTrigger","showInvalidDate","mergeProps","configure","rangePlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","stringOrNumber","objectOrNumber","sizeClassObj","sizeProps","defaultGutter","gutter","justify","rowStyle","viewBox","rotate","useInsertStyles","svgClassString","svgStyle","innerSvgProps","svgBaseProps","iconTabIndex","customCache","isValidCustomScriptUrl","scriptUrl","createScriptUrlElements","scriptUrls","currentScriptUrl","script","extraCommonProps","Iconfont","xlinkHref","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","hsv","light","getSaturation","saturation","toFixed","generate","opts","patterns","pColor","TinyColor","toHsv","colorString","toHexString","darkColorString","mix","SvgIcon","createFromIconfontCN","isIconDefinition","normalizeAttrs","rootProps","tag","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","cssInjectedFlag","styleStr","insertCss","prepend","cls","fixControlledValue","onPressEnter","handleCopy","onCopy","execCommand","handleTogglePassword","showPassword","saveRenderedRef","savePrefix","saveSuffix","setRenderedStyle","suffixWidth","prefixWidth","margin","copy","getInputClassName","showPasswordEye","getSizeClassName","renderInput","renderCopyIcon","renderShowPassword","getLengthInfo","autosize","Search","onSearch","enterButton","enterButtonAsElement","buttonOrIcon","getButtonOrIcon","searchSuffix","inputClassName","onNextFrame","requestAnimationFrame","clearNextFrameAction","nextFrameId","cancelAnimationFrame","textareaStyles","resizeTextarea","textAreaRef","handleTextareaChange","saveTextAreaRef","textArea","getWrapperClassName","getTextAreaClassName","c7nLocale","localeFromContext","exist","getLocale","getLocaleCode","Calendar","filterTitle","filterConfirm","filterReset","selectInvert","justOkText","Popconfirm","searchPlaceholder","itemUnit","itemsUnit","selectNone","filterPlaceholder","uploading","removeFile","uploadError","previewFile","imageCrop","editImage","avatarUploadError","avatarServerError","avatarUpload","avatarReminder","reUpload","imageTooLarge","imageUploadError","imageDragHere","pleaseUpload","uploadType","saveButton","changeAvatar","MenuItem","menuItem","saveMenuItem","inlineCollapsed","overlayClassName","rootPrefixCls","isMenuItem","SubMenu","subMenu","saveSubMenu","menuTheme","RcSubMenu","inlineOpenKeys","handleOpenChange","openKeys","setOpenKeys","onOpenChange","defaultOpenKeys","getInlineCollapsed","switchModeFromInline","siderCollapsed","openTransitionName","menuOpenAnimation","getRealMenuMode","getMenuOpenAnimation","menuClassName","collapsedWidth","RcMenu","Divider","defaultDuration","defaultTop","defaultBottom","messageInstance","defaultPlacement","getCustomizePrefixCls","getMessageInstance","contentClassName","newInstance","getPlacementStyle","getPlacementTransitionName","notice","removeNotice","defaultTransitionName","notificationInstance","defaultGetContainer","setNotificationConfig","getNotificationInstance","cacheKey","closeIcon","notification","typeToIcon","outerPrefixCls","autoMarginTag","api","saveTooltip","getPopupDomNode","overlayStyle","SIZE","Loading","cx","cy","ProgressPosition","renderPointer","successPercent","progressStatus","xmlns","getPointerDeg","gapDegree","gapDeg","percentDeg","diffDeg","deg","trailColor","strokeColor","gapPosition","showPointer","progressInfo","progressCenter","textFormatter","percentNumber","circleType","circle","dashboard","line","percentStyle","background","successPercentStyle","successSegment","circleSize","circleStyle","circleWidth","gapPos","Circle","trailWidth","getCheckedValue","matched","radio","RadioGroup","onRadioChange","ev","lastValue","radioGroup","radioProps","RadioButton","saveRate","rcRate","RcRate","character","backToToday","timeSelect","dateSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","setPopupVisible","menuIndex","triggerNode","activeOptions","getActiveOptions","currentLevel","currentOptions","getCurrentLevelOptions","nextIndex","emptyMenuClassName","Locale","menuItems","scrollActiveItemToView","expandProps","menuItemCls","expandIconNode","delayOnSelect","isActiveOption","activeOption","delayTimer","optionsLength","getShowOptions","itemComponent","singleMenuItemItem","showOptions","showOptionsIndex","dropdownMenuColumnStyleSingle","tabItemRender","indexItem","getTabItem","tabItemRenderResult","pleaseRenderProps","pleaseItem","PureRenderMixin","shouldComponentUpdate","globalProps","currentActiveKey","defaultActiveKey","openAnimationFactory","accordion","setActiveKey","destroyInactivePanel","headerClass","onItemClick","onClickItem","getItems","forceRender","headerCls","itemCls","handleItemClick","handleKeyPress","PanelContent","isInactive","_isActived","canUseDOM","MENUITEM_OVERFLOWED_CLASSNAME","DOMWrap","lastVisibleIndex","keyPrefix","overflowedItems","overflowedIndicator","propStyle","throwAway","visibility","menuAllProps","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","setStyle","menuItemNodes","getMenuItemNodes","menuItemSizes","overflowedIndicatorWidth","originalTotalWidth","cur","currentSumWidth","liWidth","setChildrenWidthAndResize","menuUl","MutationObserver","mutationObserver","attributes","childList","childNode","overflowed","getOverflowedSubMenuItem","hiddenClassName","createReactClass","getDefaultProps","selectInfo","selectedKey","innerMenu","getWrappedInstance","changed","processSingle","oneChanged","getActiveKey","updateMiniStore","lastOpen","subIndex","subMenuKey","extraProps","triggerSubMenuAction","renderCommonMenuItem","parentMenu","setInnerMenu","onDestroy","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","inlineIndent","onItemHover","componentWillUnmount","componentDidMount","manualRef","componentDidUpdate","handleRippleMouseEnter","keyPath","getActiveClassName","getSelectedClassName","getDisabledClassName","attribute","rippleProps","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","baseProps","onSubMenuClick","_menuId","saveMenuInstance","itemIcon","haveRendered","haveOpened","animProps","isInlineMode","getOpenClassName","isChildrenSelected","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","saveSubMenuTitle","popupAlign","popupOffset","connected","isSubMenu","allDisabled","originalActiveKey","loopMenuItem","getKeyFromChildrenIndex","instanceArray","SubPopupMenu","activeIndex","ci","childProps","newChildProps","createChainedFunction","getOpenTransitionName","domProps","leftTop","rightTop","menuEventKey","construct","styleProperty","Notice","clearCloseTimer","closeTimer","startCloseTimer","componentClass","seed","getUuid","notices","previousState","noticeNodes","getTransitionName","newNotificationInstance","div","called","noticeProps","items_per_page","label_items_per_page","first_page","last_page","prev_page","next_page","prev_5","next_5","prev_3","next_3","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","pathString","PI","trailPathStyle","strokeDasharray","strokeDashoffset","strokePathStyle","strokeLinecap","getPathStyles","stroke","enhancer","Line","pathStyle","viewBoxString","WrappedComponent","transitionDuration","prevTimeStamp","hoverValue","getStarValue","cleanedValue","onHoverChange","isReset","changeValue","allowHalf","stars","rate","starEle","getStarDOM","leftDis","getOffsetLeft","disabledClass","onHover","Star","starValue","getScroll","pageXOffset","getClientPosition","docElem","clientLeft","clientTop","parentWindow","arrowContent","afterVisibleChange","destroyTooltipOnHide","getTooltipContainer","getPopupElement","rightBottom","leftBottom","DropIndicator","dropPosition","dropLevelOffset","indent","Indent","isStart","isEnd","List","itemKey","containerRef","flexDirection","renderChild","scroll","MotionTreeNode","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","setVisible","TreeContext","motionedRef","CSSMotion","motionAppear","onAppearEnd","onLeaveEnd","motionRef","motionClassName","motionStyle","getTreeNodeProps","domRef","RefMotionTreeNode","HIDDEN_STYLE","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","itemHeight","getAccessibilityPath","RefNodeList","loadingKeys","halfCheckedKeys","keyEntities","dragOverNodeKey","onActiveChange","onListChangeStart","onListChangeEnd","listRef","indentMeasurerRef","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","diffExpanded","findExpandedKeys","rangeNodes","getExpandRange","newTransitionData","mergedData","renderFunction","mergedKey","VirtualList","fullHeight","NodeList","dragChildrenKeys","dropTargetKey","dropContainerKey","dropTargetPos","dropAllowed","flattenNodes","listChanging","dragStartMousePosition","onNodeDragStart","dragNode","newExpandedKeys","arrDel","getDragChildrenKeys","setExpandedKeys","onWindowDragEnd","convertNodePropsToEventData","onNodeDragEnter","allowDrop","calcDropPosition","delayedDragEnterLogic","entity","arrAdd","onNodeDragOver","stateDropPosition","stateDropLevelOffset","stateDropTargetKey","stateDropContainerKey","stateDropTargetPos","stateDropAllowed","stateDragOverNodeKey","onNodeDragLeave","onNodeDragEnd","outsideTree","cleanDragState","onNodeDrop","_node","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","posArr","posToArr","dragNodesKeys","dropToGap","onNodeClick","onNodeDoubleClick","onNodeSelect","selectedNodes","setUncontrolledState","onNodeCheck","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","oldCheckedObj","halfChecked","checkedNodes","checkedKey","conductCheck","keySet","checkedNodesPositions","onNodeLoad","currentLoadedKeys","currentLoadingKeys","newLoadedKeys","newLoadingKeys","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","flattenTreeData","onNodeExpand","targetExpanded","loadPromise","newFlattenTreeData","newActiveKey","offsetActiveKey","which","eventNode","disableCheckbox","atomic","forceState","needSync","allPassed","titleRender","dropIndicatorRender","getDataAndAria","convertTreeToData","entitiesMap","convertDataToEntities","warningWithoutKey","conductExpandParent","cloneKeyEntities","calcSelectedKeys","checkedKeyEntity","parseCheckedKeys","conductKeys","ICON_OPEN","ICON_CLOSE","defaultTitle","InternalTreeNode","dragNodeHighlight","onSelectorClick","isSelectable","onSelectorDoubleClick","isCheckable","targetChecked","setData","setSelectHandle","selectHandle","getNodeState","treeDisabled","syncLoadData","renderSwitcher","switcherIconFromProps","switcherIconFromCtx","switcherCls","renderCheckbox","$custom","renderSelector","treeIcon","mergedDraggable","wrapClass","$icon","currentIcon","$title","renderDropIndicator","showIndicator","treeSelectable","dragOver","dragOverGapTop","dragOverGapBottom","dataOrAriaAttributeProps","isEndNode","ContextTreeNode","isTreeNode","getPosition","dragNodeKey","dig","isLastChild","treeNodeEntity","isFirstChild","targetNode","startMousePosition","flattenedNodes","expandKeys","horizontalMouseOffset","rawDropLevelOffset","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeIndex","prevNodeKey","abstractDragOverEntity","abstractDropDataNode","dropNode","internalProcessProps","convertDataToTree","processor","processProps","childrenNodes","keyProps","keyList","conductUp","removeFromCheckedKeys","filteredKeys","isCheckDisabled","fillConductCheck","levelEntities","maxLevel","syntheticGetCheckDisabled","entities","childEntity","visitedKeys","partialChecked","cleanConductCheck","halfKeys","getCheckDisabled","warningMissKeys","hasEntity","levelSet","prevLen","nextLen","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","rootNodes","treeNodes","dataNode","parsedChildren","treeNodeList","expandedKeySet","flattenList","flattenNode","traverseDataNodes","dataNodes","externalGetKey","childrenPropName","configType","syntheticGetKey","processNode","parentPos","subNode","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","eventData","LazyRenderBox","Popup","popupDomNode","currentAlignClassName","getClassNameFromAlign","stretch","stretchChecked","targetHeight","targetWidth","$ele","savePopupRef","destroyPopupOnHide","sizeStyle","getZIndexStyle","popupInnerProps","saveAlignRef","rootNode","setStretchSize","popupInstance","maskTransitionName","maskAnimation","getTarget","renderPopupInner","maskElement","getMaskTransitionName","getMaskElement","PopupInner","returnEmptyString","returnDocument","ALL_HANDLERS","IS_REACT_16","fireEvents","delaySetPopupVisible","clearDelayTimer","relatedTarget","_component","isFocusToShow","focusTime","preClickTime","preTouchTime","isBlurToHide","isContextMenuToShow","preTime","nextVisible","isClickToHide","isClickToShow","popupNode","getPopupClassNameFromAlign","popupAnimation","popupTransitionName","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","getPopupClassFromAlign","savePopup","mountNode","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","triggerAfterPopupVisibleChange","renderComponent","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","getAlignFromPlacement","delayS","childPros","showAction","hideAction","alignInstance","childCallback","createTwoChains","portal","handlePortalUpdate","isPointsEq","a1","a2","placementStr","baseAlign","ContainerRender","unstable_renderSubtreeIntoContainer","autoMount","autoDestroy","removeContainer","Portal","createContainer","didUpdate","_container","shallowCompare","ReactComponentWithPureRenderMixin","module","chainedFunction","enquire","matchMedia","responsiveMap","Breakpoint","responsiveArray","isBreakPointMap","isOrHasBreakPointMap","breakpoints","handlers","fireUpdate","unregister","breakpoint","unmatch","wrapEvent","originalEvent","MouseDown","rippleChild","RippleChild","sqrt","currentCircleStyle","getComponentProps","currentStyle","renderSkeletonAvatar","renderSkeletonButton","shapeCls","getGrid","grid","Grid","rowList","renderSkeletonInput","Paragraph","getAvatarBasicProps","hasTitle","hasParagraph","getTitleBasicProps","hasAvatar","getParagraphBasicProps","basicProps","renderSkeleton","avatar","paragraph","hasGrid","avatarNode","avatarProps","titleProps","Title","paragraphNode","paragraphProps","gridNode","gridProps","notCssAnimationSupported","debounceTimeout","currentSpinning","indicator","dotClassName","tip","spinClassName","divProps","spinElement","renderIndicator","animateClassName","containerClassName","getCount","Count","TabBar","scrollAnimated","inkBarStyle","extraContent","tabBarGutter","inkBarAnimated","onRemoveTab","TabsContext","activeGroupKey","tabBarPosition","hideOnlyGroup","groupedPanelsMap","currentPanelMap","onTabClick","onPrevClick","onNextClick","changeActiveKey","getNextActiveKey","itemIndex","nextKey","previousKey","handleTabClick","handleGroupSelect","getActiveKeyByGroupKey","lastNextPrevShownRef","offsetRef","navWrapRef","navRef","rootRef","activeTabRef","inkBarRef","setNext","setPrev","prevActiveKey","getTabs","rst","showCount","tabProps","tabKey","TabBarInner","TabsType","contents","getGroupNode","isVertical","getInkBarNode","inkBarClassName","getOffsetWH","getScrollWH","getOffsetLT","setOffset","nav","navOffset","navStyle","transformSupported","isTransformSupported","setTransform","setNextPrev","navNode","navWrap","navNodeWH","containerWH","navWrapNodeWH","navNodeWHValue","minOffset","$next","$prev","realOffset","isNextPrevShown","toPrev","navWrapNode","toNext","scrollToActiveTab","activeTab","needToSroll","activeTabWH","wrapOffset","activeTabOffset","prevTransitionEnd","propertyName","getScrollBarNode","showNextPrev","prevButton","unselectable","onTransitionEnd","nextButton","navClassName","navClasses","inkBarNode","inkBarNodeStyle","wrapNode","getLeft","getTop","currentNextPrev","nextPrev","debouncedResize","groupNode","scrollbarNode","getDataAttr","TabContent","destroyInactiveTabPane","animated","animatedWithMargin","totalPanelsMap","setMergedStyle","getActiveIndex","animatedStyle","getMarginStyle","getTransformPropValue","getTransformByIndex","getTabPanes","TabGroup","__IS_TAB_GROUP","isTabGroup","setRendered","$customizable","setLoaded","setCustomized","remoteCustomized","panes","TabsWithContext","hideAdd","tabPosition","TabsPosition","card","isAnimated","tabBarStyle","onEdit","tabBarExtraContent","propDefaultActiveKey","propActiveKey","hasPropActiveKey","newCustomized","normalizePanes","getDefaultActiveKey","actuallyDefaultActiveKey","$defaultActiveKey","groupKey","panelsMap","panelKey","getDefaultGroupKey","currentGroup","byGroup","lastActiveKey","inkBar","tabPaneAnimated","tabPane","createNewTab","removeTab","targetKey","getDefaultActiveKeyInGroup","tabBarProps","tabContentProps","processPaneToData","pane","normalizePanesToData","pair","groupPanelMap","paneMap","paneKey","customizedPanes","setCustomizedPanes","setDefaultKey","panesDataSet","handleRestorePanes","newTotalPanelsMap","newGroupedPanelsMap","handleDefaultKeyChange","TabGroups","onDefaultKeyChange","nodeSuffix","renderCheckOption","handleDragItem","groupPaneMap","toGroups","panelMap","groupDefaultActiveKey","generateKey","setTransition","webkitTransition","marginDirection","setPxStyle","toNum","getTypeValue","tabNode","groupedPanels","panelList","getCustomizedPane","sorter","item1","item2","sort2","groupPanelList","CheckableTag","closing","closed","animationEnd","existed","isPresetColor","tagStyle","omited","isNoTitle","domNode","isHoverTrigger","getDisabledCompatibleChildren","childCls","RcTooltip","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","arrowWidth","horizontalArrowShift","placementMap","rcPlacements","prefixCl","getTreeData","DirectoryTree","expandAction","onDebounceExpand","newEvent","ctrlPick","shiftPick","newSelectedKeys","lastSelectedKey","cachedSelectedKeys","convertDirectoryKeysToNodes","calcRangeKeys","setTreeRef","expandFolderNode","internalTree","renderDirectoryTree","connectClassName","blockNode","showLeafIcon","switcherOriginCls","RcTree","traverseNodesKey","startKey","endKey","None","End","Start","restKeys","Popup_1","PopupKeyGen","newPopupContainer","contentRendered","popupKey","getFocusableElements","e1","e2","onAnimateAppear","onAnimateEnter","onAnimateLeave","onAnimateEnd","globalContainer","isElement","getStyleFromAlign","differentTarget","currentAlignStyle","animateFrameId","focusElements","targetEvent","fragmentChild","renderTriggerChild","cancelPopupTask","TriggerChild","getPopup","newAlign","documentEvent","handleDocumentScroll","handleDocumentMouseDown","focusTarget","currentTriggerChild","handleTriggerEvent","childHandle","handleTargetBlur","fix","setPopupHidden","firstFocusElement","delaySetPopupHidden","onPopupAnimateEnter","onPopupAnimateLeave","handlePopupMouseDown","handlePopupKeyDown","handlePopupBlur","getCls","popupHiddenBeforeChange","ShowAction","HideAction","mouseEnter","mouseLeave","handleContextMenu","fileToObject","lastModifiedDate","genPercentAdd","isImageFileType","MEASURE_SIZE","previewImage","drawWidth","drawHeight","offsetX","offsetY","dataURL","camelCase","req"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;QACA;QACA;;;QAGA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;;;QAGA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;;;QAIA;QACA;QACA,0CAA0C;QAC1C;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;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;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;;;;;;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGA;AACA;AACA;;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,eAAD,EAAqB;AAAA,MAClCC,cADkC;AAAA;AAAA;AAAA;;AAAA;;AAEpC,8BAAc;AAAA;;AAAA;;AACV,iCAASC,SAAT;AACA,YAAKC,KAAL,GAAa,EAAb;AAFU;AAGb;;AALmC;AAAA;AAAA,0CAMhB;AAAA;;AAChBH,uBAAe,GAAGI,IAAlB,CAAuB,gBAA4B;AAAA,cAAhBC,SAAgB;;AAC/C,gBAAI,CAACC,QAAL,CAAc;AAAED,qBAAS,EAATA;AAAF,WAAd;AACH,SAFD,EAEGE,kDAFH;AAGH;AAVmC;AAAA;AAAA,+BAW3B;AAAA,YACcC,GADd,GACsB,KAAKL,KAD3B,CACGE,SADH;AAEL,eAAOG,GAAG,GACJC,4CAAK,CAACC,aAAN,CAAoBF,GAApB,EAAyB,sEAAc,EAAd,EAAkB,KAAKG,KAAvB,CAAzB,CADI,GAEJF,4CAAK,CAACC,aAAN,CAAoBE,6CAApB,EAA0B,IAA1B,CAFN;AAGH;AAhBmC;;AAAA;AAAA,IACXC,+CADW;;AAkBxC,SAAOZ,cAAP;AACH,CAnBD;;AAoBeF,6EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AACA;CAEA;;AACA,IAAM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2E;AAC3E;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4B;;;;;;;;;;;AChCA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;;ACfA;AAAA;AAAe;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;ACbA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA,oBAAoB,mBAAO,CAAC,+EAAiB;;AAE7C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sB;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACPA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,2B;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA,mC;;;;;;;;;;;ACJA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,+BAA+B;AAC5E;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;;;;;AC9BA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACJA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C;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,gC;;;;;;;;;;;ACpCA,mCAAmC,mBAAO,CAAC,6GAAgC;;AAE3E;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0C;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+C;;;;;;;;;;;ACfA,cAAc,mBAAO,CAAC,0EAAmB;;AAEzC,4BAA4B,mBAAO,CAAC,+FAAyB;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4C;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACTA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C,2BAA2B,mBAAO,CAAC,6FAAwB;;AAE3D,sBAAsB,mBAAO,CAAC,mFAAmB;;AAEjD;AACA;AACA;;AAEA,gC;;;;;;;;;;;ACVA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gC;;;;;;;;;;;ACXA,wBAAwB,mBAAO,CAAC,uFAAqB;;AAErD,sBAAsB,mBAAO,CAAC,mFAAmB;;AAEjD,wBAAwB,mBAAO,CAAC,uFAAqB;;AAErD;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;ACdA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C,uBAAuB,mBAAO,CAAC,qFAAoB;;AAEnD,gBAAgB,mBAAO,CAAC,uEAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA,kC;;;;;;;;;;;AC1CA,iBAAiB,mBAAO,CAAC,0EAAqB;;;;;;;;;;;;;ACA9C;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,8EAA8E;AACvG;AACA;;AAEA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS,EAAE;AACX,wDAAwD,EAAE;AAC1D;AACA,eAAe;AACf;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,uDAAuD,8BAA8B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,wCAAwC;AACxC;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF,SAAS;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,CAAC;;AAED;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0BAA0B,EAAE;AACvF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC;;AAED;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,kCAAkC;AAClC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B,gDAAgD;AAChD;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,iEAAiE;AACjE;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC,gCAAgC,sBAAsB;AACtD,wCAAwC;AACxC,qBAAqB;AACrB,mBAAmB;AACnB,UAAU;AACV;AACA;AACA,mCAAmC,mCAAmC;AACtE,iCAAiC;AACjC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B,EAAE;AACpE;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,2EAA2E,6BAA6B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;AAC2B;;;;;;;;;;;;;ACz5ElD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACO;AACP;AACA,WAAW,qDAAO;AAClB,WAAW,qDAAO;AAClB,WAAW,qDAAO;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACO;AACP,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACO;AACP;AACA;AACA;AACA,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACO;AACP,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACO;AACP,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ,QAAQ,kDAAI;AACZ;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1OA;AAAA;AAAA;AACA;AACA;AACA;AACO;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkG;AACxD;AACe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA,gBAAgB,iEAAmB;AACnC,gBAAgB,iEAAmB;AACnC,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA,gBAAgB,iEAAmB;AACnC,gBAAgB,iEAAmB;AACnC,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAU;AAClB;AACA;AACA;AACA;AACA;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,EAAE,cAAc,EAAE,cAAc,EAAE;AAC7D,2BAA2B,EAAE,cAAc,EAAE,cAAc,EAAE;AAC7D,2BAA2B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AAC7E,2BAA2B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AAC7E;AACA;AACA;AACA,wCAAwC,UAAU,OAAO,UAAU,OAAO,SAAS;AACnF;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAK;AACb,gBAAgB,sDAAK;AACrB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,uEAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,uEAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B,eAAe,mEAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;ACrLA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACS;AAC7C;AACA;AACA;AACA;AACO;AACP;AACA,WAAW,iEAAmB;AAC9B,WAAW,iEAAmB;AAC9B,WAAW,iEAAmB;AAC9B;AACA;AACA;AACA;AACA,eAAe,gDAAS;AACxB;AACA;AACO;AACP,eAAe,gDAAS;AACxB;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4F;AAClD;AACE;AACU;AACtD;AACA;AACA,+BAA+B,YAAY;AAC3C,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAmB;AACvC;AACA;AACA,kBAAkB,gEAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,eAAe,4DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,eAAe,6DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;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,gCAAgC,mBAAmB,qDAAO,sBAAsB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB,qDAAO,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAQ;AAChC,6CAA6C,sDAAK,EAAE,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gBAAgB,qDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gBAAgB,qDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gBAAgB,qDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gBAAgB,qDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA,mEAAmE,WAAW;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,uCAAuC,mDAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACO;AACP,2BAA2B,YAAY;AACvC,0BAA0B,WAAW;AACrC;AACA;;;;;;;;;;;;;AC1eA;AAAU;;;;;;;;;;;;;ACAV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACZ;AACU;AACJ;AACC;AACF;AACE;AACN;AACI;AACA;AAC7B;AACe,+GAAS,EAAC;;;;;;;;;;;;;ACXzB;AAAA;AAAA;AAAA;AAAA;AACA;AACoC;AAC7B;AACP,6BAA6B,cAAc;AAC3C;AACA;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;AACf;AACA;AACA;AACA;AACA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8BAA8B,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gDAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;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,KAAK;AACL;AACA;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,KAAK;AACL;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACpRA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,gDAAS;AAC1B,iBAAiB,gDAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;AACnF;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACO;AACP;AACA,2BAA2B,UAAU,8BAA8B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,+BAA+B,gBAAgB;AAC1G,0DAA0D,8BAA8B,gBAAgB;AACxG,yDAAyD,0DAA0D,gBAAgB;AACnI,yDAAyD,0DAA0D,gBAAgB;AACnI;AACA;AACO;AACP,0BAA0B,SAAS,4DAA4D;AAC/F;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA,4BAA4B,gDAAS;AACrC;AACA;AACA,0CAA0C,2BAA2B;AACrE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/EA;AAAA;AAAA;AAAA;AAA6C;AACT;AACpC;AACA;AACA;AACO;AACP,oBAAoB,gDAAS;AAC7B,2BAA2B,iEAAa;AACxC;AACA;AACA;AACA,oBAAoB,gDAAS;AAC7B,iCAAiC,iEAAa;AAC9C;AACA;AACA;;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACO;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;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;ACjFA;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;AACA,CAAC,KAA4D;AAC7D,CAAC,SACoC;AACrC,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC5BD,iBAAiB,mBAAO,CAAC,sDAAa,E;;;;;;;;;;;;ACAzB;;AAEb,YAAY,mBAAO,CAAC,qDAAY;AAChC,aAAa,mBAAO,CAAC,iEAAkB;AACvC,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,oBAAoB,mBAAO,CAAC,6EAAuB;AACnD,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;AACA;;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;AACA;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;;;;;;;;;;;;;ACnLa;;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;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;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;;;;;;;;;;;;;AC7Fa;;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,oBAAoB,mBAAO,CAAC,mFAA0B;AACtD,kBAAkB,mBAAO,CAAC,+EAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBa;;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;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;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;;;;;;;;;;;;;AC9Ea;;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;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,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACxEa;;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,cAAc,mBAAO,CAAC,gEAAgB;AACtC,GAAG;AACH;AACA,cAAc,mBAAO,CAAC,iEAAiB;AACvC;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;;;;;;;;;;;;;;AChGa;;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;AAChC,iBAAiB,mBAAO,CAAC,oEAAc;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;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;;;;;;;;;;;;;ACxEa;;AAEb;AACA;AACA;AACA;;;;;;;;;;;;;;ACLa;;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;;AAEnC;;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;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,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;;;;;;;;;;;;ACvVA,kBAAkB,YAAY,mBAAO,CAAC,0FAAiC,sB;;;;;;;;;;;ACAvE,kBAAkB,YAAY,mBAAO,CAAC,wFAAgC,sB;;;;;;;;;;;ACAtE,kBAAkB,YAAY,mBAAO,CAAC,8FAAmC,sB;;;;;;;;;;;ACAzE,kBAAkB,YAAY,mBAAO,CAAC,oFAA2B,sB;;;;;;;;;;;ACAjE,kBAAkB,YAAY,mBAAO,CAAC,gGAAoC,sB;;;;;;;;;;;;ACA7D;;AAEb;;AAEA,mBAAmB,mBAAO,CAAC,mFAAwB;;AAEnD;;AAEA,oBAAoB,mBAAO,CAAC,qFAAyB;;AAErD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD,+BAA+B;AACvF;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC,G;;;;;;;;;;;;AClDY;;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;;;;;;;;;;;;ACpBY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,oDAAW;AAChC,cAAc,mBAAO,CAAC,gDAAS;AAC/B,cAAc,mBAAO,CAAC,oEAAS;;AAE/B;AACA;AACA;;AAEA;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;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;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,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;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,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;ACJa;;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;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;;;;;AC5MA;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;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;;;;;;;;;;;;ACzDD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,SACwD;AAC1D,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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,aAAa;AAC3F;AACA,yBAAyB,2CAA2C;AACpE;AACA;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,4DAA4D;AAC5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,8DAA8D;AACzE;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,gDAAgD;AAChD;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;AACA,6DAA6D,YAAY;AACzE;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,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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA,OAAO,wBAAwB;AAC/B;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;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;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,mCAAmC;AACvE;AACA;AACA,WAAW;AACX,6EAA6E,6CAA6C;AAC1H,OAAO;AACP;AACA;;AAEA;AACA,6BAA6B,2BAA2B;AACxD;AACA,8DAA8D,MAAM;AACpE;AACA,0CAA0C,iCAAiC;AAC3E;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,gBAAgB;AACnC;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,uBAAuB;AACzC;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,8BAA8B;AAC9B,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;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,iBAAiB;AACjB;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;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;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C,+CAA+C;AAC/C;AACA,4FAA4F;AAC5F;AACA;AACA,SAAS,kDAAkD;AAC3D;AACA,SAAS,4CAA4C;AACrD;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;AACP,6BAA6B,YAAY;AACzC;AACA,OAAO,8BAA8B;AACrC;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;;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;AACA,kBAAkB,kCAAkC;AACpD;AACA,OAAO,uBAAuB;AAC9B;AACA,OAAO,+EAA+E;AACtF;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,uBAAuB,kCAAkC;AACzD,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;;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,mBAAmB,wBAAwB;AAC3C,OAAO,oCAAoC;AAC3C;;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;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,OAAO;AACP;AACA;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,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;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA,oCAAoC,oBAAoB,uBAAuB;AAC/E;AACA,2BAA2B;AAC3B,cAAc,uBAAuB;AACrC;AACA,mBAAmB,8BAA8B;AACjD;AACA,yCAAyC,cAAc,iDAAiD,EAAE;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;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,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;;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,wBAAwB;AACxB,yFAAyF;AACzF,mBAAmB,wBAAwB;AAC3C;AACA,iGAAiG;AACjG;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,kFAAkF;AACzF;AACA;;AAEA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,+BAA+B,cAAc;AACpD;AACA;;AAEA;AACA,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,6DAA6D;AACtE;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;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA,OAAO,sBAAsB;AAC7B;;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;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,2BAA2B;;AAEtD;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB,OAAO,wBAAwB;AACtE,KAAK;;AAEL;AACA;AACA,0BAA0B,QAAQ;AAClC,SAAS,0BAA0B,cAAc;AACjD;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;;AAE9C;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAA8B,qBAAqB;AAC5E,+BAA+B;AAC/B;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,qBAAqB,0BAA0B,OAAO,kCAAkC;AACxF,KAAK;;AAEL;AACA;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,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,0CAA0C;AAC1C,iCAAiC;AACjC;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB,2BAA2B;AAC7C,OAAO,0BAA0B,EAAE,EAAE;AACrC;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,mBAAmB,eAAe,OAAO,qBAAqB,mBAAmB,EAAE;AACnF,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,iCAAiC;AACjC;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,kBAAkB,kDAAkD;AACpE;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA,kCAAkC,yCAAyC;AAC3E;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,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;AACA;AACA,mBAAmB,oBAAoB;AACvC,OAAO,0BAA0B;AACjC;;AAEA;AACA,iCAAiC;AACjC;AACA,mBAAmB,yBAAyB;AAC5C,OAAO,yBAAyB;AAChC;AACA;;AAEA;AA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,WAAW;AACX;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oBAAoB;AACpB,OAAO;AACP;AACA,wBAAwB;AACxB;AACA,cAAc;AACd;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C,mDAAmD;AACnD,cAAc,yBAAyB;AACvC;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,+BAA+B,mBAAmB;AAClD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;AACL,wCAAwC,gBAAgB,EAAE;;AAE1D;AACA;AACA,KAAK;AACL;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,gBAAgB,kBAAkB;AACpD;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC;AACjC;AACA;AACA;AACA,oBAAoB,gBAAgB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa,+CAA+C;AAC5D,SAAS;AACT;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,gBAAgB;AAClD,WAAW,2BAA2B,6BAA6B,EAAE,EAAE;AACvE,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA,sDAAsD;AACtD;AACA,0DAA0D;AAC1D;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,qBAAqB,cAAc;AACnC;AACA,wDAAwD,qBAAqB;AAC7E,kDAAkD,iBAAiB;AACnE;AACA,+BAA+B;AAC/B,OAAO,EAAE,0CAA0C,0CAA0C;AAC7F,sBAAsB,0DAA0D;AAChF;AACA;AACA,KAAK;AACL;AACA,wCAAwC,mBAAmB;AAC3D,wBAAwB,gBAAgB,wBAAwB;AAChE;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,0CAA0C,8BAA8B,EAAE;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,qBAAqB;;AAEtD,yBAAyB,iBAAiB;AAC1C,2BAA2B,eAAe;;AAE1C;AACA,yBAAyB;AACzB;AACA,KAAK;AACL,+BAA+B,8BAA8B;;AAE7D;AACA,yBAAyB,aAAa;AACtC,kCAAkC;AAClC;AACA,iCAAiC,0BAA0B,EAAE;AAC7D,oBAAoB,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;AACA,0BAA0B;AAC1B;AACA,wDAAwD,kBAAkB,EAAE;AAC5E;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB,OAAO,+BAA+B;AAC7E,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,4BAA4B;AACjD;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,sCAAsC,YAAY;AAClD;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;;A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CA;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,8DAA8D;AAC9D;AACA,gCAAgC;AAChC;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC;AAC/C;AACA;AACA,OAAO,6BAA6B;;AAEpC;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,8DAA8D;AAC9D,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,0CAA0C,oBAAoB,EAAE,wBAAwB,MAAM;AAClI;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,6EAA6E;AACtF;AACA,SAAS,kBAAkB;AAC3B;;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;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,kBAAkB;AAClB;AACA,6EAA6E;AAC7E,kBAAkB,qBAAqB;;AAEvC;AACA;;AAEA,uDAAuD;AACvD;;AAEA,mBAAmB,mCAAmC;AACtD;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;;AAEL;AACA;AACA;AACA,KAAK;;AAEL,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;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;;AAEA;AACA,iCAAiC,kFAAkF;AACnH,4BAA4B,+BAA+B;AAC3D;;AAEA;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;AACP,yDAAyD,iBAAiB;AAC1E,OAAO,MAAM;AACb;AACA,OAAO,cAAc;;AAErB,qCAAqC;AACrC,OAAO,+CAA+C,EAAE;AACxD;AACA,6BAA6B,0BAA0B;AACvD,mBAAmB,sBAAsB,OAAO,oBAAoB;AACpE;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;AAC/E;AACA,2CAA2C,sBAAsB;AACjE,KAAK;;AAEL;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;AA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,yDAAyD;;AAEpE;AACA,OAAO;AACP,4BAA4B,sDAAsD;AAClF,8BAA8B,wDAAwD;;AAEtF,0CAA0C,4BAA4B,EAAE;AACxE;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,mBAAmB;AACnB,+BAA+B,0CAA0C;AACzE,SAAS;AACT,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AACnB;AACA,wBAAwB,uBAAuB;AAC/C;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,wCAAwC,+EAA+E;AACvH,4BAA4B,qDAAqD;AACjF,6BAA6B,uDAAuD;AACpF,wCAAwC,iCAAiC;AACzE;AACA;AACA,6BAA6B,gBAAgB,yBAAyB;AACtE,aAAa,iCAAiC,yCAAyC,QAAQ,EAAE;AACjG;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP,6BAA6B,wBAAwB;AACrD,iCAAiC,4BAA4B;AAC7D,+BAA+B,0BAA0B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;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;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,cAAc;AACd,kCAAkC;AAClC,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW,+DAA+D;AAC1E;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,4BAA4B,GAAG;AAC/B,uBAAuB;AACvB,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA,8EAA8E;AAC9E;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,wDAAwD;AACxD;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,KAAK;AACL;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,iEAAiE;AAC9E;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,gBAAgB;AACvC;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;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;AACA,KAAK;AACL;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;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;;;;;;;;;;;;AC5jTD;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;AAC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA,WAAW,mBAAO,CAAC,8DAAQ;AAC3B,eAAe,mBAAO,CAAC,0EAAc;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;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,CAAC,0EAAc;AACrC,qBAAqB,mBAAO,CAAC,oFAAmB;AAChD,kBAAkB,mBAAO,CAAC,gFAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,8EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;;;;;ACfA,SAAS,mBAAO,CAAC,0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CA;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,mBAAO,CAAC,4EAAe;;;;;;;;;;;;ACAvB,mBAAO,CAAC,4EAAe;;;;;;;;;;;;ACAvB,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,KAAqC,GAAG,8DAAS,qFAAqF,SAAgB;AAC1K;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEwF;;;;;;;;;;;;ACvJxF;AACA;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,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACxHA;AAAA;AAA4D;AAC7C;AACf;AACA,cAAc,KAAK;AACnB;AACA;AACA,aAAa,sEAAqB;AAClC,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA,aAAa,sEAAqB;AAClC,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA,aAAa,sEAAqB;AAClC,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA,aAAa,sEAAqB;AAClC;AACA,CAAC,E;;;;;;;;;;;;AC7BD;AAAA;AAAA;AAAA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAElL;AACuD;AACE;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,wFAA6B;AAC9D;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,4BAA4B,0DAAE;AAC9B,0BAA0B,0DAAE;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,uFAA4B;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAEc,kFAAmB,E;;;;;;;;;;;;AChJlC;AAAA;AAAA;AAAA;AAAkD;AACJ;AACwC;;AAEtF;AACA;AACA;AACA;AACA;AAC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AA;AAAA;AAAA;AACA;AACA;AACA;AACuD;AACM;AACxB;AACrC,QAAQ,0DAAS;AACjB,gBAAgB,sEAAqB;AACrC,0BAA0B,sEAAqB;AACxC;AACP;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAkB;AACxB;AACA,+DAA+D;AAC/D;AACA;AACA;;AAEA,qBAAqB,2DAAkB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,qFAAsB,E;;;;;;;;;;;;ACrErC;AAAA,sBAAsB;;AAEtB;;AAEA;;AAEA;;AAEA;;AAEA,YAAY;;;AAGZ,kBAAkB;;AAElB;;AAEA;;AAEA;;AAEA,aAAa;;;AAGb,UAAU;;AAEV;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC;AAChC,gBAAgB;AAChB,6BAA6B;AAC7B;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,wEAAS,E;;;;;;;;;;;;ACvPxB;AAAA,YAAY,SAAI;;AAEhB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe,4EAAa,E;;;;;;;;;;;;ACvB5B;AAAA;AAA2C;AAC3C;;AAEA,IAAI,wDAAS;AACb;AACA;AACA;AACA;;AAEA;AACA,OAAO,wDAAS;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,+EAAgB,E;;;;;;;;;;;;AC/B/B;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,WAAW,EAAE,gBAAgB,EAAE;AAC/B;AACA;;AAEO;AACP;AACA;;AAEA,aAAa,sBAAsB;AACnC,8BAA8B,gBAAgB;AAC9C;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC9Ca;;AAEb;AACA;;AAEA,oDAAoD,mBAAO,CAAC,oFAAyB;;AAErF,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA,8B;;;;;;;;;;;;ACtCa;;AAEb;AACA;;AAEA,wCAAwC,mBAAO,CAAC,6DAAc;;AAE9D,sCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA,8B;;;;;;;;;;;;ACba;;AAEb;AACA;;AAEA,wCAAwC,mBAAO,CAAC,6DAAc;;AAE9D,sCAAsC,uCAAuC,kBAAkB;;AAE/F;;AAEA;;AAEA,8B;;;;;;;;;;;;ACba;;AAEb;AACA;;AAEA,0DAA0D,mBAAO,CAAC,0GAA+B;;AAEjG,4CAA4C,mBAAO,CAAC,iFAAwB;;AAE5E,wCAAwC,mBAAO,CAAC,6DAAc;;AAE9D,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA,sIAAsI;;;AAGtI;AACA;AACA,8B;;;;;;;;;;;;ACnCA,8CAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8B;;;;;;;;;;;;;AC9Ba;;AAEb;AACA;;AAEA,wCAAwC,mBAAO,CAAC,wEAAmB;;AAEnE,uBAAuB,mBAAO,CAAC,oFAAyB;;AAExD,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,qBAAqB;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8B;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA;AACA;AACA,8B;;;;;;;;;;;;ACNa;;AAEb;AACA;;AAEA,iDAAiD,mBAAO,CAAC,+EAAuB;;AAEhF,oDAAoD,mBAAO,CAAC,qFAA0B;;AAEtF,wCAAwC,mBAAO,CAAC,6DAAc;;AAE9D,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8B;;;;;;;;;;;;ACnFa;;AAEb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8B;;;;;;;;;;;;AC7Ba;;AAEb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE,gBAAgB,EAAE;AAC/B;AACA;;;AAGA;AACA;AACA;;AAEA,aAAa,sBAAsB;AACnC,8BAA8B,gBAAgB;AAC9C;AACA;;AAEA;AACA,C;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ,SAAS,cAAc,aAAa,sBAAsB,aAAa,YAAY;AACvH;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/FA,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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,KAAK,IAA4E;AACjF,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAIN;;AAEF,CAAC;;;;;;;;;;;;;ACvCY;;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;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACnFA,oBAAoB;AACpB,uBAAuB,gBAAgB;;AAEvC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,uCAAuC,iCAAiC;;AAExE;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzDA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACLA,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;;AAE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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,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;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,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;;;;;;;;;;;;ACrKA,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,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClEA,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;AAC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AAgB;;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;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACXA,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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CA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClDA,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;;;;;;;;;;;;ACpCA,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;AACpC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,mBAAO,CAAC,mDAAW;AAChC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,wBAAwB,mBAAO,CAAC,uEAAqB;;AAErD;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,yDAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;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;;AAEA;;;;;;;;;;;;AC3CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzGA,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;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;;;;;;;;;;;;ACnFA,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;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;;;;;;;;;;;;ACzFA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO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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;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,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;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;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,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5EA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;;;;;;;;;;;;ACtBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,cAAc,mBAAO,CAAC,qDAAY;AAClC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,aAAa,mBAAO,CAAC,+DAAiB;;AAEtC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;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,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACzFA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,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;AACA;;AAEA;;;;;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,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,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACnBA;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,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,wBAAwB,mBAAO,CAAC,yEAAsB;;AAEtD;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;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;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,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;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;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,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;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,aAAa,MAAM;AACnB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,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,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,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;;AAEA;;;;;;;;;;;;ACtCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;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,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,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;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxDA,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,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;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,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtDA,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,eAAe,mBAAO,CAAC,uDAAa;AACpC,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,eAAe,mBAAO,CAAC,uDAAa;AACpC,0BAA0B,mBAAO,CAAC,6EAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA,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,mBAAmB,mBAAO,CAAC,6DAAgB;AAC3C,oBAAoB,mBAAO,CAAC,+DAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;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,cAAc,SAAS;AACvB;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;;;;;;;;;;;;AC5EA,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;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,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,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;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,4BAA4B;AAC5B,CAAC;;AAED;;;;;;;;;;;;ACxBA,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,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClDA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;AACjC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClDA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,yBAAyB;AACpC;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA,iCAAiC,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/CA;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,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;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;;;;;;;;;;;;AC/DA,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,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,wBAAwB,mBAAO,CAAC,uEAAqB;AACrD,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,KAAK,SAAS,GAAG,SAAS;AAClD,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACtCA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/C,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA,mBAAmB,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAC5E;AACA;AACA,WAAW,iBAAiB,GAAG,iBAAiB;AAChD;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,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;AAC3C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,EAAE;AACb,aAAa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,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;AACZ,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAI,CAAC,wDAAU;AACvC;AACA;AACA,wBAAwB,kDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4CAAK,uBAAuB,QAAQ,uDAAU,YAAY,GAAG,cAAc,EAAE,EAAE;AACnG,IAAI,wDAAW;AACf;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,4CAAK;AAChB,oBAAoB,uDAAU;AAC9B;AACA,YAAY,wDAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,eAAe,wDAAW,cAAc,gCAAgC,EAAE;AAC1E;AACA;;AAEA;AACA;AACA,QAAQ,sDAAS,EAAE,uCAAuC;AAC1D;AACA;;AAEgO;;;;;;;;;;;;;ACnUhO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoD;AACyB;AAC6D;AACxC;AAC+D;;AAEjK;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,cAAc;;AAEpD,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB,0CAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,kCAAkC,mFAAmF;;AAErH,mCAAmC,mDAAa;AAChD,wCAAwC,4CAA4C,EAAE;AACtF,OAAO,iGAAiG;AACxG,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,8EAAsB,cAAc,QAAQ;;AAEpD;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,8EAAsB,cAAc,0BAA0B;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,6CAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAuC,CAAC,+CAAS,oCAAoC;AACrF;AACA,SAAS;AACT;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+DAAkB;AACtC,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,8EAAsB;AAC5B;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,uDAAU;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,2DAA2D;;AAE3D,iFAAiF,gDAAU,mBAAmB,wDAAU,eAAe;AACvI,oEAAoE,0CAAI,mBAAmB,kDAAI,eAAe;AAC9G;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,2CAA2C,qEAAqE;AAChH,WAAW,wDAAU;AACrB;;AAEA,aAAa,4CAAc,gBAAgB,wDAAQ,qBAAqB,iDAAiD,EAAE;AAC3H,KAAK;AACL,GAAG;;;AAGH,sLAAsL,+CAAS;AAC/L,WAAW,gEAAQ;AACnB;;AAEA;AACA;;AAEA;AACA,iDAAiD,iBAAiB,sHAAsH,eAAe;AACvM,0BAA0B,4CAAc,iBAAiB;AACzD;AACA;AACA;AACA;;AAEA,oBAAoB,4CAAc;AAClC,cAAc,4CAAc,wBAAwB;AACpD;;AAEA,uDAAuD,aAAoB;AAC3E,mCAAmC;AACnC,cAAc;;AAEd;AACA;AACA;AACA;;AAEA,SAAS,4CAAc,+CAA+C,eAAe;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,4CAAc;AAC/B,mCAAmC;AACnC,kBAAkB,4CAAc;AAChC,sDAAsD,iBAAiB;;AAEvE;AACA;AACA;;AAEA,WAAW,2DAAa;AACxB,GAAG;AACH,qBAAqB,iCAAiC;AACtD,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,wEAAwE,EAAE,MAAM,+CAA+C;AACnJ;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB,uCAAuC,yHAAyH;AAChK;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sCAAsC,mFAAmF;AACzH,GAAG;AACH,sCAAsC,uGAAuG;AAC7I;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,wBAAwB,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ;AACxF;AACA,GAAG;AACH;;AAEA;AACA;AACA,oDAAoD,qCAAqC,EAAE;AAC3F;;AAEA;AACA;;AAEA,cAAc,+CAAS,UAAU,mDAAa,WAAW,+CAAS,WAAW,mDAAa;AAC1F;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH,8DAA8D;;AAE9D;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,sDAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,sDAAS;AACpB;AACA,sEAAsE,aAAa;AACnF;;AAEA;;AAEA;AACA;AACA,wBAAwB,sDAAiB;AACzC;;AAEA;AACA,wBAAwB,uDAAkB;AAC1C;;AAEA;AACA,wBAAwB,oDAAe;AACvC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,sDAAS;AACpB;AACA;AACA;;AAEA;AACA,mCAAmC,cAAc;AACjD;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA,qCAAqC,cAAc;AACnD;;AAEA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,+CAAS,GAAG,8DAA8D;AAC/E,KAAK,+CAAU,GAAG,6DAA6D;AAC/E,WAAW,iEAAuB,kBAAkB,CAAC,sDAAS;AAC9D,qBAAqB,iEAAuB;AAC5C,CAAC,EAAE;;AAEmG;AACtG;;;;;;;;;;;;;AChsBA;AACA;AACA,6DAA6D,cAAc,UAAU,SAAS,cAAc,cAAc,sBAAsB,mBAAmB,4BAA4B,IAAI,cAAc,OAAO,mJAAmJ,GAAG,2CAA2C,SAAS,gBAAgB,aAAa,mBAAmB,iBAAiB;AACne,iCAAiC,2CAA2C,GAAG,yBAAyB,yBAAyB,6BAA6B,gBAAgB,eAAe,gBAAgB,+CAA+C,oBAAoB,YAAY,+BAA+B,IAAI,wDAAwD,2FAA2F,YAAY,2BAA2B;AACzf,gDAAgD,GAAG,oBAAoB,sBAAsB,iBAAiB,cAAc,cAAc,UAAU,4DAA4D,sHAAsH,mFAAmF,2CAA2C,eAAe,gBAAgB;AACne,sDAAsD,SAAS,sGAAsG,2CAA2C,8FAA8F,wEAAwE,qGAAqG,gBAAgB,QAAQ;AACnf,yEAAyE,0FAA0F,gBAAgB,QAAQ,SAAS,gBAAgB,MAAM,OAAO,SAAS,gBAAgB,SAAS,qBAAqB,OAAO,QAAQ,gGAAgG,sCAAsC,SAAS;AACtb,YAAY,SAAS,IAAI,cAAc,IAAI,oCAAoC,SAAS,IAAI,mBAAmB,SAAS,aAAa,gBAAgB,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;AACb,8CAA8C,cAAc;AAC5D,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C,mBAAmB,mBAAO,CAAC,oFAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AClGa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;;;;;;;;;;;ACnBa;AACb,8CAA8C,cAAc;AAC5D,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C,UAAU,mBAAO,CAAC,4FAAkB;AACpC,UAAU,mBAAO,CAAC,4FAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,gCAAgC;AACxE;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC/Ba;AACb,8CAA8C,cAAc;AAC5D,sBAAsB,mBAAO,CAAC,0FAAiB;AAC/C,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C,mBAAmB,mBAAO,CAAC,oFAAc;AACzC,6BAA6B,mBAAO,CAAC,wGAAwB;AAC7D,6BAA6B,mBAAO,CAAC,wGAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,+BAA+B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpDa;AACb,8CAA8C,cAAc;AAC5D,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C,yBAAyB,mBAAO,CAAC,kHAA6B;AAC9D,UAAU,mBAAO,CAAC,sFAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6CAA6C,EAAE,UAAU,EAAE;AAC3D;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA,gDAAgD,KAAK;AACrD;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK;AACpD;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACtGa;AACb,8CAA8C,cAAc;AAC5D,mBAAmB,mBAAO,CAAC,oFAAc;AACzC,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C,UAAU,mBAAO,CAAC,sFAAe;AACjC,UAAU,mBAAO,CAAC,4FAAkB;AACpC,UAAU,mBAAO,CAAC,0FAAiB;AACnC,6BAA6B,mBAAO,CAAC,wGAAwB;AAC7D;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB,EAAE;AAC7D,qCAAqC,oHAAoH,EAAE;AAC3J,kCAAkC,iCAAiC,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,EAAE;AAChE,kCAAkC,sDAAsD,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,mBAAmB,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,EAAE;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ka;AACb,8CAA8C,cAAc;AAC5D,2BAA2B,mBAAO,CAAC,oGAAsB;AACzD,0BAA0B,mBAAO,CAAC,kGAAqB;AACvD,gBAAgB,mBAAO,CAAC,8FAAmB;AAC3C,oBAAoB,mBAAO,CAAC,sGAAuB;AACnD,mBAAmB,mBAAO,CAAC,oGAAsB;AACjD,mBAAmB,mBAAO,CAAC,oFAAc;AACzC,UAAU,mBAAO,CAAC,4FAAkB;AACpC,oBAAoB,mBAAO,CAAC,sFAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,iCAAiC,EAAE;AACvI;AACA;AACA;AACA,qGAAqG,wCAAwC,EAAE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kCAAkC,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC3Ka;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,mBAAmB;AACnB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9Ea;AACb,8CAA8C,cAAc;AAC5D,sBAAsB,mBAAO,CAAC,6FAAoB;AAClD,cAAc,mBAAO,CAAC,6FAAoB;AAC1C,oBAAoB,mBAAO,CAAC,8FAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACjFa;AACb,8CAA8C,cAAc;AAC5D,oBAAoB,mBAAO,CAAC,8FAAe;AAC3C,cAAc,mBAAO,CAAC,6FAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB,EAAE;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,sCAAsC,EAAE;AAC9G,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC7Fa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACvCa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AC3Da;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBa;AACb,8CAA8C,cAAc;AAC5D;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;;;;;;;;;;;;;AC5Ba;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACXa;AACb,kCAAkC,mBAAO,CAAC,kHAA6B;AACvE;;;;;;;;;;;;;ACFa;AACb,8CAA8C,cAAc;AAC5D,UAAU,mBAAO,CAAC,yFAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;AACA;AACA,mDAAmD,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1Ca;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAKsB;AAC5B,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,4CAA4C;;;AAG5C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,OAAO;AACP,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,YAAY;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,2BAA2B,kDAAkD;;AAE7E;AACA,MAAM;AACN,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;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;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yFAAyF;AACzF,SAAS;AACT;AACA;AACA,SAAS;AACT,yFAAyF;AACzF;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAK;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB,wBAAwB;AACxF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA,sFAAsF,aAAa;AACnG;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;A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E,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,2FAA2F;AAC3F;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,kCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;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,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAoE;AACpF,cAAc,gEAAgE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA,KAAK;;AAEL;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,2DAA2D;AAC3D;AACA,OAAO,IAAI;AACX;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,kIAAkI;AAClI;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mIAAmI;AACnI;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,2CAA2C;AACjE,sBAAsB,uEAAuE,gBAAgB;AAC7G;AACA;AACA,wBAAwB,+BAA+B,GAAG,kBAAkB;AAC5E,wBAAwB,4BAA4B,GAAG,kBAAkB;AACzE,KAAK;AACL,wBAAwB,+BAA+B,GAAG,kCAAkC;AAC5F,wBAAwB,4BAA4B,GAAG,kCAAkC;AACzF;AACA,sBAAsB,+BAA+B,GAAG,mBAAmB;AAC3E,sBAAsB,4BAA4B,GAAG,mBAAmB;AACxE,sBAAsB,2FAA2F,GAAG,6BAA6B;AACjJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;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,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,mBAAmB,kBAAkB;AACnF,uIAAuI,oBAAoB;AAC3J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8IAA8I,eAAe;AAC7J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,cAAc;AAC3J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAA2G,qBAAqB;AAChI;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAs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AG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;A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AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;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,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,qCAAqC,2BAA2B;AAChE,qCAAqC,2CAA2C;AAChF;AACA,uCAAuC,2BAA2B;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,oBAAoB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H,yBAAyB;AACnJ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;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,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;AACP;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;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;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;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;;;AAGA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;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;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,eAAe;AAC7B;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;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;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAA0D,OAAO;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA,2DAA2D;AAC3D,+DAA+D;AAC/D,mEAAmE;AACnE,uEAAuE;AACvE;AACA,0DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;A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AAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP,+DAA+D,oBAAoB;AACnF;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,GAAG;AACH;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;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,wFAAwF,iBAAiB;AACzG;;AAEA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;;;AAG5C;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;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,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,mIAAmI;AACnI,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;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,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;;AAEH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A0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,oDAAoD,YAAY,GAAG,YAAY;;AAE/E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA,CAAC,E;;;;;;;;;;;;;ACzyWD;AAAA;AACA;AACA;;AAEA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;ACjCvB,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwE;AACH;AACC;AACd;;AAExD;AAC+B;AACA;AACsB;AACZ;AACL;AACiC;AACD;AAC1B;AACJ;AACU;AAChD;AACA;AACA;AA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AAAA;AAAA;AAAqE;AACb;AACjD;AACA;AACA;AACA;AACA;AACP;;AAEA,aAAa,iFAAO;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,SAAS,wFAAa,CAAC,wFAAa,GAAG,aAAa;AACpD;AACA,GAAG;AACH;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;;AAEA,8BAA8B,gBAAgB;AAC9C;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,wFAAa,CAAC,wFAAa,GAAG,UAAU;AAC3D;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA,kBAAkB,wFAAa,CAAC,wFAAa,GAAG,oBAAoB;AACpE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,gBAAgB,wFAAa,CAAC,wFAAa,GAAG,aAAa;AAC3D;AACA,OAAO;AACP;AACA,GAAG,EAAE;;AAEL;AACA;AACA,aAAa,wFAAa,CAAC,wFAAa,GAAG,UAAU;AACrD;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,C;;;;;;;;;;;;ACzGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACP;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,wEAAS,+CAA+C;AAC/F;;AAEA,IAAI,wEAAS;AACb;;AAEA;AACA;;AAEA;AACO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACP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;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,wB;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACtB;AAC3B;AACP;AACA;AACA,GAAG,UAAU,iFAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;;AAEA,aAAa,uDAAM,qEAAqE;;AAExF;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,mB;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACG;AACN;AACN;AACM;AACnC;AACsB;AACH;AACT;AACe;AACF;AACtD,4CAA4C;;AAE5C;AACA,EAAE,mFAAS;;AAEX,eAAe,sFAAY;;AAE3B;AACA;;AAEA,IAAI,yFAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB,wFAAa,CAAC,wFAAa,GAAG,WAAW;AAC9D;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE,sFAAY;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA,OAAO;;;AAGP,oBAAoB,0EAAW;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iEAAc;AAChD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AAC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B,qBAAqB,kEAAW;AAChC;AACA;;AAEA,iCAAiC;;AAEjC,oBAAoB,iEAAU;AAC9B;AACA;AACA;AACA;AACA,0CAA0C;;;AAG1C,uBAAuB,6CAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA,+FAA+F;;AAE/F;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;;AAE7B;AACA,2BAA2B,oDAAM;AACjC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,uEAAe,kCAAkC;;AAEtE;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;;;AAGH,uBAAuB,oEAAa;AACpC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,2CAA2C;;;AAG3C,EAAE,yEAAkB;AACpB;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE,qDAAqB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;;AAEnB,iBAAiB,kEAAW;AAC5B;;AAEA;AACA,GAAG;AACH,EAAE,yDAAyB;AAC3B;AACA;AACA;AACA,GAAG,EAAE;;AAEL,qBAAqB,kEAAW;AAChC;;AAEA;AACA,qDAAqD;;AAErD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,mDAAmB;AACzC,yCAAyC,YAAY;AACrD;AACA,KAAK;AACL;AACA,GAAG,2BAA2B,mDAAmB;AACjD;AACA;AACA;AACA;AACA,GAAG,eAAe,mDAAmB,CAAC,+CAAM;AAC5C;AACA;AACA;AACA;AACA;AACA,GAAG,6CAA6C,mDAAmB,CAAC,kDAAS;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,gDAAgB;AACxC;AACe,mEAAI,E;;;;;;;;;;;;ACpVnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAuB,2BAA2B,2EAA2E,kCAAkC,mBAAmB,GAAG,EAAE,OAAO,kCAAkC,8HAA8H,GAAG,EAAE,qBAAqB;;AAExX,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN,0CAA0C,+DAA+D,2EAA2E,EAAE,yEAAyE,eAAe,sDAAsD,EAAE,EAAE,uDAAuD;;AAE/X,gCAAgC,4EAA4E,iBAAiB,UAAU,GAAG,8BAA8B;;AAExK,gCAAgC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,iDAAiD,GAAG;;AAEva,iDAAiD,0EAA0E,aAAa,EAAE,qCAAqC;;AAE/K,uCAAuC,uBAAuB,uFAAuF,EAAE,aAAa;;AAEpK,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU,6BAA6B,gGAAgG,gDAAgD,GAAG,2BAA2B;;AAE5K;AACK;AACH;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,sCAAsC,+CAAe;AACrD,kCAAkC,+CAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,MAAM,sDAAG;AACT,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAG;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,wBAAwB,8DAAG;AAC3B;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,eAAe,mDAAmB;AACzC;AACA,mBAAmB,iDAAU,6DAA6D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,+CAAe;;;;;;;;;;;;;;ACpRjB;AAAA;AAAA;AAAA;AAAA;AAA+B;AACA;AAChB;AACf;AACA;AACA;AACA,2CAA2C,wCAAwC,uBAAuB,KAAK;AAC/G,KAAK;AACL;AACA,wBAAwB,mDAAmB,CAAC,0CAAI;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,C;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAiC,2HAA2H;;AAE5J,6BAA6B,kKAAkK;;AAE/L,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,wCAAwC,gFAAgF,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,iDAAiD,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa;;AAEve,+BAA+B,oCAAoC;;AAEpC;AAC4B;AAC5C;AACf,wBAAwB,8CAAc;AACtC;AACA;AACA;;AAEA,yBAAyB,8CAAc;AACvC;AACA;AACA;;AAEA,EAAE,+CAAe;AACjB,eAAe,8EAAiB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACE;AACK;AACU;AACjC;AACf,kBAAkB,oDAAM;AACxB,qBAAqB,oDAAM,OAAO;;AAElC,sBAAsB,oDAAM;AAC5B,yBAAyB,oDAAM,QAAQ;;AAEvC,qBAAqB,gEAAe;;AAEpC;AACA;AACA,IAAI,sDAAG;AACP;AACA;AACA,mCAAmC;;AAEnC,qCAAqC;;AAErC,SAAS,wDAAI;AACb;AACA;;AAEA,2BAA2B,8DAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAiC,2HAA2H;;AAE5J,6BAA6B,kKAAkK;;AAE/L,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,wCAAwC,gFAAgF,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,iDAAiD,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa;;AAEve,+BAA+B,oCAAoC;;AAEpC;AACA;AACsB;AACZ;AAC1B;AACf,wBAAwB,8CAAc;AACtC;AACA;AACA;;AAEA,oBAAoB,oDAAM;AAC1B,mBAAmB,oDAAM,KAAK,uDAAQ;AACtC,0BAA0B,oDAAM;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAW;AACvC;;AAEA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvEA;AAAA;AAAA;AAAA;AAA+B;AACA;AAC/B;AACe;AACf,mBAAmB,oDAAM;AACzB,kBAAkB,oDAAM;AACxB,mBAAmB,oDAAM,OAAO;;AAEhC,oBAAoB,oDAAM;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,qDAAqB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAA+B;AACf;AAChB;AACA,gBAAgB,oDAAM;AACtB,uBAAuB,oDAAM;;AAE7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH,sBAAsB,oDAAM;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,CAAC,E;;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;AAGA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA,0CAA0C;;;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA,+FAA+F;;AAE/F;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oFAAoF;;AAEpF;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;;AAEnB;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG,EAAE;;AAEL;AACA;;AAEA;AACA,qDAAqD;;AAErD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,YAAY;AACrD;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,2B;;;;;;;;;;;;ACjXa;;AAEb,uBAAuB,2BAA2B,2EAA2E,kCAAkC,mBAAmB,GAAG,EAAE,OAAO,kCAAkC,8HAA8H,GAAG,EAAE,qBAAqB;;AAExX;AACA;AACA,CAAC;AACD;;AAEA,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,yCAAyC,mBAAO,CAAC,sDAAY;;AAE7D,kCAAkC,mBAAO,CAAC,uFAAiB;;AAE3D,sCAAsC,uCAAuC,gBAAgB;;AAE7F,qCAAqC,gDAAgD,2BAA2B,iEAAiE,cAAc,GAAG,cAAc;;AAEhN,uCAAuC,6BAA6B,YAAY,EAAE,8EAA8E,SAAS,gBAAgB,EAAE,wCAAwC,+BAA+B,uBAAuB,EAAE,iBAAiB,sFAAsF,uBAAuB,sDAAsD,qFAAqF,sCAAsC,0CAA0C,EAAE,OAAO,wBAAwB,EAAE,EAAE,EAAE,sBAAsB,aAAa,wBAAwB,EAAE,eAAe;;AAEvuB,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN,0CAA0C,+DAA+D,2EAA2E,EAAE,yEAAyE,eAAe,sDAAsD,EAAE,EAAE,uDAAuD;;AAE/X,gCAAgC,4EAA4E,iBAAiB,UAAU,GAAG,8BAA8B;;AAExK,gCAAgC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,iDAAiD,GAAG;;AAEva,iDAAiD,0EAA0E,aAAa,EAAE,qCAAqC;;AAE/K,uCAAuC,uBAAuB,uFAAuF,EAAE,aAAa;;AAEpK,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU,6BAA6B,gGAAgG,gDAAgD,GAAG,2BAA2B;;AAE3M;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,wGAAwG;AACxG;AACA;AACA;AACA;AACA;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CA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrHa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE;;AAE3T,6DAA6D,sEAAsE,8DAA8D,oBAAoB;;AAErN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA,2B;;;;;;;;;;;;ACtCa;;AAEb;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AClGa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,uBAAuB,2BAA2B,2EAA2E,kCAAkC,mBAAmB,GAAG,EAAE,OAAO,kCAAkC,8HAA8H,GAAG,EAAE,qBAAqB;;AAExX;AACA;AACA,2B;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,6E;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAiC;AACjC;AACA;AACA;;AAEe;AACf;AACA;AACA;;AAEA,SAAS,gDAAQ;AACjB,C;;;;;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,wB;;;;;;;;;;;;ACrBa;;AAEb,6BAA6B,mBAAO,CAAC,iJAA8C;;AAEnF;AACA;AACA,CAAC;AACD;;AAEA,uCAAuC,mBAAO,CAAC,4BAAW;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACpBa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wB;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwF;AAClB;AACZ;AACyC;AACnD;AACI;AACiD;AAChE;AACN;AACE;;AAEjC,mBAAmB,aAAoB;AACvC,2BAA2B,GAAG;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD,kBAAkB,mBAAmB,uCAAuC;AAC9H;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS,kFAAQ,GAAG,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,aAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,EAAE,wFAAc;;AAEhB;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC,kKAAkK,SAAM;AACrN;;AAEA;;AAEA;AACA;;AAEA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;;AAEA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,CAAC,4CAAK;;AAEP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,6DAAO;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,kFAAQ,GAAG,yBAAyB;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,6DAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,qBAAqB,KAAqC,sBAAsB,SAAgB;AAChG;AACA;AACA;;AAEA,cAAc,kFAAQ,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,eAAe,kFAAQ,GAAG;AAC1B;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,2DAAU;AAC/B;AACA;AACA;AACA,GAAG,IAAI;AACP,CAAC;AACD,qBAAqB,2DAAU;AAC/B;AACA;AACA;AACA,GAAG,IAAI;AACP,CAAC;AACD,sBAAsB,2DAAU;AAChC;AACA,CAAC;AACD,sBAAsB,2DAAU;AAChC;AACA,CAAC;;AAED,mCAAmC,2DAAU;AAC7C;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,2DAAU;AACxC;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kFAAQ,GAAG;AACtB;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,6BAA6B,KAAqC,8DAA8D,SAAgB;AAChJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kFAAQ,GAAG;AAC9B;AACA,GAAG;AACH;AACA;AACA,mBAAmB,kFAAQ,GAAG;AAC9B;AACA,GAAG;AACH;AACA;AACA,mBAAmB,kFAAQ,GAAG;AAC9B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAO,CAAC,4DAAM;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,eAAe;AACf;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC,mFAAmF,SAAgB;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,aAAa,KAAqC,sBAAsB,SAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,2BAA2B,4DAAM;AACjC;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,4DAAM;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,6DAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,kBAAkB,kFAAQ,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,UAAU,KAAqC,gEAAgE,SAAgB;AAC/H;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED,qBAAqB,2DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS,kFAAQ,GAAG;AACpB,YAAY,kFAAQ,GAAG;AACvB;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA,qCAAqC,KAAqC,uEAAuE,SAAgB;AACjK,wCAAwC,KAAqC,0FAA0F,SAAgB;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,WAAW,kFAAQ,GAAG;AACtB;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,kFAAQ,GAAG;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,WAAW,KAAqC,oFAAoF,SAAgB;AACpJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,WAAW,kFAAQ,GAAG;AACtB;AACA,KAAK;AACL;;AAEA;AACA,kBAAkB,KAAqC,8GAA8G,SAAgB;AACrL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,kFAAQ,GAAG;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,SAAS,6DAAO;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA,SAAS,kFAAQ,GAAG,6BAA6B;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA,WAAW,kFAAQ;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,eAAe,kFAAQ,GAAG;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,kFAAQ,GAAG;AACpB;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA,qCAAqC,KAAqC,sBAAsB,SAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqC,0EAA0E,SAAgB;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAqC,mEAAmE,SAAgB;AAC/I;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,4DAAM;AACrB,aAAa,gEAAU;;AAEvB,cAAc,kFAAQ,GAAG;AACzB,iBAAiB,kFAAQ,GAAG;AAC5B;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,WAAW,KAAqC,4DAA4D,SAAgB;AAC5H;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,mBAAmB,kFAAQ,GAAG,iCAAiC;;AAE/D;AACA;AACA;AACA;AACA,GAAG;;AAEH,mBAAmB,kFAAQ,GAAG,iCAAiC;;AAE/D;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,sBAAsB,kFAAQ;AAC9B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,oBAAoB,kFAAQ;AAC5B;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,kFAAQ;AACnB;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,kFAAQ,GAAG;AACtB;AACA,KAAK;AACL;;AAEA;AACA,gCAAgC,KAAqC,sEAAsE,SAAgB;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,KAAqC,2EAA2E,SAAgB;;AAEpK,kBAAkB,kFAAQ;AAC1B;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,wEAAwE,KAAqC,yFAAyF,SAAgB;AACtN;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,KAAqC,8EAA8E,SAAgB;AACnK;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC,KAAqC,8EAA8E,SAAgB;AACnK;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,KAAqC,mFAAmF,SAAgB;AACxK;AACA;AACA;AACA;AACA,eAAe,KAAqC,4FAA4F,SAAgB;AAChK,yCAAyC,KAAqC,8IAA8I,SAAgB;;AAE5O,kBAAkB,kFAAQ,GAAG;AAC7B;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,KAAqC,mFAAmF,SAAgB;AACxK;AACA;AACA;AACA;AACA,gBAAgB,KAAqC,sGAAsG,SAAgB;AAC3K,wDAAwD,KAAqC,oKAAoK,SAAgB;;AAEjR,mBAAmB,kFAAQ,GAAG;AAC9B;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,KAAqC,uEAAuE,SAAgB;AAC5J,mCAAmC,KAAqC,qFAAqF,SAAgB;AAC7K;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kFAAQ,GAAG;AACnC,cAAc,kFAAQ,GAAG;AACzB;AACA,OAAO;AACP,KAAK;;AAEL,WAAW,kFAAQ;AACnB;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,KAAqC,6EAA6E,SAAgB;;AAEtK;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,sCAAsC,KAAqC,6FAA6F,SAAgB;;AAExL,mBAAmB,kFAAQ;AAC3B;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAqC,uEAAuE,SAAgB;AAClM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE,KAAqC,2IAA2I,SAAM;AACxL;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA,yCAAyC,KAAqC,0DAA0D,SAAgB;AACxJ;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,kFAAQ,GAAG;AACnC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,KAAqC,qFAAqF,SAAgB;AACrK,wEAAwE,KAAqC,8DAA8D,SAAgB;AAC3L;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,wDAAO;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,KAAqC,0EAA0E,SAAgB;AAClJ;AACA;;AAEA;AACA,kBAAkB,KAAqC,qEAAqE,SAAgB;AAC5I;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,MAAM,KAAqC,4EAA4E,SAAM;AAC7H;AACA;;AAEA;AACA,MAAM,KAAqC,oIAAoI,SAAM;AACrL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,KAAqC,8CAA8C,SAAgB;;AAEzH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,KAAqC,gGAAgG,SAAgB;AACtK;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,iBAAiB,KAAqC,kGAAkG,SAAgB;AACxK;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,iBAAiB,KAAqC,kGAAkG,SAAgB;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA,gBAAgB,KAAqC,qFAAqF,SAAgB;AAC1J;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,kFAAQ,GAAG;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,gBAAgB,KAAqC,kEAAkE,SAAgB;AACvI;AACA;;AAEA;AACA,gBAAgB,KAAqC,qFAAqF,SAAgB;AAC1J;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,kFAAQ,GAAG;AAC5B;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,KAAqC,kFAAkF,SAAgB;AACnL;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,KAAqC,6EAA6E,SAAgB;AAC5K;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED,uBAAuB,KAAqC,iIAAiI,6CAAO;AACpM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAa,2BAA2B,6DAAe;AAChE,CAAC;;AAED;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,SAAS,KAAqC,8DAA8D,SAAgB;AAC5H;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6DAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAqC,qSAAqS,SAAM;AACpV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA,qCAAqC,KAAqC,uGAAuG,SAAgB;;AAEjM;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,KAAqC,6GAA6G,SAAgB;AACvM;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,KAAqC,kGAAkG,SAAgB;AAC5L;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,kBAAkB,KAAqC,kFAAkF,SAAgB;AACzJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,KAAqC,qGAAqG,SAAgB;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED,8BAA8B,2DAAU;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA,uBAAuB,KAAqC,wCAAwC,SAAgB;AACpH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,KAAqC,wLAAwL,SAAM;AACvO;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;AACD;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,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,6BAA6B,wDAAO;AACpC,gCAAgC,wDAAO;AACvC;;AAEA;AACA,gBAAgB,KAAqC,6DAA6D,SAAgB;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,iBAAiB,KAAqC,0EAA0E,SAAgB;AAChJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,KAAqC,mFAAmF,SAAgB;AAC3J;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,gBAAgB;AAC9C,GAAG;AACH;;AAEA,4CAA4C;AAC5C;AACA;;AAEA;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA,yDAAyD,uDAAuD,uCAAuC;AACvJ;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,4CAA4C,mCAAmC,4BAA4B,oCAAoC,iCAAiC,gCAAgC,gCAAgC;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,kKAAkK,qDAAe,GAAG,+CAAS;;AAE7L;AACA;AACA,UAAU,KAAqC,mEAAmE,SAAgB;AAClI;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,4DAAO;AACtB;AACA,GAAG;AACH,kBAAkB,oDAAM;AACxB,mBAAmB,oDAAM;AACzB,wBAAwB,gEAAW,CAAC,2DAAU;AAC9C;AACA,UAAU,KAAqC,2EAA2E,SAAgB;AAC1I;AACA,GAAG;AACH,uBAAuB,gEAAW;AAClC;AACA,UAAU,KAAqC,2EAA2E,SAAgB;AAC1I;AACA,GAAG;AACH;AACA,mDAAmD,KAAqC,wDAAwD,SAAgB;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,KAAqC,6DAA6D,SAAgB;AACrI;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,iBAAiB,gEAAW;AAC5B;AACA,GAAG;AACH,iBAAiB,gEAAW;AAC5B;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,gBAAgB,gEAAW;AAC3B;AACA;AACA;;AAEA;AACA,GAAG;AACH,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI,KAAqC,qFAAqF,SAAM;AACpI;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,IAAI,KAAqC,qHAAqH,SAAM;AACpK;AACA;;AAEA;AACA,IAAI,KAAqC,sDAAsD,SAAM;AACrG;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,oDAAM,GAAG;AAC5B,kBAAkB,oDAAM;AACxB,6BAA6B,oDAAM;AACnC,qBAAqB,oDAAM;AAC3B,iBAAiB,gEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,qBAAqB,gEAAW;AAChC;;AAEA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,gEAAW;AAClC;AACA;AACA;AACA,GAAG;AACH,gCAAgC,gEAAW;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,uBAAuB,gEAAW;AAClC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC,0EAA0E,SAAgB;AAC5I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC,0EAA0E,SAAgB;AAC5I;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,4DAAO;AACxB,EAAE,uDAAS;AACX;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,mBAAmB,4CAAK;;AAExB;AACA;AACA,UAAU,KAAqC,mDAAmD,SAAgB;AAClH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,4DAAO;AAClB;AACA,GAAG;AACH,YAAY,oDAAM;AAClB,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA;;AAEA,IAAI,kFAAQ;;AAEZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,iBAAiB,gEAAW;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA,IAAI,KAAqC,8ZAA8Z,SAAM;AAC7c,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4DAAO;AAChB;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW,4DAAO;AAClB;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,iBAAiB,4CAAK;;AAEtB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAsB,KAAqC,gEAAgE,SAAgB;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,KAAqC,4MAA4M,SAAM;AACzP,CAAC;;AAED;AACA;AACA;;AAEA;AACA,IAAI,KAAqC,gFAAgF,SAAM;AAC/H;AACA;;AAEA;AACA,IAAI,KAAqC,0GAA0G,SAAM;AACzJ;;AAEA;AACA,IAAI,KAAqC,uKAAuK,SAAM;AACtN;AACA,CAAC;;AAED;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA,8CAA8C,4CAAK;AACnD;AACA,GAAG;AACH;;AAEA;AACA,YAAY,oDAAM;AAClB,EAAE,uDAAS;AACX;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,KAAqC,oEAAoE,SAAgB;AACtI;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,KAAqC,mEAAmE,SAAgB;AACpI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,KAAqC,wCAAwC,SAAgB;AACjI;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,iCAAiC,KAAqC,0CAA0C,SAAgB;;AAEhI;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA,iBAAiB,oDAAM;AACvB,wBAAwB,oDAAM;AAC9B,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,iCAAiC,4DAAO;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,gEAAW;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,aAAa,gEAAW;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,eAAe,gEAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,gEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,yBAAyB,gEAAW;AACpC,0CAA0C,KAAqC,oEAAoE,SAAgB;AACnK;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;AAEA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA,wBAAwB,oDAAM;AAC9B,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,KAAqC,kFAAkF,SAAgB;AAChK;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH,yBAAyB,gEAAW;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,iCAAiC,KAAqC,sBAAsB,SAAgB;AAC5G;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA,iBAAiB,oDAAM;AACvB,wBAAwB,oDAAM;AAC9B,iBAAiB,gEAAW;AAC5B;AACA,GAAG;AACH,iBAAiB,gEAAW;AAC5B;AACA,GAAG;AACH,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,gEAAW;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,aAAa,gEAAW;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,eAAe,gEAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,gEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,gEAAW;AACjC;AACA,kCAAkC,KAAqC,wEAAwE,SAAgB;AAC/J;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,yBAAyB,gEAAW;AACpC,oCAAoC,KAAqC,oEAAoE,SAAgB;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,KAAqC,iFAAiF,SAAgB;AACnM,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS,6DAAO;AAChB,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,KAAqC,+CAA+C,SAAM;AAC9F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI,KAAqC,kDAAkD,SAAM;AACjG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,IAAI,KAAqC,uDAAuD,SAAM;AACtG;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,8PAA8P,SAAM;AAC/S;;AAEA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,mUAAmU,SAAM;AACpX;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAqC,iEAAiE,SAAM;AAChH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,KAAqC,yEAAyE,SAAM;AACxH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,KAAqC,uDAAuD,SAAgB;AAC5I;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,kFAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,iBAAiB,wDAAO;AACxB;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,WAAW,kFAAQ,GAAG;AACtB;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAQ;AACxB;AACA,GAAG;AACH,uBAAuB,gEAAW;AAClC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,mBAAmB,gEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,mBAAmB,gEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,+BAA+B,gEAAW;AAC1C;AACA,GAAG;AACH,gCAAgC,gEAAW;AAC3C;AACA;AACA,GAAG;AACH,uBAAuB,gEAAW;AAClC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,gEAAW;AACjC,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,KAAqC,4DAA4D,SAAgB;AACtI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA,sBAAsB,gEAAW;AACjC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB,gEAAW;AAChC;AACA,GAAG;AACH,yBAAyB,4DAAO;AAChC,WAAW,gEAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,yBAAyB,4DAAO;AAChC;AACA,GAAG;AACH,qBAAqB,4DAAO;AAC5B,8BAA8B,kFAAQ;AACtC;AACA;AACA,KAAK,EAAE,gEAAkB;AACzB;AACA,KAAK;AACL,GAAG;AACH;AACA,cAAc,4DAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,MAAM,IAAqC;AAC3C;AACA,MAAM,KAAqC,wCAAwC,SAAM;AACzF;AACA;;AAEA;AACA,sBAAsB,gEAAW;AACjC;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,mBAAmB,gEAAW;AAC9B;AACA;AACA,GAAG;AACH,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,mBAAmB,gEAAW;AAC9B;AACA,GAAG;AACH,6BAA6B,gEAAW;AACxC;AACA,GAAG;AACH,mBAAmB,4DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK,eAAe,oDAAQ;AACjC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAO;AAChB;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd,WAAW,4CAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC,EAAE,EAE1C;;AAEH;AACA;AACA,UAAU,KAAqC,sBAAsB,SAAgB;;AAErF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,KAAqC,wlBAAwlB,SAAM;AACroB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,EAAE,KAAqC,0UAA0U,SAAM;AACvX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,aAAa,4DAAM;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAM;AACxB,eAAe,+DAAS;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gEAAU;;AAEvB;AACA;AACA;AACA;;AAEA,sBAAsB,4DAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAU;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,eAAe,wDAAU;AACzB,YAAY,KAAqC,yDAAyD,SAAgB;AAC1H;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,oDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,oDAAM;AACrC,6BAA6B,4DAAO;AACpC,WAAW,2DAAU;AACrB,kCAAkC,KAAqC,8DAA8D,SAAgB;AACrJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,yBAAyB,gEAAW;AACpC;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH,qBAAqB,gEAAW;AAChC;AACA;AACA,GAAG;AACH,6BAA6B,4DAAO;AACpC,WAAW,wDAAO;AAClB,GAAG;AACH,wBAAwB,gEAAW;AACnC;AACA;AACA,6BAA6B,KAAqC,uEAAuE,SAAgB;AACzJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,mCAAmC,gEAAW;AAC9C,iCAAiC,KAAqC,8EAA8E,SAAgB;AACpK;AACA;AACA,WAAW,KAAqC,gEAAgE,SAAgB;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,UAAU,IAAqC;AAC/C;AACA;AACA;;AAEA;AACA,GAAG;AACH,+BAA+B,gEAAW;AAC1C;AACA;AACA,6BAA6B,KAAqC,yGAAyG,SAAgB;AAC3L;AACA,GAAG;AACH,oBAAoB,gEAAW;AAC/B;AACA,gBAAgB,KAAqC,8DAA8D,SAAgB;AACnI;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,eAAe,gEAAW;AAC1B;AACA,gBAAgB,KAAqC,6DAA6D,SAAgB;AAClI;AACA,eAAe,KAAqC,8EAA8E,SAAgB;AAClJ;AACA;AACA,GAAG;AACH,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,cAAc,4DAAO;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC,2FAA2F,SAAM;AAC9I;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,oDAAM;AAClC,iCAAiC,gEAAW;AAC5C;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,EAAE,uDAAS;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,wBAAwB,gEAAW;AACnC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,4CAAK;;AAEzB,uBAAuB,4CAAK;;AAE5B;AACA,+BAA+B,KAAqC,yQAAyQ,SAAgB;AAC7V;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,uBAAuB,KAAqC,iEAAiE,SAAgB;AAC7I,6CAA6C,KAAqC,mHAAmH,SAAgB;AACrN,CAAC;AACD;AACA,qCAAqC,KAAqC,0DAA0D,SAAgB;AACpJ,uCAAuC,KAAqC,4DAA4D,SAAgB;AACxJ,8CAA8C,KAAqC,mEAAmE,SAAgB;AACtK,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,EAAE,KAAqC,uLAAuL,qBAAqB,gKAAgK,SAAM;AACzZ,CAAC;AACD;AACA;AACA,uBAAuB,KAAqC,8FAA8F,SAAgB;AAC1K,CAAC;AACD;AACA,0BAA0B,KAAqC,yEAAyE,SAAgB;AACxJ,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,EAAE,wFAAc;;AAEhB;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,CAAC,4CAAK;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kEAAY;AAC3B,aAAa,gEAAU;AACvB;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,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qBAAqB,gEAAW;AAChC;AACA,UAAU,KAAqC,iEAAiE,SAAgB;AAChI;AACA,GAAG;AACH,cAAc,4DAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qBAAqB,oDAAM;AAC3B,0BAA0B,oDAAM;AAChC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,KAAqC,0DAA0D,SAAgB;AACzH,gCAAgC,KAAqC,mIAAmI,SAAgB;AACxN,8BAA8B,KAAqC,sEAAsE,SAAgB;;AAEzJ;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC,KAAqC,kEAAkE,SAAgB;AAC9J;AACA,GAAG;AACH;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA,0CAA0C,KAAqC,oFAAoF,SAAgB;AACnL,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,oDAAM;AAClB,eAAe,gEAAW;AAC1B;AACA,GAAG;AACH,eAAe,gEAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,4DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,4DAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,kBAAkB,gEAAW;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH,iBAAiB,4DAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH,eAAe,4DAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,2DAAU;AACjC;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,2DAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,2DAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,2DAAU;AACjC;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,2DAAU;AACtC,yBAAyB,2DAAU;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAO;AAChC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK,iCAAiC,kFAAQ,GAAG;AAC1D;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,mBAAmB,wDAAU;AAC7B,gBAAgB,KAAqC,oDAAoD,SAAgB;AACzH;AACA;AACA,qBAAqB,oDAAM;AAC3B,uBAAuB,oDAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gEAAW;AACnC;AACA,GAAG;AACH,wBAAwB,gEAAW;AACnC;AACA,GAAG;AACH,0BAA0B,gEAAW;AACrC;AACA,GAAG;AACH,0BAA0B,gEAAW;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,mCAAmC,gEAAW;AAC9C;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,4CAAK;AACzB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,WAAW,4CAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,iBAAiB,4DAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB,4DAAO;AAChC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,4CAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,WAAW,gDAAQ;AACnB;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,6BAA6B,kFAAQ,GAAG;AACxC;AACA,GAAG;;AAEH,2BAA2B,2DAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,2DAAU;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,KAAqC,oDAAoD,SAAgB;AAC5H;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAO;AAChC;AACA;AACA;AACA,CAAC;AACD;;AAE8G;;;;;;;;;;;;;AC/zQ9G;AAAA;AAAe;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAiD;AAClC;AACf;AACA;AACA,EAAE,kEAAc;AAChB,C;;;;;;;;;;;;ACLA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACPA,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;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA4D;AAClE,uBAAuB,mBAAO,CAAC,oBAAO;AACtC;AACA,GAAG,MAAM,UAmBN;AACH,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;ACjMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA,cAAc,mBAAO,CAAC,4DAAe;AACrC,YAAY,mBAAO,CAAC,oBAAO;AAC3B,qBAAqB,mBAAO,CAAC,8EAA2B;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;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;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;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;;AAEA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA,kDAAkD;AAClD;;AAEA;;;AAGA;;;AAGA;AACA,yCAAyC;;AAEzC;;;AAGA;;;AAGA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I;;AAE7I;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kEAAkE,4CAA4C;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,wBAAwB,EAAE,8BAA8B;AACxD;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4CAA4C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4KAA4K,YAAY;AACxL;AACA;AACA;AACA;AACA,uLAAuL,+BAA+B;AACtN;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,SAAS;AACT;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;;AAEA;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;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iKAAiK,iBAAiB;AAClL,OAAO;AACP,iKAAiK,iBAAiB,wDAAwD,mBAAmB,gBAAgB,8BAA8B;AAC3S;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+GAA+G,GAAG;AAClH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;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,oDAAoD;AACpD;AACA;AACA;AACA;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;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;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;;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,SAAS;AACT;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;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;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;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;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;;AAEA,wBAAwB;AACxB;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;AC/mHa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,2HAA+C;AAC1E;;;;;;;;;;;;ACNA;AACA,IAAI,KAAuD,gCAAgC,SAA2K;AACtQ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;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,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iEAAiE;AACjE,iDAAiD;AACjD,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mDAAmD;AACnD;AACA;AACA;AACA,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,qBAAqB;AACrB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,uHAAuH;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+CAA+C;AAC/G;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+CAA+C;AAC/G;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,kHAAkH,8DAA8D;AAChL;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC;AACjC;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC,mEAAmE;AACpG;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,+CAA+C;AAC/C,0CAA0C;AAC1C,gDAAgD;AAChD,gDAAgD;AAChD;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,yBAAyB,mBAAO,CAAC,oBAAO;AACxC,KAAK;AACL;AACA;AACA,yBAAyB,mBAAO,CAAC,sDAAY;AAC7C,KAAK;AACL;AACA;AACA,yBAAyB,mBAAO,CAAC,4DAAa;AAC9C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,8FAA8F;AAC9F;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sHAAsH;AACtH;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE,QAAQ,iBAAiB,EAAE,UAAU,iBAAiB,EAAE,EAAE,iCAAiC,QAAQ,iBAAiB,EAAE,UAAU,iBAAiB,EAAE,EAAE,iBAAiB,0CAA0C,kBAAkB,WAAW,YAAY,aAAa,cAAc,kBAAkB,gBAAgB,iBAAiB,8BAA8B,0BAA0B,2BAA2B,2BAA2B,2BAA2B,EAAE,wBAAwB,eAAe,EAAE,iBAAiB,uBAAuB,WAAW,YAAY,aAAa,cAAc,EAAE,iBAAiB,uBAAuB,WAAW,aAAa,cAAc,YAAY,iBAAiB,oBAAoB,8BAA8B,0BAA0B,2BAA2B,2BAA2B,2BAA2B,EAAE,qBAAqB,oBAAoB,EAAE,qB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AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+DAA+D,cAAc;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E,iBAAiB;AACjB,aAAa;AACb;AACA,oDAAoD,QAAQ,iBAAiB;AAC7E;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,2CAA2C,YAAY,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA,+FAA+F,kLAAkL,mBAAmB;AACpS;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yBAAyB,mBAAO,CAAC,oGAAsC;AACvE,KAAK;AACL;AACA;AACA,yBAAyB,mBAAO,CAAC,kGAAqC;AACtE,KAAK;AACL,CAAC,E;;;;;;;;;;;;ACpmDD;AAAA;AAAA;AAAA;AAAA;AAA2F;;AAE3F;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,EAAE;;AAEX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,WAAW;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;AACA,0CAA0C;;;AAG1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,2DAAa;AACrC;AACA,KAAK;AACL;;AAEA;AACA,CAAC,CAAC,+CAAS;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,oDAAM;;AAExB,wBAAwB,sDAAQ;AAChC;AACA,GAAG;AACH;AACA;;AAEA,eAAe,yDAAW;AAC1B;AACA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,mDAAmD;;AAEnD;AACA;AACA;AACA;AACA;;AAEe,qEAAM,EAAC;AACO;AAC7B;;;;;;;;;;;;;AChXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA,8CAA8C,cAAc;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gGAAgG,eAAe;AAC/G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;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;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;;;;;;;;;;;;;AC3Oa;;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;;;;;;;;;;;;;AC7JP;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,E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AAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C,OAAO;AACP;AACA;AACA;AACA;;AAEA,wBAAwB,eAAe;AACvC,0BAA0B,kBAAkB;;AAE5C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAyD,0DAA0D;AAC9H;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,eAAe;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,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,oC;;;;;;;;;;;;ACtaa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,kDAAS;;AAEhC;;AAEA,uBAAuB,mBAAO,CAAC,oFAAmB;;AAElD,sCAAsC,uCAAuC,gBAAgB;;AAE7F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yIAAyI,GAAG,8JAA8J,MAAM;;AAEhT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACpEa;;AAEb,2BAA2B,mBAAO,CAAC,4FAAuB;;AAE1D;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kD;;;;;;;;;;;;AC1Da;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;AC1Ga;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAO,CAAC,+EAAqB;;AAE7C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,C;;;;;;;;;;;;AC7Fa;;AAEb;AACA;AACA,CAAC;;AAED,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,oC;;;;;;;;;;;;AC3Da;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,aAAa,mBAAO,CAAC,4CAAO;;AAE5B;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;;AAEA;;AAEA;;AAEA,kC;;;;;;;;;;;;ACnBa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,gBAAgB,mBAAO,CAAC,sEAAY;;AAEpC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oC;;;;;;;;;;;;ACxFa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oC;;;;;;;;;;;;AC3Da;;AAEb;AACA;AACA,CAAC;;AAED,aAAa,mBAAO,CAAC,8EAAoB;;AAEzC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,oC;;;;;;;;;;;ACbA,uC;;;;;;;;;;;;ACAa;;AAEb,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,mBAAO,CAAC,4BAAW;AAClC,kBAAkB,mBAAO,CAAC,sEAAoB;AAC9C,iBAAiB,mBAAO,CAAC,wDAAS;AAClC,WAAW,mBAAO,CAAC,kDAAa;AAChC,WAAW,mBAAO,CAAC,kDAAa;AAChC,cAAc,mBAAO,CAAC,wDAAgB;AACtC,QAAQ,mBAAO,CAAC,sDAAY;AAC5B,UAAU,mBAAO,CAAC,wEAAqB;;AAEvC;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;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;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,aAAa;AACb;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;;AAExC;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,2BAA2B;;AAE5C;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;ACpaA;AACA;AACA;AACA;AACA,YAAY,mBAAO,CAAC,iDAAO;AAC3B,gBAAgB,mBAAO,CAAC,gEAAa;;AAErC;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,wDAAS;AACxC,yBAAyB,mBAAO,CAAC,4DAAW;;;;;;;;;;;;;ACX/B;;AAEb,YAAY,mBAAO,CAAC,iDAAO;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAwC,EAAE;AACtE,4BAA4B,sCAAsC,EAAE;AACpE,4BAA4B,0BAA0B;AACtD,4BAA4B,0CAA0C,EAAE;AACxE,4BAA4B,2CAA2C,EAAE;AACzE,4BAA4B,wCAAwC,EAAE;AACtE;AACA;;AAEA;;AAEA;;;;;;;;;;;;;ACxHA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,YAAY,mBAAO,CAAC,oBAAO;AAC3B,qBAAqB,mBAAO,CAAC,oEAAkB;AAC/C,kBAAkB,mBAAO,CAAC,sEAAoB;AAC9C,WAAW,mBAAO,CAAC,kDAAa;AAChC,cAAc,mBAAO,CAAC,wDAAgB;AACtC,QAAQ,mBAAO,CAAC,sDAAY;AAC5B,UAAU,mBAAO,CAAC,wEAAqB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,eAAe,EAAE;;AAEhD;;AAEA,EAAE;AACF,GAAG;AACH,IAAI,yDAAyD;AAC7D,IAAI,qCAAqC;AACzC,IAAI;AACJ,IAAI;AACJ,GAAG;AACH,IAAI,+BAA+B;AACnC,IAAI,8CAA8C;AAClD,IAAI,+BAA+B;AACnC,IAAI;AACJ,IAAI;AACJ,GAAG;AACH,IAAI,oCAAoC;AACxC,IAAI,2BAA2B;AAC/B,IAAI,0BAA0B;AAC9B,IAAI;AACJ;AACA,GAAG;;AAEH,EAAE;AACF,GAAG,4BAA4B;AAC/B,GAAG,gCAAgC;AACnC,GAAG,gCAAgC;AACnC,GAAG,sCAAsC;AACzC,GAAG,mDAAmD;AACtD,GAAG,mEAAmE;AACtE,GAAG;AACH,GAAG;;AAEH,EAAE;AACF,GAAG,8BAA8B;AACjC,GAAG;AACH,GAAG;;AAEH,EAAE;AACF,GAAG;AACH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,EAAE;;AAEF;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;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;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,GAAG;AACH,EAAE;;AAEF,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;ACvMA;AAAA;AAAA;AAAA;AAA0B;AACnB;AACP;AACA,4CAAK;;AAEL,IAAI,IAAqC;AACzC;AACA;;AAEe,gFAAiB,E;;;;;;;;;;;;ACThC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACf;AACW;AACG;;AAEjD;AACA;AACA;AACA;AACA,qBAAqB,qDAAO;AAC5B,2BAA2B,2DAAY;AACvC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,qDAAO;AAC7B;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,0DAAiB;AAC5C,SAAS,4CAAK;AACd;AACA,GAAG;AACH;;AAEA,IAAI,IAAqC;AACzC;AACA,WAAW,iDAAS;AACpB,iBAAiB,iDAAS;AAC1B,gBAAgB,iDAAS;AACzB,gBAAgB,iDAAS;AACzB,KAAK;AACL,aAAa,iDAAS;AACtB,cAAc,iDAAS;AACvB;AACA;;AAEe,uEAAQ,E;;;;;;;;;;;;ACnDvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAC0C;AACjD;AACoB;AACN;AAChB;AAC8B;AACjC;;AAE9C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE,kGAAyB;AAC3B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;;;AAGJ;AACA,8BAA8B;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0DAAiB;AAC5D,uBAAuB,uGAA6B;;AAEpD,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qQAAqQ,UAAU,8BAA8B,UAAU,0CAA0C,oBAAoB;;AAErX;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC,KAAK,mEAAkB;AACpE;AACA;;AAEA;AACA;;AAEA,iCAAiC,kFAAQ,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,iCAAiC,6CAAO;AACxC;AACA;;AAEA;AACA,qBAAqB,qDAAO;AAC5B;AACA;AACA;AACA;AACA,2BAA2B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IAAqC,EAAE,wEAAiB;AACpE;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA,GAAG;AACH;AACe,kHAAmD,E;;;;;;;;;;;;ACnClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoG;AAC9C;AAC/C;AACP;AACA;AACA;AACA;AACO;AACP;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;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,CAAC;AACD;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,gBAAgB,uGAA6B;;AAE7C;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C,IAAI,mEAAkB;AACtB;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACtFA;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,8DAAO;AACb;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAA2D;AACpD;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAU,IAAqC,EAAE,wEAAiB;AAClE;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACgB;AAC1E;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;;AAEO;AACP;AACA,cAAc,qEAAi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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;ACzHD;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA,6BAA6B;;AAEtB;AACP;AACA,EAAE;;AAEK;AACP;AACA,E;;;;;;;;;;;;ACbA;AAAA;AAAA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAmD;AACnD;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEO,kKAAkK,qDAAe,GAAG,+CAAS,C;;;;;;;;;;;;ACTpM;AAAA;AAAA;AAAA;AAA4C;AACZ;AACjB;AACf,OAAO,8DAAa;AACpB,IAAI,wDAAO;AACX;AACA,C;;;;;;;;;;;;ACNA;AAAA;AAAA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,C;;;;;;;;;;;;ACvBa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;;;AAGA;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,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;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;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;;;AAGA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,OAAO,yDAAY;AACxB;AACA,KAAK;AACL,GAAG;AACH;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,QAAQ,yDAAY;AACvB;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;;AAEhB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA,GAAG;AACH;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,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;;AAEA;AACA,4EAA4E,aAAa;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B;AAC9B;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,KAAqC;AACzC;AACA;;AAEgI;;;;;;;;;;;;ACtpBhI;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;A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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoD;;AAEpD;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,sDAAQ;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH,mBAAmB,oDAAM;AACzB,kBAAkB,oDAAM;AACxB;AACA;AACA;AACA;AACA;AACA,EAAE,uDAAS;AACX;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAE4D;;;;;;;;;;;;;AC5C5D;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACvBA;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// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"choerodon-ui-pro\": 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({}[chunkId]||chunkId) + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp_name_\"] = window[\"webpackJsonp_name_\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\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\"./attachment/style/index.tsx\": \"./components-pro/attachment/style/index.tsx\",\n\t\"./auto-complete/style/index.tsx\": \"./components-pro/auto-complete/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\"./cascader/style/index.tsx\": \"./components-pro/cascader/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\"./inject-modal/style/index.tsx\": \"./components-pro/inject-modal/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-manager/style/index.tsx\": \"./components-pro/modal-manager/style/index.tsx\",\n\t\"./modal-provider/style/index.tsx\": \"./components-pro/modal-provider/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\"./overflow-tip/style/index.tsx\": \"./components-pro/overflow-tip/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\"./performance-table/style/index.tsx\": \"./components-pro/performance-table/style/index.tsx\",\n\t\"./picture/style/index.tsx\": \"./components-pro/picture/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\"./rate/style/index.tsx\": \"./components-pro/rate/style/index.tsx\",\n\t\"./rich-text/style/index.tsx\": \"./components-pro/rich-text/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\"./screening/style/index.tsx\": \"./components-pro/screening/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\"./skeleton/style/index.ts\": \"./components-pro/skeleton/style/index.ts\",\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-select/style/index.tsx\": \"./components-pro/tree-select/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\"./use-computed/style/index.tsx\": \"./components-pro/use-computed/style/index.tsx\",\n\t\"./use-modal/style/index.tsx\": \"./components-pro/use-modal/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';\nimport Spin from '../spin';\nimport exception from './exception';\nconst asyncComponent = (importComponent) => {\n class AsyncComponent extends Component {\n constructor() {\n super(...arguments);\n this.state = {};\n }\n componentDidMount() {\n importComponent().then(({ default: component }) => {\n this.setState({ component });\n }, exception);\n }\n render() {\n const { component: Cmp } = this.state;\n return Cmp\n ? React.createElement(Cmp, Object.assign({}, this.props))\n : React.createElement(Spin, null);\n }\n }\n return AsyncComponent;\n};\nexport default asyncComponent;\n","import { reaction } from 'mobx';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Yallist from './Yallist';\n// 双向链表 -> 缓存更新性能优化\nconst MAX = Symbol('max'); // 最大值\nconst LENGTH = Symbol('length'); // 长度\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator'); // 长度计算\nconst ALLOW_STALE = Symbol('allowStale'); // 允许过时\nconst MAX_AGE = Symbol('maxAge'); // 最大时效(缓存时长)\nconst DISPOSE = Symbol('dispose'); // 处置 处理\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); // 不可处理\nconst LIST = Symbol('list'); // 列表\nconst CACHE = Symbol('cache'); // 缓存\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); // 获取更新时效\nconst naiveLength = () => 1;\n/**\n * 是否过时\n * @param self\n * @param hit\n */\nfunction isStale(self, hit) {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];\n}\n/**\n * 删除\n * @param self\n * @param node\n */\nfunction del(self, node) {\n if (node) {\n const hit = node.value;\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value);\n self[LENGTH] -= hit.length;\n self[CACHE].delete(hit.key);\n self[LIST].removeNode(node);\n }\n}\n/**\n * 获取\n * @param self\n * @param key\n * @param doUse\n */\nfunction get(self, key, doUse) {\n const node = self[CACHE].get(key);\n if (node) {\n const hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE])\n return undefined;\n }\n else if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now();\n self[LIST].unshiftNode(node);\n }\n return hit.value;\n }\n}\n/**\n * 修整\n * @param self\n */\nfunction trim(self) {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n del(self, walker);\n walker = prev;\n }\n }\n}\n/**\n * 遍历步骤\n * @param self\n * @param fn\n * @param node\n * @param thisp\n */\nfunction forEachStep(self, fn, node, thisp) {\n let hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE])\n hit = undefined;\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self);\n}\n/**\n * 构造 Entry 类\n */\nclass Entry {\n constructor(key, value, length, now, maxAge = 0) {\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge;\n }\n}\n/**\n * 导出 Cache 类\n */\nexport default class Cache {\n constructor(options) {\n if (typeof options === 'number')\n options = { max: options };\n if (!options)\n options = {};\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number');\n this[MAX] = options.max || 0;\n const lc = options.length || naiveLength;\n this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc;\n this[ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number');\n this[MAX_AGE] = options.maxAge || 0;\n this[DISPOSE] = options.dispose;\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number');\n this[MAX] = mL || Infinity;\n trim(this);\n }\n get max() {\n return this[MAX];\n }\n set allowStale(allowStale) {\n this[ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number');\n this[MAX_AGE] = mA;\n trim(this);\n }\n get maxAge() {\n return this[MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== 'function')\n lC = naiveLength;\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC;\n this[LENGTH] = 0;\n this[LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);\n this[LENGTH] += hit.length;\n });\n }\n trim(this);\n }\n get lengthCalculator() {\n return this[LENGTH_CALCULATOR];\n }\n get length() {\n return this[LENGTH];\n }\n get itemCount() {\n return this[LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for (let walker = this[LIST].tail; walker !== null;) {\n const prev = walker.prev;\n forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for (let walker = this[LIST].head; walker !== null;) {\n const next = walker.next;\n forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[LIST].toArray().map(k => k.key);\n }\n values() {\n return this[LIST].toArray().map(k => k.value);\n }\n reset() {\n if (this[DISPOSE] && this[LIST] && this[LIST].length) {\n this[LIST].forEach(hit => this[DISPOSE](hit.key, hit.value));\n }\n this[CACHE] = new Map(); // hash of items by key\n this[LIST] = new Yallist(); // list of items in order of use recency\n this[LENGTH] = 0; // length of items in the list\n }\n dump() {\n return this[LIST].map(hit => isStale(this, hit)\n ? false\n : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0),\n })\n .toArray()\n .filter(h => h);\n }\n dumpLru() {\n return this[LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE];\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number');\n const now = maxAge ? Date.now() : 0;\n const len = this[LENGTH_CALCULATOR](value, key);\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key));\n return false;\n }\n const node = this[CACHE].get(key);\n const item = node.value;\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n trim(this);\n return true;\n }\n const hit = new Entry(key, value, len, now, maxAge);\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value);\n return false;\n }\n this[LENGTH] += hit.length;\n this[LIST].unshift(hit);\n this[CACHE].set(key, this[LIST].head);\n trim(this);\n return true;\n }\n has(key) {\n if (!this[CACHE].has(key))\n return false;\n const hit = this[CACHE].get(key).value;\n return !isStale(this, hit);\n }\n get(key) {\n return get(this, key, true);\n }\n peek(key) {\n return get(this, key, false);\n }\n pop() {\n const node = this[LIST].tail;\n if (!node)\n return null;\n del(this, node);\n return node.value;\n }\n del(key) {\n del(this, this[CACHE].get(key));\n }\n load(arr) {\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n }\n prune() {\n this[CACHE].forEach((_value, key) => get(this, key, false));\n }\n}\nexport function refreshCacheOptions(cache) {\n return reaction(() => getConfig('lookupCache') || {}, (lookupCache) => {\n if ('max' in lookupCache) {\n cache.max = lookupCache.max;\n }\n if ('maxAge' in lookupCache) {\n cache.maxAge = lookupCache.maxAge;\n }\n if ('stale' in lookupCache) {\n cache.allowStale = lookupCache.stale;\n }\n if ('length' in lookupCache) {\n cache.lengthCalculator = lookupCache.length;\n }\n });\n}\n","export function getDocument(self) {\n try {\n const { parent, top } = self;\n if (parent !== top) {\n return getDocument(parent);\n }\n return parent.document;\n }\n catch (e) {\n return self.document;\n }\n}\nexport function getDocuments(self, list = []) {\n try {\n const { parent, top } = self;\n if (parent !== top) {\n return getDocuments(parent, list);\n }\n return list.concat(parent.document);\n }\n catch (e) {\n return list.concat(self.document);\n }\n}\nexport function findIFrame(self) {\n return [...self.parent.document.querySelectorAll('iframe')].find(frame => frame.contentWindow === self);\n}\nfunction getPageMousePosition(x, y, self) {\n const { scrollTop, scrollLeft } = self.document.documentElement;\n return { x: x + scrollLeft, y: y + scrollTop };\n}\nexport function getMousePosition(x, y, self, client) {\n try {\n if (self.top === self) {\n return client ? { x, y } : getPageMousePosition(x, y, self);\n }\n const { parent } = self;\n const iframe = findIFrame(self);\n const { top, left } = iframe ? iframe.getBoundingClientRect() : { top: 0, left: 0 };\n const newX = x + left;\n const newY = y + top;\n if (parent === self.top) {\n return client ? { x: newX, y: newY } : getPageMousePosition(newX, newY, parent);\n }\n return getMousePosition(newX, newY, parent);\n }\n catch (e) {\n return client ? { x, y } : getPageMousePosition(x, y, self);\n }\n}\n","import EventManager, { preventDefault, stopEvent, stopPropagation } from 'choerodon-ui/lib/_util/EventManager';\nexport default EventManager;\nexport { preventDefault, stopPropagation, stopEvent, };\n","import { get, isObservableObject, remove, runInAction, set } from 'mobx';\nexport function mobxGet(obj, key) {\n if (isObservableObject(obj)) {\n return get(obj, key);\n }\n return obj[key];\n}\nexport function mobxSet(obj, key, value) {\n if (isObservableObject(obj)) {\n runInAction(() => {\n set(obj, key, value);\n });\n }\n else {\n obj[key] = value;\n }\n}\nexport function mobxRemove(obj, key) {\n if (isObservableObject(obj)) {\n runInAction(() => {\n remove(obj, key);\n });\n }\n else {\n delete obj[key];\n }\n}\n","import isObject from 'lodash/isObject';\nimport { isArrayLike, observable } from 'mobx';\nimport { mobxGet, mobxRemove, mobxSet } from './MobxUtils';\nexport function get(obj, prop) {\n if (obj === null) {\n return null;\n }\n if (obj !== undefined) {\n const index = prop.indexOf('.');\n if (index !== -1) {\n const key = prop.slice(0, index);\n const restKey = prop.slice(index + 1);\n const value = mobxGet(obj, key);\n if (value === null) {\n return null;\n }\n if (isArrayLike(value)) {\n return value.map(item => get(item, restKey)).filter(item => !!item);\n }\n if (isObject(value)) {\n return get(value, restKey);\n }\n }\n else {\n return mobxGet(obj, prop);\n }\n }\n}\nexport function set(data, prop, value, fields = observable.map()) {\n const index = prop.indexOf('.');\n if (index !== -1) {\n const key = prop.slice(0, index);\n if (!data[key] && value !== undefined) {\n const field = fields.get(key);\n if (field && field.get('multiple')) {\n mobxSet(data, key, []);\n }\n else {\n mobxSet(data, key, {});\n }\n }\n const obj = mobxGet(data, key);\n if (isArrayLike(obj)) {\n if (isArrayLike(value)) {\n value.forEach((item, i) => {\n if (obj.length === i) {\n obj.push({});\n }\n else if (!obj[i]) {\n obj[i] = {};\n }\n set(obj[i], prop.slice(index + 1), item);\n });\n }\n }\n else if (isObject(obj)) {\n set(obj, prop.slice(index + 1), value);\n }\n }\n else {\n mobxSet(data, prop, value);\n }\n}\nexport function remove(obj, prop) {\n const index = prop.indexOf('.');\n if (index !== -1) {\n const value = mobxGet(obj, prop.slice(0, index));\n if (value) {\n const restKey = prop.slice(index + 1);\n if (isArrayLike(value)) {\n value.forEach(item => remove(item, restKey));\n }\n else if (isObject(value)) {\n remove(value, restKey);\n }\n }\n }\n else {\n mobxRemove(obj, prop);\n }\n}\n","import { __decorate } from \"tslib\";\nimport { action, toJS } from 'mobx';\nimport Cache, { refreshCacheOptions } from './Cache';\nconst KEY = Symbol('KEY');\nexport default class PromiseMerger {\n constructor(callback, config, timeout = 200) {\n this.timeout = timeout;\n this.promiseMap = new Map();\n this.cache = new Cache(toJS(config));\n this.callback = callback;\n this.reaction = refreshCacheOptions(this.cache);\n }\n dispose() {\n this.reaction();\n }\n add(code, getBatchKey, args) {\n const { cache, promiseMap } = this;\n const item = cache.get(code);\n if (item) {\n return Promise.resolve(item);\n }\n const batchKey = getBatchKey ? getBatchKey(KEY) : KEY;\n return new Promise((resolve, reject) => {\n const promiseList = promiseMap.get(batchKey) || new Map();\n promiseMap.set(batchKey, promiseList);\n let promise = promiseList.get(code);\n const resolveCallback = () => {\n resolve(cache.get(code));\n };\n if (promise) {\n promise.resolves.push(resolveCallback);\n promise.rejects.push(reject);\n }\n else {\n if (this.waitID) {\n clearTimeout(this.waitID);\n }\n promise = {\n resolves: [resolveCallback],\n rejects: [reject],\n };\n promiseList.set(code, promise);\n this.waitID = setTimeout(() => {\n const codeList = [...promiseList.keys()];\n if (process.env.LOGGER_LEVEL === 'info') {\n // eslint-disable-next-line no-console\n console.info(`batch request: ${codeList}`);\n }\n this.callback(codeList, args)\n .then(res => {\n codeList.forEach((key) => {\n const value = promiseList.get(key);\n const data = res[key];\n this.cache.set(key, data);\n promiseList.delete(key);\n const { resolves = [] } = value || {};\n resolves.forEach(r => r(data));\n });\n })\n .catch(error => {\n codeList.forEach(key => {\n const value = promiseList.get(key);\n promiseList.delete(key);\n const { rejects = [] } = value || {};\n rejects.forEach(r => r(error));\n });\n });\n }, this.timeout);\n }\n });\n }\n}\n__decorate([\n action\n], PromiseMerger.prototype, \"add\", null);\n","import { __decorate } from \"tslib\";\nimport { action, observable, runInAction } from 'mobx';\nexport default class PromiseQueue {\n constructor() {\n this.queueing = false;\n runInAction(() => {\n this.queue = [];\n });\n }\n get length() {\n return this.queue.length;\n }\n clear(promise) {\n if (!this.queueing) {\n const { queue } = this;\n const index = queue.indexOf(promise);\n if (index !== -1) {\n queue.splice(index, 1);\n }\n }\n }\n add(promise) {\n const { queue } = this;\n queue.push(promise);\n return promise\n .then(value => {\n this.clear(promise);\n return value;\n })\n .catch(error => {\n this.clear(promise);\n throw error;\n });\n }\n async ready() {\n this.queueing = true;\n const { queue } = this;\n if (queue.length) {\n await queue.pop();\n return this.ready();\n }\n this.queueing = false;\n return Promise.resolve();\n }\n}\n__decorate([\n observable\n], PromiseQueue.prototype, \"queue\", void 0);\n__decorate([\n action\n], PromiseQueue.prototype, \"clear\", null);\n__decorate([\n action\n], PromiseQueue.prototype, \"add\", null);\n__decorate([\n action\n], PromiseQueue.prototype, \"ready\", null);\n","import TaskRunner from 'choerodon-ui/lib/_util/TaskRunner';\nexport default TaskRunner;\n","class Node {\n constructor(value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list);\n }\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n }\n else {\n this.prev = null;\n }\n if (next) {\n next.prev = this;\n this.next = next;\n }\n else {\n this.next = null;\n }\n }\n}\nfunction insert(self, node, value) {\n const inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);\n if (inserted.next === null) {\n self.tail = inserted;\n }\n if (inserted.prev === null) {\n self.head = inserted;\n }\n self.length++;\n return inserted;\n}\nfunction push(self, item) {\n self.tail = new Node(item, self.tail, null, self);\n if (!self.head) {\n self.head = self.tail;\n }\n self.length++;\n}\nfunction unshift(self, item) {\n self.head = new Node(item, null, self.head, self);\n if (!self.tail) {\n self.tail = self.head;\n }\n self.length++;\n}\nexport default class Yallist {\n constructor(...args) {\n if (!(this instanceof Yallist)) {\n return new Yallist(...args);\n }\n this.tail = null;\n this.head = null;\n this.length = 0;\n const list = args[0];\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n this.push(item);\n });\n }\n else if (args.length > 0) {\n this.push(...args);\n }\n }\n removeNode(node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list');\n }\n const { next, prev } = node;\n if (next) {\n next.prev = prev;\n }\n if (prev) {\n prev.next = next;\n }\n if (node === this.head) {\n this.head = next;\n }\n if (node === this.tail) {\n this.tail = prev;\n }\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n }\n unshiftNode(node) {\n if (node === this.head) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n const { head } = this;\n node.list = this;\n node.next = head;\n if (head) {\n head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.length++;\n }\n pushNode(node) {\n if (node === this.tail) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n const { tail } = this;\n node.list = this;\n node.prev = tail;\n if (tail) {\n tail.next = node;\n }\n this.tail = node;\n if (!this.head) {\n this.head = node;\n }\n this.length++;\n }\n push(...args) {\n args.forEach(item => push(this, item));\n return this.length;\n }\n unshift(...args) {\n args.forEach(item => unshift(this, item));\n return this.length;\n }\n pop() {\n if (!this.tail) {\n return undefined;\n }\n const { value } = this.tail;\n this.tail = this.tail.prev;\n if (this.tail) {\n this.tail.next = null;\n }\n else {\n this.head = null;\n }\n this.length--;\n return value;\n }\n shift() {\n if (!this.head) {\n return undefined;\n }\n const { value } = this.head;\n this.head = this.head.next;\n if (this.head) {\n this.head.prev = null;\n }\n else {\n this.tail = null;\n }\n this.length--;\n return value;\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for (let walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n }\n forEachReverse(fn, thisp) {\n thisp = thisp || this;\n for (let walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n }\n get(n) {\n let i = 0;\n let walker = this.head;\n for (; walker !== null && i < n; i++) {\n walker = walker.next;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n }\n getReverse(n) {\n let i = 0;\n let walker = this.tail;\n for (; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n }\n map(fn, thisp) {\n thisp = thisp || this;\n const res = new Yallist();\n for (let walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n }\n mapReverse(fn, thisp) {\n thisp = thisp || this;\n const res = new Yallist();\n for (let walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n }\n reduce(...args) {\n const fn = args[0];\n let acc;\n let walker = this.head;\n if (args.length > 1) {\n acc = args[1];\n }\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n }\n else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n for (let i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n }\n reduceReverse(...args) {\n const fn = args[0];\n let acc;\n let walker = this.tail;\n if (args.length > 1) {\n acc = args[1];\n }\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n }\n else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n for (let i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n }\n toArray() {\n const arr = new Array(this.length);\n for (let i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n }\n toArrayReverse() {\n const arr = new Array(this.length);\n for (let i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n }\n slice(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n const ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n let i = 0;\n let walker = this.head;\n for (; walker !== null && i < from; i++) {\n walker = walker.next;\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value);\n }\n return ret;\n }\n sliceReverse(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n const ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n let i = this.length;\n let walker = this.tail;\n for (; walker !== null && i > to; i--) {\n walker = walker.prev;\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value);\n }\n return ret;\n }\n splice(start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1;\n }\n if (start < 0) {\n start = this.length + start;\n }\n let walker = this.head;\n for (let i = 0; walker !== null && i < start; i++) {\n walker = walker.next;\n }\n const ret = [];\n for (let i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) {\n walker = this.tail;\n }\n if (walker !== this.head && walker !== this.tail && walker !== null) {\n walker = walker.prev;\n }\n nodes.forEach(item => {\n walker = insert(this, walker, item);\n });\n return ret;\n }\n reverse() {\n const { head, tail } = this;\n for (let walker = head; walker !== null; walker = walker.prev) {\n const { prev } = walker;\n walker.prev = walker.next;\n walker.next = prev;\n }\n this.head = tail;\n this.tail = head;\n return this;\n }\n}\nYallist.Node = Node;\nYallist.create = Yallist;\ntry {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value;\n }\n };\n // eslint-disable-next-line no-empty\n}\ncatch (er) { }\n","import createDefaultSetter from './createDefaultSetter';\nlet mapStore;\nfunction bind(fn, context) {\n if (fn.bind) {\n return fn.bind(context);\n }\n return function __autobind__(...args) {\n return fn.apply(context, args);\n };\n}\nfunction getBoundSuper(obj, fn) {\n if (typeof WeakMap === 'undefined') {\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`);\n }\n if (!mapStore) {\n mapStore = new WeakMap();\n }\n if (mapStore.has(obj) === false) {\n mapStore.set(obj, new WeakMap());\n }\n const superStore = mapStore.get(obj);\n if (superStore.has(fn) === false) {\n superStore.set(fn, bind(fn, obj));\n }\n return superStore.get(fn);\n}\n/**\n * 绑定方法的this指向当前对象实例.\n *\n * @private\n * @param {Function} target 方法对象\n * @param {string} key 方法名.\n * @param {Object} descriptor 方法描述对象.\n * @returns {Object} 方法描述对象.\n */\nexport default function autobind(target, key, descriptor) {\n const { constructor } = target;\n const { value: fn, configurable, enumerable } = descriptor;\n return {\n configurable,\n enumerable,\n get() {\n // Class.prototype.key lookup\n // Someone accesses the property directly on the prototype on which it is\n // actually defined on, i.e. Class.prototype.hasOwnProperty(key)\n if (this === target) {\n return fn;\n }\n // Class.prototype.key lookup\n // Someone accesses the property directly on a prototype but it was found\n // up the chain, not defined directly on it\n // i.e. Class.prototype.hasOwnProperty(key) == false && key in Class.prototype\n if (this.constructor !== constructor &&\n Object.getPrototypeOf(this).constructor === constructor) {\n return fn;\n }\n // Autobound method calling super.sameMethod() which is also autobound and so on.\n if (this.constructor !== constructor && key in this.constructor.prototype) {\n return getBoundSuper(this, fn);\n }\n const boundFn = bind(fn, this);\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n // NOT enumerable when it's a bound method\n enumerable: false,\n value: boundFn,\n });\n return boundFn;\n },\n set: createDefaultSetter(key),\n };\n}\n","export default function createDefaultSetter(key) {\n return function set(newValue) {\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n // IS enumerable when reassigned by the outside word\n enumerable: true,\n value: newValue,\n });\n return newValue;\n };\n}\n","import isString from 'lodash/isString';\nexport default (e, defaultMessage) => {\n if (isString(e)) {\n defaultMessage = e;\n }\n else if (e instanceof Error) {\n defaultMessage = e.message;\n }\n else if (e && e.message) {\n defaultMessage = e.message;\n }\n if (typeof console !== 'undefined') {\n console.error(e);\n }\n return defaultMessage;\n};\n","const selector = 'a[href], area[href], input:not([disabled]):not([type=\"hidden\"]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable], audio[controls], video[controls], summary, [tabindex^=\"0\"], [tabindex^=\"1\"], [tabindex^=\"2\"], [tabindex^=\"3\"], [tabindex^=\"4\"], [tabindex^=\"5\"], [tabindex^=\"6\"], [tabindex^=\"7\"], [tabindex^=\"8\"], [tabindex^=\"9\"]';\nexport default function focusable(node) {\n return ['matches', 'msMatchesSelector', 'webkitMatchesSelector', 'mozMatchesSelector']\n .some(method => method in node && node[method](selector));\n}\nexport function findFirstFocusableElement(node) {\n return node.querySelector(selector);\n}\nexport function findFocusableElements(node) {\n return Array.from(node.querySelectorAll(selector));\n}\nexport function findFocusableParent(node, root) {\n const { parentElement } = node;\n if (parentElement) {\n if (focusable(parentElement)) {\n return parentElement;\n }\n if (root && parentElement === root) {\n return null;\n }\n return findFocusableParent(parentElement, root);\n }\n return null;\n}\n","import { isValidElement } from 'react';\nimport { render, unmountComponentAtNode } from 'react-dom';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport toString from 'lodash/toString';\nexport default async function getReactNodeText(node) {\n if (node) {\n if (isString(node) || isNumber(node)) {\n return String(node);\n }\n if (typeof window !== 'undefined' && isValidElement(node)) {\n const textDiv = document.createElement('div');\n document.body.appendChild(textDiv);\n await new Promise(resolve => render(node, textDiv, resolve));\n const { textContent } = textDiv;\n unmountComponentAtNode(textDiv);\n if (textDiv.parentNode) {\n textDiv.parentNode.removeChild(textDiv);\n }\n return textContent || '';\n }\n return toString(node);\n }\n return '';\n}\n","import isNil from 'lodash/isNil';\nexport default function isEmpty(value, allowBlank = false) {\n return isNil(value) || (allowBlank ? false : value === '');\n}\n","import { isFragment as isReactFragment } from 'react-is';\nexport default function isFragment(value) {\n return value.type === 'fragment' || isReactFragment(value);\n}\n","export default function isIE() {\n if (window && !!window.ActiveXObject || 'ActiveXObject' in window) {\n return true;\n }\n return false;\n}\n","export default function isMobile() {\n const info = navigator.userAgent;\n const agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPod', 'iPad'];\n for (let i = 0; i < agents.length; i++) {\n if (info.indexOf(agents[i]) >= 0)\n return true;\n }\n return false;\n}\n","import { isValidElement } from 'react';\nimport { isArrayLike } from 'mobx';\nexport default function isReactChildren(element) {\n if (element) {\n if (isArrayLike(element)) {\n return element.some(isReactChildren);\n }\n return isValidElement(element);\n }\n return false;\n}\n","import isEqual from 'lodash/isEqual';\nimport isEmpty from './isEmpty';\nexport default function isSame(newValue, oldValue) {\n return (isEmpty(newValue) && isEmpty(oldValue)) || isEqual(newValue, oldValue);\n}\n","import isSame from './isSame';\nexport default function isSameLike(newValue, oldValue) {\n /* eslint-disable-next-line */\n return isSame(newValue, oldValue) || newValue == oldValue;\n}\n","import createDefaultSetter from './createDefaultSetter';\nimport EventManager from './EventManager';\nimport TaskRunner from './TaskRunner';\nfunction keep(fn, findEl, e) {\n if (e && e.target) {\n const { currentTarget } = e;\n e.persist();\n const delayer = new TaskRunner();\n const keeper = new TaskRunner();\n const event = new EventManager(currentTarget);\n const stopFn = () => {\n if (delayer.isRunning) {\n delayer.cancel();\n }\n if (keeper.isRunning) {\n keeper.cancel();\n fn.call(this, e);\n }\n event.clear();\n };\n const delayFn = () => {\n keeper.run(40, () => {\n if (findEl() !== currentTarget) {\n stopFn();\n }\n else {\n fn.call(this, e, true);\n }\n });\n };\n delayer.delay(500, delayFn);\n event.addEventListener('mouseleave', stopFn);\n event.addEventListener('mouseup', stopFn);\n }\n fn.call(this, e);\n}\nexport default function keepRunning(findEl) {\n return (target, key, descriptor) => {\n const { constructor } = target;\n const { value: fn } = descriptor;\n return {\n configurable: true,\n get() {\n if (this === target) {\n return fn;\n }\n if (this.constructor !== constructor && Object.getPrototypeOf(this).constructor === constructor) {\n return fn;\n }\n const boundFn = keep.bind(this, fn, findEl.bind(this));\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true,\n });\n return boundFn;\n },\n set: createDefaultSetter(key),\n };\n };\n}\n","export default function measureTextWidth(text, style) {\n if (typeof window !== 'undefined') {\n const span = document.createElement('span');\n span.style.cssText = 'position: absolute;top: -9999px;display: inline-block';\n span.innerHTML = text.replace(/\\s/g, '&nbsp;');\n if (style) {\n ['font', 'letterSpacing', 'wordSpacing'].forEach((property) => {\n if (property in style) {\n span.style[property] = style[property];\n }\n });\n }\n document.body.appendChild(span);\n const { width } = getComputedStyle(span);\n const contentWidth = width && width !== 'auto' ? parseFloat(width) : span.offsetWidth;\n document.body.removeChild(span);\n return contentWidth;\n }\n return 0;\n}\n","export default function normalizeLanguage(language) {\n return language && language.replace('_', '-').toLowerCase();\n}\n","let OBJECT_FIT_SUPPORT;\nexport function isObjectFitSupport() {\n if (OBJECT_FIT_SUPPORT !== undefined) {\n return OBJECT_FIT_SUPPORT;\n }\n if (typeof window !== 'undefined') {\n const { style } = document.documentElement;\n OBJECT_FIT_SUPPORT = 'objectFit' in style && 'objectPosition' in style;\n return OBJECT_FIT_SUPPORT;\n }\n return true;\n}\nfunction getComputedStyle(element) {\n const { ownerDocument } = element;\n if (ownerDocument) {\n const { defaultView } = ownerDocument;\n if (defaultView) {\n return defaultView.getComputedStyle(element, null);\n }\n }\n}\nfunction checkParentContainer($container) {\n const styles = getComputedStyle($container);\n if (styles) {\n const position = styles.getPropertyValue('position');\n const overflow = styles.getPropertyValue('overflow');\n const display = styles.getPropertyValue('display');\n if (!position || position === 'static') {\n $container.style.position = 'relative';\n }\n if (overflow !== 'hidden') {\n $container.style.overflow = 'hidden';\n }\n if (!display || display === 'inline') {\n $container.style.display = 'block';\n }\n if ($container.clientHeight === 0) {\n $container.style.height = '100%';\n }\n if ($container.className.indexOf('object-fit-polyfill') === -1) {\n $container.className += ' object-fit-polyfill';\n }\n }\n}\nfunction checkMediaProperties($media) {\n const styles = getComputedStyle($media);\n if (styles) {\n const constraints = {\n 'max-width': 'none',\n 'max-height': 'none',\n 'min-width': '0px',\n 'min-height': '0px',\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n 'margin-top': '0px',\n 'margin-right': '0px',\n 'margin-bottom': '0px',\n 'margin-left': '0px',\n };\n Object.keys(constraints).forEach(property => {\n const constraint = styles.getPropertyValue(property);\n const constraintValue = constraints[property];\n if (constraint !== constraintValue) {\n $media.style[property] = constraintValue;\n }\n });\n }\n}\nfunction setPosition(axis, $media, objectPosition) {\n let position;\n let other;\n let start;\n let end;\n let side;\n objectPosition = objectPosition.split(' ');\n if (objectPosition.length < 2) {\n objectPosition[1] = objectPosition[0];\n }\n /* istanbul ignore else */\n if (axis === 'x') {\n position = objectPosition[0];\n other = objectPosition[1];\n start = 'left';\n end = 'right';\n side = $media.clientWidth;\n }\n else if (axis === 'y') {\n position = objectPosition[1];\n other = objectPosition[0];\n start = 'top';\n end = 'bottom';\n side = $media.clientHeight;\n }\n else {\n return; // Neither x or y axis specified\n }\n if (position === start || other === start) {\n $media.style[start] = '0';\n return;\n }\n if (position === end || other === end) {\n $media.style[end] = '0';\n return;\n }\n if (position === 'center' || position === '50%') {\n $media.style[start] = '50%';\n $media.style[`margin-${start}`] = `${side / -2}px`;\n return;\n }\n if (position.indexOf('%') >= 0) {\n position = parseInt(position, 10);\n if (position < 50) {\n $media.style[start] = `${position}%`;\n $media.style[`margin-${start}`] = `${side * (position / -100)}px`;\n }\n else {\n position = 100 - position;\n $media.style[end] = `${position}%`;\n $media.style[`margin-${end}`] = `${side * (position / -100)}px`;\n }\n }\n else {\n $media.style[start] = position;\n }\n}\nexport default function objectFitPolyfill($media, fit, position) {\n // If necessary, make the parent container work with absolutely positioned elements\n const $container = $media.parentNode;\n if ($container) {\n checkParentContainer($container);\n // Check for any pre-set CSS which could mess up image calculations\n checkMediaProperties($media);\n // Reset any pre-set width/height CSS and handle fit positioning\n $media.style.position = 'absolute';\n $media.style.width = 'auto';\n $media.style.height = 'auto';\n // `scale-down` chooses either `none` or `contain`, whichever is smaller\n if (fit === 'scale-down') {\n if ($media.clientWidth < $container.clientWidth &&\n $media.clientHeight < $container.clientHeight) {\n fit = 'none';\n }\n else {\n fit = 'contain';\n }\n }\n // `none` (width/height auto) and `fill` (100%) and are straightforward\n if (fit === 'none') {\n setPosition('x', $media, position);\n setPosition('y', $media, position);\n return;\n }\n if (fit === 'fill') {\n $media.style.width = '100%';\n $media.style.height = '100%';\n setPosition('x', $media, position);\n setPosition('y', $media, position);\n return;\n }\n // `cover` and `contain` must figure out which side needs covering, and add CSS positioning & centering\n $media.style.height = '100%';\n if ((fit === 'cover' && $media.clientWidth > $container.clientWidth) ||\n (fit === 'contain' && $media.clientWidth < $container.clientWidth)) {\n $media.style.top = '0';\n $media.style.marginTop = '0';\n setPosition('x', $media, position);\n }\n else {\n $media.style.width = '100%';\n $media.style.height = 'auto';\n $media.style.left = '0';\n $media.style.marginLeft = '0';\n setPosition('y', $media, position);\n }\n }\n}\n","export default function transform(value, style) {\n if (style) {\n style.transform = value;\n style.webkitTransform = value;\n return;\n }\n return ['-webkit-', '-ms-', ''].map(prefix => `${prefix}transform:${value}`).join(';');\n}\n","export function treeReduce(nodes, fn, initialValue, childName = 'children', parentNode) {\n return nodes.reduce((previousValue, node, index) => {\n const newValue = fn(previousValue, node, index, parentNode);\n const children = node[childName];\n if (children && children.length) {\n return treeReduce(children, fn, newValue, childName, node);\n }\n return newValue;\n }, initialValue);\n}\nexport function treeForEach(nodes, fn, childName = 'children', parentNode) {\n nodes.forEach((node, index) => {\n fn(node, index, parentNode);\n const children = node[childName];\n if (children && children.length) {\n treeForEach(children, fn, childName, node);\n }\n });\n}\nexport function treeSome(nodes, fn, childName = 'children', parentNode) {\n return nodes.some((node, index) => {\n if (!fn(node, index, parentNode)) {\n const children = node[childName];\n if (children && children.length) {\n return treeSome(children, fn, childName, node);\n }\n }\n return true;\n });\n}\nexport function treeFind(nodes, fn, childName = 'children', parentNode) {\n let result;\n nodes.some((node, index) => {\n const found = fn(node, index, parentNode);\n if (found) {\n result = node;\n return true;\n }\n const children = node[childName];\n if (children && children.length) {\n const foundChild = treeFind(children, fn, childName, node);\n if (foundChild) {\n result = foundChild;\n return true;\n }\n }\n return false;\n });\n return result;\n}\n","import Animate from 'choerodon-ui/lib/animate';\nexport default Animate;\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/animate/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action as mobxAction, observable, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport isNil from 'lodash/isNil';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport Trigger from 'choerodon-ui/lib/trigger/Trigger';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport Button from '../button/Button';\nimport { $l } from '../locale-context';\nimport { ButtonColor, FuncType } from '../button/enum';\nimport AttachmentList from './AttachmentList';\nimport { FormField } from '../field/FormField';\nimport axios from '../axios';\nimport autobind from '../_util/autobind';\nimport Modal from '../modal';\nimport AttachmentFile from '../data-set/AttachmentFile';\nimport { appendFormData, formatFileSize, sortAttachments } from './utils';\nimport ObserverSelect from '../select/Select';\nimport BUILT_IN_PLACEMENTS from '../trigger-field/placements';\nimport attachmentStore from '../stores/AttachmentStore';\nimport { DataSetEvents, FieldType } from '../data-set/enum';\nimport { open } from '../modal-container/ModalContainer';\nimport Icon from '../icon';\nimport Tooltip from '../tooltip';\nimport { ShowHelp } from '../field/enum';\nimport { FIELD_SUFFIX } from '../form/utils';\nimport { showValidationMessage } from '../field/utils';\nimport { ShowValidation } from '../form/enum';\nconst defaultSort = {\n type: 'time',\n order: 'asc',\n custom: true,\n};\nlet Attachment = class Attachment extends FormField {\n get help() {\n return this.getProp('help');\n }\n get bucketName() {\n return this.getProp('bucketName');\n }\n get bucketDirectory() {\n return this.getProp('bucketDirectory');\n }\n get storageCode() {\n return this.getProp('storageCode');\n }\n get attachments() {\n const { field } = this;\n if (field) {\n return field.attachments;\n }\n return this.observableProps.attachments;\n }\n set attachments(attachments) {\n runInAction(() => {\n const { field } = this;\n if (field) {\n field.attachments = attachments;\n }\n else {\n this.observableProps.attachments = attachments;\n }\n if (attachments) {\n const { onAttachmentsChange } = this.props;\n if (onAttachmentsChange) {\n onAttachmentsChange(attachments);\n }\n }\n });\n }\n get count() {\n const { attachments, field } = this;\n if (attachments) {\n return attachments.length;\n }\n if (field) {\n const { attachmentCount } = field;\n if (attachmentCount !== undefined) {\n return attachmentCount;\n }\n }\n const { count } = this.observableProps;\n return count;\n }\n get axios() {\n return getConfig('axios') || axios;\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('Attachment', label ? 'value_missing' : 'value_missing_no_label', { label }),\n };\n }\n processDataSetEventListener(on) {\n const { dataSet } = this;\n if (dataSet) {\n dataSet[on ? 'addEventListener' : 'removeEventListener'](DataSetEvents.load, this.handleDataSetLoad);\n }\n }\n componentDidMount() {\n super.componentDidMount();\n this.fetchCount();\n this.processDataSetEventListener(true);\n }\n componentDidUpdate(prevProps) {\n const { value, viewMode } = this.props;\n if (prevProps.value !== value || prevProps.viewMode !== viewMode) {\n this.fetchCount();\n }\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n this.processDataSetEventListener(false);\n }\n getFieldType() {\n return FieldType.attachment;\n }\n getObservableProps(props, context) {\n const { count, attachments } = props;\n const { observableProps = { count, attachments } } = this;\n return {\n ...super.getObservableProps(props, context),\n count: count === undefined ? observableProps.count : count,\n attachments: attachments ? attachments.map(attachment => {\n if (attachment instanceof AttachmentFile) {\n return attachment;\n }\n return new AttachmentFile(attachment);\n }) : observableProps.attachments,\n };\n }\n getValidAttachments() {\n const { attachments } = this;\n if (attachments) {\n return attachments.filter(({ status }) => !status || ['success', 'done'].includes(status));\n }\n }\n getValidatorProps() {\n const attachments = this.getValidAttachments();\n const count = attachments ? attachments.length : this.count;\n return {\n ...super.getValidatorProps(),\n attachmentCount: count || 0,\n };\n }\n fetchCount() {\n const { field } = this;\n const { viewMode } = this.props;\n if (viewMode !== 'list' && isNil(this.count)) {\n const value = this.getValue();\n if (value) {\n if (field) {\n field.fetchAttachmentCount(value);\n }\n else {\n const { batchFetchCount } = getConfig('attachment');\n if (batchFetchCount && !this.attachments) {\n attachmentStore.fetchCountInBatch(value).then(mobxAction((count) => {\n this.observableProps.count = count || 0;\n }));\n }\n }\n }\n }\n }\n handleDataSetLoad() {\n this.fetchCount();\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'value',\n 'accept',\n 'action',\n 'data',\n 'headers',\n 'withCredentials',\n 'sortable',\n 'listType',\n 'viewMode',\n 'fileKey',\n 'fileSize',\n 'bucketName',\n 'bucketDirectory',\n 'storageCode',\n 'count',\n 'max',\n 'listLimit',\n 'showHistory',\n 'downloadAll',\n 'attachments',\n 'onAttachmentsChange',\n 'beforeUpload',\n 'onUploadProgress',\n 'onUploadSuccess',\n 'onUploadError',\n ]);\n }\n getUploadAxiosConfig(attachment, attachmentUUID) {\n const { originFileObj } = attachment;\n if (originFileObj) {\n const globalConfig = getConfig('attachment');\n const { action, data, headers, fileKey = globalConfig.defaultFileKey, withCredentials } = this.props;\n const newHeaders = {\n 'X-Requested-With': 'XMLHttpRequest',\n ...headers,\n };\n const formData = new FormData();\n formData.append(fileKey, originFileObj);\n if (data) {\n appendFormData(formData, data);\n }\n const onUploadProgress = (e) => {\n this.handleProgress(e.total > 0 ? (e.loaded / e.total) * 100 : 0, attachment);\n };\n if (action) {\n return {\n url: action,\n headers: {\n ...newHeaders,\n },\n data: formData,\n onUploadProgress,\n method: 'POST',\n withCredentials,\n };\n }\n const actionHook = globalConfig.action;\n if (actionHook) {\n const { bucketName, bucketDirectory, storageCode } = this;\n const newConfig = typeof actionHook === 'function' ? actionHook({\n attachment,\n bucketName,\n bucketDirectory,\n storageCode,\n attachmentUUID,\n }) : actionHook;\n const { data: customData, onUploadProgress: customUploadProgress } = newConfig;\n if (customData) {\n appendFormData(formData, customData);\n }\n return {\n withCredentials,\n method: 'POST',\n ...newConfig,\n headers: {\n ...newHeaders,\n ...newConfig.headers,\n },\n data: formData,\n onUploadProgress: (e) => {\n onUploadProgress(e);\n if (customUploadProgress) {\n customUploadProgress(e);\n }\n },\n };\n }\n throw new Error(`Please set Upload.action or configure.attachment.action .`);\n }\n }\n isAcceptFile(attachment, accept) {\n const acceptTypes = accept.map(type => (new RegExp(type.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*'))));\n const { name, type } = attachment;\n return acceptTypes.some(acceptType => acceptType.test(name) || acceptType.test(type));\n }\n getAttachmentUUID() {\n const { getAttachmentUUID } = getConfig('attachment');\n if (!getAttachmentUUID) {\n throw new Error('no getAttachmentUUID hook in global configure.');\n }\n return getAttachmentUUID();\n }\n async uploadAttachments(attachments) {\n const oldAttachmentUUID = this.getValue();\n const attachmentUUID = oldAttachmentUUID || (await this.getAttachmentUUID());\n if (attachmentUUID !== oldAttachmentUUID) {\n this.tempAttachmentUUID = attachmentUUID;\n }\n const max = this.getProp('max');\n if (max > 0 && (this.count || 0) + attachments.length > max) {\n Modal.error($l('Attachment', 'file_list_max_length', { count: max }));\n return;\n }\n const oldAttachments = this.attachments || [];\n if (this.multiple) {\n this.attachments = [...oldAttachments.slice(), ...attachments];\n }\n else {\n oldAttachments.forEach(attachment => this.doRemove(attachment));\n this.attachments = [...attachments];\n }\n if (attachmentUUID) {\n try {\n await Promise.all(attachments.map((attachment) => this.upload(attachment, attachmentUUID)));\n }\n finally {\n this.changeOrder();\n if (this.tempAttachmentUUID) {\n delete this.tempAttachmentUUID;\n this.setValue(attachmentUUID);\n }\n }\n }\n }\n async uploadAttachment(attachment, attachmentUUID) {\n await this.upload(attachment, attachmentUUID);\n this.changeOrder();\n }\n async upload(attachment, attachmentUUID) {\n try {\n const result = await this.beforeUpload(attachment, this.attachments);\n if (result === false) {\n this.removeAttachment(attachment);\n }\n else if (attachment.status !== 'error' && !attachment.invalid) {\n const config = this.getUploadAxiosConfig(attachment, attachmentUUID);\n if (config) {\n await this.handleSuccess(await this.axios(config), attachment);\n }\n }\n }\n catch (e) {\n this.handleError(e, attachment);\n throw e;\n }\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onClick = this.handleClick;\n return otherProps;\n }\n handleProgress(percent, attachment) {\n attachment.status = 'uploading';\n attachment.percent = percent;\n const { onUploadProgress } = this.props;\n if (onUploadProgress) {\n onUploadProgress(percent, attachment);\n }\n }\n handleSuccess(response, attachment) {\n attachment.percent = 100;\n return new Promise((resolve) => {\n setTimeout(mobxAction(() => {\n attachment.status = 'success';\n const { onUploadSuccess: handleUploadSuccess } = getConfig('attachment');\n if (handleUploadSuccess) {\n handleUploadSuccess(response, attachment);\n }\n const { onUploadSuccess } = this.props;\n if (onUploadSuccess) {\n onUploadSuccess(response, attachment);\n }\n this.checkValidity();\n resolve();\n }), 0);\n });\n }\n handleError(error, attachment) {\n const { onUploadError: handleUploadError } = getConfig('attachment');\n const { response } = error;\n const { onUploadError } = this.props;\n attachment.status = 'error';\n attachment.error = error;\n const { message } = error;\n if (handleUploadError) {\n handleUploadError(error, attachment);\n }\n attachment.errorMessage = attachment.errorMessage || message;\n if (onUploadError) {\n onUploadError(error, response, attachment);\n }\n }\n handleChange(e) {\n const { target } = e;\n if (target.value) {\n const files = [...target.files];\n target.value = '';\n this.autoCreate();\n this.uploadAttachments(files.map((file, index) => new AttachmentFile({\n uid: this.getUid(index),\n url: URL.createObjectURL(file),\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n originFileObj: file,\n creationDate: new Date(),\n })));\n }\n }\n doRemove(attachment) {\n const { onRemove } = getConfig('attachment');\n const attachmentUUID = this.getValue();\n if (onRemove && attachmentUUID) {\n if (attachment.status === 'error') {\n return this.removeAttachment(attachment);\n }\n const { bucketName, bucketDirectory, storageCode } = this;\n attachment.status = 'deleting';\n return onRemove({ attachment, attachmentUUID, bucketName, bucketDirectory, storageCode })\n .then(mobxAction((result) => {\n if (result !== false) {\n this.removeAttachment(attachment);\n }\n attachment.status = 'done';\n }))\n .catch(mobxAction(() => {\n attachment.status = 'done';\n }));\n }\n }\n handleHistory(attachment, attachmentUUID) {\n const { renderHistory } = getConfig('attachment');\n if (renderHistory) {\n const { bucketName, bucketDirectory, storageCode } = this;\n open({\n title: $l('Attachment', 'operation_records'),\n children: renderHistory({\n attachment,\n attachmentUUID,\n bucketName,\n bucketDirectory,\n storageCode,\n }),\n cancelButton: false,\n okText: $l('Modal', 'close'),\n drawer: true,\n });\n }\n }\n handleRemove(attachment) {\n return this.doRemove(attachment);\n }\n handleFetchAttachment(fetchProps) {\n const { field } = this;\n if (field) {\n field.fetchAttachments(fetchProps);\n }\n else {\n const { fetchList } = getConfig('attachment');\n if (fetchList) {\n fetchList(fetchProps).then((results) => {\n this.attachments = results.map(file => new AttachmentFile(file));\n });\n }\n }\n }\n handlePreview() {\n this.setPopup(false);\n }\n removeAttachment(attachment) {\n const { attachments } = this;\n if (attachments) {\n const index = attachments.indexOf(attachment);\n if (index !== -1) {\n attachments.splice(index, 1);\n this.checkValidity();\n const { onAttachmentsChange } = this.props;\n if (onAttachmentsChange) {\n onAttachmentsChange(attachments);\n }\n }\n }\n return undefined;\n }\n beforeUpload(attachment, attachments) {\n const { beforeUpload, fileSize = getConfig('attachment').defaultFileSize, accept } = this.props;\n if (accept && !this.isAcceptFile(attachment, accept)) {\n attachment.status = 'error';\n attachment.invalid = true;\n attachment.errorMessage = $l('Attachment', 'file_type_mismatch', { types: accept.join(',') });\n return;\n }\n if (fileSize && fileSize > 0 && attachment.size > fileSize) {\n attachment.status = 'error';\n attachment.invalid = true;\n attachment.errorMessage = $l('Attachment', 'file_max_size', { size: formatFileSize(fileSize) });\n return;\n }\n if (!beforeUpload) {\n return true;\n }\n return beforeUpload(attachment, attachments);\n }\n handleClick(e) {\n const { element } = this;\n if (element) {\n element.click();\n }\n const { onClick } = this.props;\n if (onClick) {\n onClick(e);\n }\n }\n getUid(index) {\n const { prefixCls } = this;\n return `${prefixCls}-${Date.now()}-${index}`;\n }\n renderHeaderLabel() {\n const { viewMode } = this.props;\n if (this.hasFloatLabel || viewMode === 'popup') {\n const label = this.getLabel();\n if (label) {\n return (React.createElement(\"span\", { className: `${this.prefixCls}-header-label` }, label));\n }\n }\n }\n isDisabled() {\n if (super.isDisabled()) {\n return true;\n }\n const max = this.getProp('max');\n if (max) {\n const { count = 0 } = this;\n return count >= max;\n }\n return false;\n }\n renderUploadBtn(isCardButton, label) {\n const { count = 0, multiple, prefixCls, props: { viewMode, }, } = this;\n const buttonProps = this.getOtherProps();\n const { children, ref, className, style, accept, name, fileKey, ...rest } = buttonProps;\n const max = this.getProp('max');\n const uploadProps = {\n multiple,\n accept: accept ? accept.join(',') : undefined,\n name: name || fileKey || getConfig('attachment').defaultFileKey,\n type: 'file',\n ref,\n };\n const width = isCardButton ? this.getPictureWidth() : undefined;\n return isCardButton ? (React.createElement(Button, Object.assign({ funcType: FuncType.link, key: \"upload-btn\", icon: \"add\" }, rest, { className: classNames(`${prefixCls}-card-button`, className), style: { ...style, width, height: width } }),\n React.createElement(\"div\", null, children || $l('Attachment', 'upload_picture')),\n max ? React.createElement(\"div\", null, `${count}/${max}`) : count || undefined,\n React.createElement(\"input\", Object.assign({ key: \"upload\" }, uploadProps, { hidden: true })))) : (React.createElement(Button, Object.assign({ funcType: viewMode === 'popup' ? FuncType.flat : FuncType.link, key: \"upload-btn\", icon: \"file_upload\", color: this.isValid ? ButtonColor.primary : ButtonColor.red }, rest, { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }),\n children || $l('Attachment', 'upload_attachment'),\n label && React.createElement(React.Fragment, null,\n \"(\",\n label,\n \")\"),\n \" \",\n multiple && (max ? `${count}/${max}` : count) || undefined,\n React.createElement(\"input\", Object.assign({ key: \"upload\" }, uploadProps, { hidden: true }))));\n }\n showTooltip(e) {\n if (this.showValidation === ShowValidation.tooltip) {\n const message = this.getTooltipValidationMessage();\n if (message) {\n showValidationMessage(e, message);\n return true;\n }\n }\n return false;\n }\n renderViewButton(label) {\n const { multiple, viewMode } = this.props;\n const { children, ...rest } = this.getOtherProps();\n return (React.createElement(Button, Object.assign({ funcType: viewMode === 'popup' ? FuncType.flat : FuncType.link, key: \"view-btn\", icon: \"attach_file\", color: ButtonColor.primary }, rest),\n children || $l('Attachment', 'view_attachment'),\n label && React.createElement(React.Fragment, null,\n \"(\",\n label,\n \")\"),\n \" \",\n multiple && this.count || undefined));\n }\n handleSort(sort) {\n this.sort = sort;\n }\n handleOrderChange(props) {\n const { attachments } = props;\n this.attachments = attachments;\n this.changeOrder();\n }\n changeOrder() {\n this.sort = {\n ...defaultSort,\n ...this.sort,\n custom: true,\n };\n const attachmentUUID = this.getValue();\n if (attachmentUUID) {\n const attachments = this.getValidAttachments();\n const { onOrderChange } = getConfig('attachment');\n if (onOrderChange && attachments) {\n const { bucketName, bucketDirectory, storageCode } = this;\n onOrderChange({\n bucketName,\n bucketDirectory,\n storageCode,\n attachments,\n attachmentUUID,\n });\n }\n }\n }\n getSortSelectPopupContainer() {\n return this.wrapper;\n }\n renderSorter() {\n const { sortable, viewMode } = this.props;\n if (sortable) {\n const { prefixCls, attachments } = this;\n if (attachments && attachments.length > 1) {\n const { type, order } = this.sort || defaultSort;\n return (React.createElement(React.Fragment, null,\n React.createElement(ObserverSelect, { value: type, onChange: (newType) => this.handleSort({ type: newType, order, custom: false }), clearButton: false, isFlat: true, popupPlacement: \"bottomRight\", getPopupContainer: viewMode === 'popup' ? this.getSortSelectPopupContainer : undefined, size: Size.small, border: false },\n React.createElement(ObserverSelect.Option, { value: \"time\" }, $l('Attachment', 'by_upload_time')),\n React.createElement(ObserverSelect.Option, { value: \"name\" }, $l('Attachment', 'by_name'))),\n React.createElement(Button, { funcType: FuncType.link, className: classNames(`${prefixCls}-order-icon`, order), onClick: () => this.handleSort({ type, order: order === 'asc' ? 'desc' : 'asc', custom: false }) })));\n }\n }\n }\n renderUploadList(uploadButton) {\n const { listType, sortable, listLimit, showHistory, } = this.props;\n const { attachments } = this;\n const attachmentUUID = this.tempAttachmentUUID || this.getValue();\n if (attachmentUUID || uploadButton) {\n const { bucketName, bucketDirectory, storageCode } = this;\n const width = this.getPictureWidth();\n const { readOnly } = this;\n return (React.createElement(AttachmentList, { prefixCls: `${this.prefixCls}-list`, pictureWidth: width, listType: listType, attachments: sortAttachments(attachments, this.sort || defaultSort), bucketName: bucketName, bucketDirectory: bucketDirectory, storageCode: storageCode, attachmentUUID: attachmentUUID, uploadButton: uploadButton, sortable: sortable, readOnly: readOnly, limit: readOnly ? listLimit : undefined, onHistory: showHistory ? this.handleHistory : undefined, onRemove: this.handleRemove, onUpload: this.uploadAttachment, onOrderChange: this.handleOrderChange, onFetchAttachments: this.handleFetchAttachment, onPreview: this.handlePreview }));\n }\n }\n renderHeader(uploadBtn) {\n const { prefixCls, props: { downloadAll, viewMode } } = this;\n const label = this.renderHeaderLabel();\n const buttons = [];\n if (uploadBtn) {\n buttons.push(uploadBtn);\n }\n if (this.readOnly) {\n if (this.count) {\n if (downloadAll) {\n const { getDownloadAllUrl } = getConfig('attachment');\n if (getDownloadAllUrl) {\n const { bucketName, bucketDirectory, storageCode } = this;\n const attachmentUUID = this.getValue();\n getDownloadAllUrl({ bucketName, bucketDirectory, storageCode, attachmentUUID });\n const downProps = {\n key: 'download',\n icon: 'get_app',\n funcType: FuncType.link,\n href: getDownloadAllUrl({ bucketName, bucketDirectory, storageCode, attachmentUUID }),\n target: '_blank',\n color: ButtonColor.primary,\n children: $l('Attachment', 'download_all'),\n ...downloadAll,\n };\n buttons.push(React.createElement(Button, Object.assign({}, downProps)));\n }\n }\n }\n else if (viewMode !== 'popup') {\n const viewProps = {\n key: 'view',\n funcType: FuncType.link,\n disabled: true,\n children: $l('Attachment', 'no_attachments'),\n };\n buttons.push(React.createElement(Button, Object.assign({}, viewProps)));\n }\n }\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n label,\n label && buttons.length ? React.createElement(\"span\", { key: \"divider\", className: `${prefixCls}-header-divider` }) : undefined,\n React.createElement(\"div\", { className: `${prefixCls}-header-buttons` }, buttons),\n this.renderSorter()));\n }\n renderWrapper() {\n const { prefixCls } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-popup-inner`, ref: this.wrapperReference }, this.renderWrapperList()));\n }\n getTooltipValidationMessage() {\n const validationMessage = this.renderValidationResult();\n if (!this.isValidationMessageHidden(validationMessage)) {\n return validationMessage;\n }\n }\n renderValidationResult(validationResult) {\n const message = super.renderValidationResult(validationResult);\n if (message) {\n return (React.createElement(\"div\", { className: `${this.prefixCls}-validation-message` }, message));\n }\n }\n renderEmpty() {\n const { viewMode } = this.props;\n if (viewMode === 'popup' && !this.count) {\n return (React.createElement(\"div\", { className: `${this.prefixCls}-empty` }, getConfig('renderEmpty')('Attachment')));\n }\n }\n renderWrapperList(uploadBtn) {\n const { prefixCls, props: { viewMode, listType } } = this;\n const isCard = listType === 'picture-card';\n return (React.createElement(\"div\", { className: `${prefixCls}-wrapper` },\n this.renderHeader(!isCard && uploadBtn),\n viewMode !== 'popup' && this.renderHelp(ShowHelp.newLine),\n this.showValidation === ShowValidation.newLine && this.renderValidationResult(),\n this.renderEmpty(),\n viewMode !== 'none' && this.renderUploadList(isCard && uploadBtn)));\n }\n getPictureWidth() {\n const { pictureWidth, listType } = this.props;\n return pictureWidth || (listType === 'picture-card' ? 100 : 48);\n }\n renderHelp(forceHelpMode) {\n const { showHelp } = this.props;\n const help = this.getProp('help');\n if (help === undefined || showHelp === ShowHelp.none)\n return;\n switch (forceHelpMode) {\n case ShowHelp.tooltip:\n return (React.createElement(Tooltip, { title: help, openClassName: `${getConfig('proPrefixCls')}-tooltip-popup-help`, placement: \"bottom\" },\n React.createElement(Icon, { type: \"help\", style: { fontSize: '14px', color: '#8c8c8c' } })));\n default:\n return (React.createElement(\"div\", { key: \"help\", className: `${getProPrefixCls(FIELD_SUFFIX)}-help` }, help));\n }\n }\n get showValidation() {\n const { viewMode, showValidation = viewMode === 'popup' ? ShowValidation.tooltip : ShowValidation.newLine } = this.props;\n const { context: { showValidation: ctxShowValidation = showValidation } } = this;\n return ctxShowValidation;\n }\n handlePopupHiddenChange(hidden) {\n this.setPopup(!hidden);\n }\n setPopup(popup) {\n this.popup = popup;\n }\n render() {\n const { viewMode, listType, _inTable, hidden } = this.props;\n const { readOnly, prefixCls } = this;\n if (viewMode === 'popup') {\n const label = !_inTable && this.hasFloatLabel && this.getLabel();\n return (React.createElement(\"div\", { className: `${prefixCls}-popup-wrapper` },\n React.createElement(Trigger, { prefixCls: this.prefixCls, popupContent: this.renderWrapper, action: [Action.hover, Action.focus], builtinPlacements: BUILT_IN_PLACEMENTS, popupPlacement: \"bottomLeft\", popupHidden: hidden || !this.popup, onPopupHiddenChange: this.handlePopupHiddenChange }, readOnly ? this.renderViewButton(label) : this.renderUploadBtn(false, label)),\n this.renderHelp(ShowHelp.tooltip),\n this.showValidation === ShowValidation.newLine && this.renderValidationResult()));\n }\n return this.renderWrapperList(readOnly ? undefined : this.renderUploadBtn(listType === 'picture-card'));\n }\n};\nAttachment.displayName = 'Attachment';\nAttachment.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'attachment',\n multiple: true,\n sortable: true,\n downloadAll: true,\n listType: 'text',\n viewMode: 'list',\n};\nAttachment.propTypes = {\n ...FormField.propTypes,\n sortable: PropTypes.bool,\n listType: PropTypes.oneOf(['text', 'picture', 'picture-card']),\n viewMode: PropTypes.oneOf(['none', 'list', 'popup']),\n};\n// eslint-disable-next-line camelcase\nAttachment.__IS_IN_CELL_EDITOR = true;\n__decorate([\n observable\n], Attachment.prototype, \"sort\", void 0);\n__decorate([\n observable\n], Attachment.prototype, \"popup\", void 0);\n__decorate([\n autobind\n], Attachment.prototype, \"handleDataSetLoad\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"uploadAttachments\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"uploadAttachment\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"handleProgress\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"handleSuccess\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"handleError\", null);\n__decorate([\n autobind,\n mobxAction\n], Attachment.prototype, \"handleChange\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"doRemove\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handleHistory\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handleRemove\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handleFetchAttachment\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handlePreview\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"removeAttachment\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"beforeUpload\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handleClick\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"handleSort\", null);\n__decorate([\n autobind,\n mobxAction\n], Attachment.prototype, \"handleOrderChange\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"changeOrder\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"getSortSelectPopupContainer\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"renderWrapper\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"getTooltipValidationMessage\", null);\n__decorate([\n autobind\n], Attachment.prototype, \"handlePopupHiddenChange\", null);\n__decorate([\n mobxAction\n], Attachment.prototype, \"setPopup\", null);\nAttachment = __decorate([\n observer\n], Attachment);\nexport default Attachment;\n","import React, { Fragment, useCallback, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';\nimport isNumber from 'lodash/isNumber';\nimport Item from './Item';\nimport Animate from '../animate';\nimport { arrayMove } from '../data-set/utils';\nimport { PictureProvider } from '../picture/PictureContext';\nconst AttachmentList = observer(function AttachmentList(props) {\n const { prefixCls, attachments, onUpload, onRemove, onOrderChange, listType, pictureWidth, bucketName, bucketDirectory, storageCode, attachmentUUID, uploadButton, sortable, readOnly, onFetchAttachments, limit, onHistory, onPreview, } = props;\n const isCard = listType === 'picture-card';\n const classString = classNames(prefixCls, isCard ? `${prefixCls}-card` : `${prefixCls}-no-card`);\n const handleDragEnd = useCallback((result) => {\n const { destination, source } = result;\n if (destination && attachments) {\n const newAttachments = attachments.slice();\n arrayMove(newAttachments, source.index, destination.index);\n onOrderChange({ attachments: newAttachments });\n }\n }, [attachments, onOrderChange]);\n useEffect(() => {\n if (!attachments && attachmentUUID) {\n onFetchAttachments({ bucketName, bucketDirectory, storageCode, attachmentUUID });\n }\n }, [onFetchAttachments, attachments, bucketName, bucketDirectory, storageCode, attachmentUUID]);\n if (attachments && attachmentUUID) {\n const { length } = attachments;\n const draggable = sortable && !readOnly && length > 1;\n let previewIndex = 0;\n const list = attachments.map((attachment, index) => {\n const { type, uid } = attachment;\n const restCount = index + 1 === limit ? length - limit : undefined;\n const hidden = isNumber(limit) && index >= limit;\n const itemDraggable = draggable && !restCount;\n return (React.createElement(Draggable, { draggableId: uid, index: index, key: uid, isDragDisabled: !itemDraggable }, (provided) => (React.createElement(Item, { key: uid, provided: provided, prefixCls: `${prefixCls}-item`, attachment: attachment, pictureWidth: pictureWidth, listType: listType, bucketName: bucketName, bucketDirectory: bucketDirectory, storageCode: storageCode, attachmentUUID: attachmentUUID, onRemove: onRemove, onUpload: onUpload, isCard: isCard, readOnly: readOnly, restCount: restCount, draggable: itemDraggable, index: type.startsWith('image') ? previewIndex++ : undefined, hidden: hidden, onHistory: onHistory, onPreview: onPreview }))));\n });\n return (React.createElement(PictureProvider, null,\n React.createElement(DragDropContext, { onDragEnd: handleDragEnd },\n React.createElement(Droppable, { droppableId: \"list\", key: \"list\", isDropDisabled: !draggable, direction: isCard ? 'horizontal' : 'vertical' }, (droppableProvided) => (React.createElement(\"div\", Object.assign({ ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { className: classString }),\n React.createElement(Animate, { component: Fragment, transitionName: \"fade\", exclusive: true }, list),\n droppableProvided.placeholder,\n uploadButton))))));\n }\n if (uploadButton) {\n return (React.createElement(\"div\", { className: classString }, uploadButton));\n }\n return null;\n});\nAttachmentList.displayName = 'AttachmentList';\nexport default AttachmentList;\n","import React, { isValidElement, useCallback, useEffect, useRef } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classnames from 'classnames';\nimport isString from 'lodash/isString';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport { ProgressStatus } from 'choerodon-ui/lib/progress/enum';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport Progress from '../progress';\nimport Icon from '../icon';\nimport Picture from '../picture/Picture';\nimport Button from '../button/Button';\nimport { FuncType } from '../button/enum';\nimport { hide, show } from '../tooltip/singleton';\nimport { formatFileSize } from './utils';\nimport Tooltip from '../tooltip/Tooltip';\nimport { $l } from '../locale-context';\nconst ATTACHMENT_TARGET = 'attachment-preview';\nconst Item = observer(function Item(props) {\n const { attachment, listType, prefixCls, onUpload, onRemove, pictureWidth: width, bucketName, onHistory, onPreview, bucketDirectory, storageCode, attachmentUUID, isCard, provided, readOnly, restCount, draggable, index, hidden, } = props;\n const { status, name, filename, ext, url, size } = attachment;\n const attachmentConfig = getConfig('attachment');\n const tooltipRef = useRef(false);\n const pictureRef = useRef(null);\n const { getPreviewUrl } = attachmentConfig;\n const src = getPreviewUrl ? getPreviewUrl({ attachment, bucketName, bucketDirectory, storageCode, attachmentUUID }) : url;\n const dragProps = { ...provided.dragHandleProps };\n const isPicture = attachment.type.startsWith('image');\n const preview = (status === 'success' || status === 'done');\n const handlePreview = useCallback(() => {\n const { current } = pictureRef;\n if (current) {\n current.preview();\n }\n }, [pictureRef]);\n const renderDragger = () => {\n if (draggable && !isCard) {\n const iconProps = {\n className: `${prefixCls}-drag-icon`,\n type: 'baseline-drag_indicator',\n };\n if (status !== 'deleting') {\n Object.assign(iconProps, dragProps);\n }\n return (React.createElement(Icon, Object.assign({}, iconProps)));\n }\n };\n const renderImagePreview = () => {\n if (listType === 'text') {\n const { renderIcon } = attachmentConfig;\n const defaultIcon = React.createElement(Icon, { type: \"insert_drive_file\" });\n const icon = renderIcon ? renderIcon(attachment, listType, defaultIcon) : defaultIcon;\n const isSrcIcon = isString(icon);\n return isPicture || isSrcIcon ? (React.createElement(Picture, { width: 14, height: 14, alt: name, previewUrl: src, src: isSrcIcon ? icon : undefined, objectFit: \"contain\", status: \"loaded\", index: index, className: `${prefixCls}-icon`, previewTarget: isSrcIcon && !isPicture ? ATTACHMENT_TARGET : undefined, preview: preview, onPreview: onPreview, ref: pictureRef }, isValidElement(icon) ? icon : undefined)) : preview ? (React.createElement(Button, { href: src, target: ATTACHMENT_TARGET, funcType: FuncType.link, className: `${prefixCls}-icon` }, icon)) : (React.createElement(\"div\", { className: `${prefixCls}-icon` }, icon));\n }\n if (isCard || listType === 'picture') {\n if ((preview || status === 'deleting') && isPicture) {\n return (React.createElement(Picture, { width: width, height: width, alt: name, src: src, lazy: true, objectFit: \"contain\", index: index, preview: preview }));\n }\n return React.createElement(Picture, { width: width, height: width, alt: name, status: status === 'error' ? 'error' : 'empty', index: index });\n }\n };\n const renderPlaceholder = () => {\n if (restCount && isCard) {\n return (React.createElement(\"div\", { className: `${prefixCls}-placeholder` },\n \"+\",\n restCount));\n }\n };\n const renderTitle = (isCardTitle) => {\n const fileName = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: `${prefixCls}-name` }, filename),\n ext && React.createElement(\"span\", { className: `${prefixCls}-ext` },\n \".\",\n ext)));\n const nameNode = preview && src && listType === 'text' ? (React.createElement(\"a\", Object.assign({}, isPicture ? { onClick: handlePreview } : { href: src, target: ATTACHMENT_TARGET }, { className: `${prefixCls}-link` }), fileName)) : fileName;\n return (React.createElement(\"span\", { className: `${prefixCls}-title`, style: isCardTitle ? { width } : undefined },\n nameNode,\n !isCardTitle && React.createElement(\"span\", { className: `${prefixCls}-size` },\n \" (\",\n formatFileSize(size),\n \")\")));\n };\n const renderProgress = () => {\n if (status === 'uploading') {\n return (React.createElement(Progress, { value: attachment.percent || 0, size: Size.small, showInfo: false, strokeWidth: 2, className: `${prefixCls}-progress`, status: ProgressStatus.normal }));\n }\n };\n const renderButtons = () => {\n const buttons = [];\n if (!readOnly && status === 'error' && !attachment.invalid) {\n const upProps = {\n key: 'upload',\n className: classnames(`${prefixCls}-icon`),\n icon: 'replay',\n onClick: () => onUpload(attachment, attachmentUUID),\n funcType: FuncType.link,\n block: isCard,\n };\n buttons.push(React.createElement(Button, Object.assign({}, upProps)));\n }\n if (!status || status === 'success' || status === 'done') {\n if (onHistory) {\n const historyProps = {\n className: classnames(`${prefixCls}-icon`),\n icon: 'library_books',\n onClick: () => onHistory(attachment, attachmentUUID),\n funcType: FuncType.link,\n block: isCard,\n };\n buttons.push(React.createElement(Tooltip, { key: \"history\", title: $l('Attachment', 'view_operation_records') },\n React.createElement(Button, Object.assign({}, historyProps))));\n }\n const { getDownloadUrl } = attachmentConfig;\n const downProps = {\n className: classnames(`${prefixCls}-icon`),\n icon: isCard ? 'arrow_downward' : 'get_app',\n funcType: FuncType.link,\n href: getDownloadUrl && getDownloadUrl({ attachment, bucketName, bucketDirectory, storageCode, attachmentUUID }) || url,\n target: ATTACHMENT_TARGET,\n block: isCard,\n };\n buttons.push(React.createElement(Tooltip, { key: \"download\", title: $l('Attachment', 'download') },\n React.createElement(Button, Object.assign({}, downProps))));\n }\n if (!readOnly && status !== 'uploading') {\n const rmProps = {\n className: classnames(`${prefixCls}-icon`),\n icon: isCard ? 'delete_forever-o' : 'close',\n onClick: () => onRemove(attachment),\n funcType: FuncType.link,\n block: isCard,\n };\n buttons.push(React.createElement(Tooltip, { key: \"remove\", title: status === 'deleting' ? undefined : $l('Attachment', 'delete') },\n React.createElement(Button, Object.assign({}, rmProps))));\n }\n if (buttons.length) {\n return (React.createElement(\"div\", { className: classnames(`${prefixCls}-buttons`, { [`${prefixCls}-buttons-visible`]: status === 'deleting' }) }, buttons));\n }\n };\n const renderErrorMessage = () => {\n if (status === 'error') {\n const { errorMessage } = attachment;\n if (errorMessage) {\n return (React.createElement(\"div\", { className: `${prefixCls}-error-content` },\n React.createElement(Icon, { type: \"warning\" }),\n React.createElement(\"span\", { className: `${prefixCls}-error-message` }, errorMessage)));\n }\n }\n };\n const errorMessageNode = renderErrorMessage();\n const handleMouseEnter = useCallback((e) => {\n if (errorMessageNode) {\n show(e.currentTarget, {\n title: errorMessageNode,\n theme: getTooltipTheme('validation'),\n });\n tooltipRef.current = true;\n }\n }, [errorMessageNode, tooltipRef]);\n const handleMouseLeave = useCallback(() => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n useEffect(() => () => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, []);\n const listProps = {\n ref: provided.innerRef,\n className: classnames(prefixCls, {\n [`${prefixCls}-error`]: status === 'error',\n [`${prefixCls}-success`]: status === 'success',\n }),\n ...provided.draggableProps,\n style: {\n ...provided.draggableProps.style,\n },\n };\n if (draggable && isCard) {\n Object.assign(listProps, dragProps);\n }\n return (React.createElement(\"div\", Object.assign({}, listProps, { hidden: hidden }),\n React.createElement(\"div\", { className: `${prefixCls}-container`, onMouseEnter: isCard ? handleMouseEnter : undefined, onMouseLeave: isCard ? handleMouseLeave : undefined },\n React.createElement(\"div\", { className: `${prefixCls}-content` },\n renderDragger(),\n renderImagePreview(),\n renderPlaceholder(),\n !restCount && !isCard && renderTitle(),\n !restCount && renderButtons()),\n errorMessageNode,\n renderProgress()),\n !restCount && isCard && renderTitle(true)));\n});\nItem.displayName = 'Item';\nexport default Item;\n","import Attachment from './Attachment';\nexport default Attachment;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../picture/style';\nimport '../../field/style';\nimport '../../button/style';\nimport '../../select/style';\n","export function appendFormData(formData, data) {\n Object.keys(data).forEach(key => formData.append(key, data[key]));\n}\nconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\nexport function formatFileSize(size, unitIndex = 0) {\n if (size < 1024) {\n return `${size}${units[unitIndex]}`;\n }\n return formatFileSize(Math.round(size / 1024), unitIndex + 1);\n}\nexport function sortAttachments(attachments, sort) {\n if (attachments) {\n if (!sort.custom) {\n const { type, order } = sort;\n return attachments.sort((a, b) => {\n if (type === 'name') {\n if (order === 'desc') {\n return b.name.localeCompare(a.name);\n }\n return a.name.localeCompare(b.name);\n }\n if (order === 'desc') {\n return b.creationDate.getTime() - a.creationDate.getTime();\n }\n return a.creationDate.getTime() - b.creationDate.getTime();\n });\n }\n return attachments;\n }\n}\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport Menu, { Item } from 'choerodon-ui/lib/rc-components/menu';\nimport { action } from 'mobx';\nimport autobind from '../_util/autobind';\nimport { getItemKey, MORE_KEY, Select } from '../select/Select';\nimport DataSet from '../data-set';\nimport { FieldType } from '../data-set/enum';\nimport Icon from '../icon';\nimport { preventDefault } from '../_util/EventManager';\nconst defaultMatcher = (value, inputText) => value.indexOf(inputText) !== -1;\nlet AutoComplete = class AutoComplete extends Select {\n constructor() {\n super(...arguments);\n this.isChoose = false;\n this.inputText = '';\n }\n getTriggerIconFont() {\n return '';\n }\n getNotFoundContent() {\n return null;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'searchable',\n 'matcher',\n ]);\n }\n renderLengthInfo(maxLength, inputLength) {\n const { prefixCls } = this;\n return maxLength && maxLength > 0 ? (React.createElement(\"div\", { key: \"length-info\", className: `${prefixCls}-length-info` }, `${inputLength}/${maxLength}`)) : null;\n }\n handleChange(e) {\n this.isChoose = false;\n super.handleChange(e);\n }\n choose(record) {\n this.isChoose = true;\n super.choose(record);\n }\n handleFocus(e) {\n this.inputText = e.target?.value;\n super.handleFocus(e);\n }\n handleBlur(e) {\n if (!e.isDefaultPrevented()) {\n if (!this.isChoose) {\n const inputText = this.text || this.inputText;\n this.inputText = inputText;\n const temDs = new DataSet({\n fields: [\n { name: this.textField, type: FieldType.string },\n { name: this.valueField, type: FieldType.string },\n ],\n data: [{\n [this.textField]: inputText,\n [this.valueField]: inputText,\n }],\n });\n this.choose(temDs.current);\n }\n super.handleBlur(e);\n }\n }\n getMenu(menuProps = {}) {\n const { options } = this;\n if (!options) {\n return null;\n }\n const { disabled: menuDisabled, textField, valueField, props: { dropdownMenuStyle, optionRenderer, onOption, matcher = defaultMatcher }, } = this;\n const optGroups = [];\n const selectedKeys = [];\n const inputText = this.text || this.inputText;\n options.forEach(record => {\n const value = record.get(valueField);\n // 判断是否符合自动补全的条件\n if (inputText && !matcher(value, inputText)) {\n return;\n }\n const text = record.get(textField);\n const optionProps = onOption({ dataSet: options, record });\n const optionDisabled = menuDisabled || (optionProps && optionProps.disabled);\n const key = getItemKey(record, text, value);\n const itemContent = optionRenderer\n ? optionRenderer({ dataSet: this.options, record, text, value })\n : text;\n const option = (React.createElement(Item, Object.assign({}, optionProps, { key: key, value: record, disabled: optionDisabled }), itemContent));\n optGroups.push(option);\n });\n if (!optGroups.length) {\n return null;\n }\n const menuPrefix = this.getMenuPrefixCls();\n return (React.createElement(Menu, Object.assign({ ref: this.saveMenu, disabled: menuDisabled, defaultActiveFirst: true, multiple: this.menuMultiple, selectedKeys: selectedKeys, prefixCls: menuPrefix, onClick: this.handleMenuClick, onMouseDown: preventDefault, style: dropdownMenuStyle, focusable: false }, menuProps),\n optGroups,\n options.paging && options.currentPage < options.totalPage && (React.createElement(Item, { key: MORE_KEY, checkable: false, className: `${menuPrefix}-item-more` },\n React.createElement(Icon, { type: \"more_horiz\" })))));\n }\n};\nAutoComplete.displayName = 'AutoComplete';\nAutoComplete.propTypes = {\n ...Select.propTypes,\n};\nAutoComplete.defaultProps = {\n ...Select.defaultProps,\n searchable: true,\n suffixCls: 'auto-complete',\n matcher: defaultMatcher,\n};\n__decorate([\n autobind,\n action\n], AutoComplete.prototype, \"handleChange\", null);\n__decorate([\n autobind\n], AutoComplete.prototype, \"handleFocus\", null);\n__decorate([\n autobind\n], AutoComplete.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], AutoComplete.prototype, \"getMenu\", null);\nAutoComplete = __decorate([\n observer\n], AutoComplete);\nexport default AutoComplete;\n","import ObserverAutoComplete from './AutoComplete';\nexport default ObserverAutoComplete;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\n// style dependencies\nimport '../../trigger-field/style';\nimport '../../spin/style';\nimport 'choerodon-ui/lib/menu/style';\nimport 'choerodon-ui/lib/checkbox/style';\nimport './index.less';\n","import { toJS } from 'mobx';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Cache, { refreshCacheOptions } from '../_util/Cache';\nimport { buildURLWithAxiosConfig, isCacheLike } from './utils';\nfunction getDefaultCache() {\n const lookupCache = toJS(getConfig('lookupCache'));\n const cache = new Cache(lookupCache);\n refreshCacheOptions(cache);\n return cache;\n}\nexport default function cacheAdapterEnhancer(adapter, options = {}) {\n const { enabledByDefault = true, cacheFlag = 'cache', defaultCache = getDefaultCache(), } = options;\n return config => {\n const useCache = config[cacheFlag] !== undefined && config[cacheFlag] !== null\n ? config[cacheFlag]\n : enabledByDefault;\n if (useCache) {\n const cache = isCacheLike(useCache) ? useCache : defaultCache;\n const index = buildURLWithAxiosConfig(config);\n let responsePromise = cache.get(index);\n if (!responsePromise) {\n responsePromise = (async () => {\n try {\n return await adapter(config);\n }\n catch (reason) {\n cache.del(index);\n throw reason;\n }\n })();\n if (process.env.LOGGER_LEVEL === 'info') {\n // eslint-disable-next-line no-console\n console.info(`request: ${index}`);\n }\n cache.set(index, responsePromise);\n return responsePromise;\n }\n if (process.env.LOGGER_LEVEL === 'info') {\n // eslint-disable-next-line no-console\n console.info(`request cached by cache adapter: ${index}`);\n }\n return responsePromise;\n }\n return adapter(config);\n };\n}\n","import axios from 'axios';\nconst jsonMimeType = 'application/json';\nconst instance = axios.create({\n timeout: 30000,\n headers: {\n 'Content-Type': jsonMimeType,\n Accept: jsonMimeType,\n 'X-Requested-With': 'XMLHttpRequest',\n },\n});\n// http response 拦截器\ninstance.interceptors.response.use((response) => {\n const { status, data } = response;\n if (status === 204) {\n return response;\n }\n if (data.success === false) {\n throw data;\n }\n else {\n return data;\n }\n});\nexport default instance;\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n","import Cache from '../_util/Cache';\nimport { buildURLWithAxiosConfig } from './utils';\nexport default function throttleAdapterEnhancer(adapter, options = {}) {\n const { threshold = 1000, cache = new Cache({ max: 10 }) } = options;\n const recordCacheWithRequest = (index, config) => {\n const responsePromise = (async () => {\n try {\n const response = await adapter(config);\n cache.set(index, {\n timestamp: Date.now(),\n value: Promise.resolve(response),\n });\n return response;\n }\n catch (reason) {\n cache.del(index);\n throw reason;\n }\n })();\n cache.set(index, {\n timestamp: Date.now(),\n value: responsePromise,\n });\n return responsePromise;\n };\n return config => {\n const index = buildURLWithAxiosConfig(config);\n const now = Date.now();\n const cachedRecord = cache.get(index) || { timestamp: now };\n if (now - cachedRecord.timestamp <= threshold) {\n const responsePromise = cachedRecord.value;\n if (responsePromise) {\n if (process.env.LOGGER_LEVEL === 'info') {\n // eslint-disable-next-line no-console\n console.info(`request cached by throttle adapter: ${index}`);\n }\n return responsePromise;\n }\n }\n return recordCacheWithRequest(index, config);\n };\n}\n","import buildURL from 'axios/lib/helpers/buildURL';\nexport function buildSortedURL(...args) {\n const builtURL = buildURL(...args);\n const [urlPath, queryString] = builtURL.split('?');\n if (queryString) {\n const paramsPair = queryString.split('&');\n return `${urlPath}?${paramsPair.sort().join('&')}`;\n }\n return builtURL;\n}\nexport function buildURLWithAxiosConfig(config) {\n const { data, url, params, paramsSerializer } = config;\n const builtURL = buildSortedURL(url, params, paramsSerializer);\n if (data) {\n return `${builtURL}|${JSON.stringify(data)}`;\n }\n return builtURL;\n}\nexport function isCacheLike(cache) {\n return !!(cache.set &&\n cache.get &&\n cache.del &&\n typeof cache.get === 'function' &&\n typeof cache.set === 'function' &&\n typeof cache.del === 'function');\n}\n","import { __decorate } from \"tslib\";\nimport React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport noop from 'lodash/noop';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\nimport { computed, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport isPromise from 'is-promise';\nimport { ProgressType } from 'choerodon-ui/lib/progress/enum';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport Icon from '../icon';\nimport FormContext from '../form/FormContext';\nimport Progress from '../progress';\nimport Ripple from '../ripple';\nimport { ButtonColor, ButtonTooltip, ButtonType, FuncType } from './enum';\nimport { DataSetStatus } from '../data-set/enum';\nimport { Size, WaitType } from '../core/enum';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport autobind from '../_util/autobind';\nimport { hide, show } from '../tooltip/singleton';\nimport isOverflow from '../overflow-tip/util';\nlet Button = class Button extends DataSetComponent {\n constructor(props, context) {\n super(props, context);\n this.handleClickWait = this.getHandleClick(props);\n }\n get loading() {\n const { type, dataSet, loading } = this.observableProps;\n return (loading ||\n (type === ButtonType.submit && !!dataSet && dataSet.status === DataSetStatus.submitting));\n }\n set loading(loading) {\n runInAction(() => {\n this.observableProps.loading = loading;\n });\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n dataSet: 'dataSet' in props ? props.dataSet : context.dataSet,\n loading: 'loading' in props ? props.loading : this.observableProps ? this.loading : false,\n type: props.type,\n disabled: context.disabled || props.disabled,\n };\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n const { wait, waitType } = this.props;\n if (wait !== nextProps.wait || waitType !== nextProps.waitType) {\n this.handleClickWait = this.getHandleClick(nextProps);\n }\n }\n componentWillUnmount() {\n this.handleClickWait.cancel();\n if (this.isTooltipShown) {\n hide();\n delete this.isTooltipShown;\n }\n }\n getHandleClick(props) {\n const { wait, waitType } = props;\n if (wait && waitType) {\n const options = { leading: true, trailing: true };\n if (waitType === WaitType.throttle) {\n options.trailing = false;\n options.maxWait = wait;\n }\n else if (waitType === WaitType.debounce) {\n options.leading = false;\n }\n return debounce(this.handleClick, wait, options);\n }\n return debounce(this.handleClick, 0);\n }\n handleClickIfBubble(e) {\n const { wait, waitType } = this.props;\n if (wait && waitType) {\n e.stopPropagation();\n this.handleClickWait(e);\n }\n else {\n this.handleClick(e);\n }\n }\n async handleClick(e) {\n const { onClick } = this.props;\n if (onClick) {\n const afterClick = onClick(e);\n if (isPromise(afterClick)) {\n try {\n this.loading = true;\n await afterClick;\n }\n finally {\n this.loading = false;\n // Fix asynchronous out of focus\n this.focus();\n }\n }\n }\n }\n handleMouseEnter(e) {\n const { tooltip = getTooltip('button'), children } = this.props;\n const { element } = this;\n if (tooltip === ButtonTooltip.always || (tooltip === ButtonTooltip.overflow && isOverflow(element))) {\n show(element, {\n title: children,\n theme: getTooltipTheme('button'),\n });\n this.isTooltipShown = true;\n }\n const { onMouseEnter = noop } = this.props;\n onMouseEnter(e);\n }\n handleMouseLeave(e) {\n hide();\n const { onMouseLeave = noop } = this.props;\n onMouseLeave(e);\n }\n isDisabled() {\n return super.isDisabled() || this.loading;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'icon',\n 'funcType',\n 'color',\n 'loading',\n 'wait',\n 'waitType',\n 'tooltip',\n 'block',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n const { tooltip = getTooltip('button') } = this.props;\n if (!this.disabled) {\n otherProps.onClick = this.handleClickIfBubble;\n }\n if (tooltip && [ButtonTooltip.always, ButtonTooltip.overflow].includes(tooltip)) {\n otherProps.onMouseEnter = this.handleMouseEnter;\n otherProps.onMouseLeave = this.handleMouseLeave;\n }\n return otherProps;\n }\n getClassName(...props) {\n const { prefixCls, props: { color = getConfig('buttonColor'), funcType = getConfig('buttonFuncType'), children, icon, block, }, } = this;\n const childrenCount = Children.count(children);\n return super.getClassName({\n [`${prefixCls}-${funcType}`]: funcType,\n [`${prefixCls}-${color}`]: color,\n [`${prefixCls}-icon-only`]: icon\n ? childrenCount === 0 || children === false\n : childrenCount === 1 && children.type && children.type.__C7N_ICON,\n [`${prefixCls}-block`]: block,\n }, ...props);\n }\n render() {\n const { children, icon, href, funcType } = this.props;\n const buttonIcon = this.loading ? (React.createElement(Progress, { key: \"loading\", type: ProgressType.loading, size: Size.small })) : (icon && React.createElement(Icon, { type: icon }));\n const hasString = Children.toArray(children).some(child => isString(child));\n const Cmp = href ? 'a' : 'button';\n const props = this.getMergedProps();\n const { disabled } = this;\n const { onMouseEnter, onMouseLeave } = props;\n const tooltipWrapper = disabled && !href && (onMouseEnter || onMouseLeave);\n const buttonProps = tooltipWrapper ? omit(props, ['className', 'style']) : props;\n const rippleDisabled = disabled || funcType === FuncType.link;\n const button = (React.createElement(Ripple, { disabled: rippleDisabled },\n React.createElement(Cmp, Object.assign({}, (href ? omit(buttonProps, ['type']) : buttonProps)),\n buttonIcon,\n hasString ? React.createElement(\"span\", null, children) : children)));\n return tooltipWrapper ? (React.createElement(\"span\", { className: classNames(props.className, `${this.prefixCls}-disabled-wrapper`), style: props.style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, button)) : button;\n }\n};\nButton.displayName = 'Button';\n// eslint-disable-next-line camelcase\nButton.__PRO_BUTTON = true;\nButton.contextType = FormContext;\nButton.propTypes = {\n /**\n * 按钮展现模式\n * 可选值:'flat' | 'raised'\n * @default raised\n */\n funcType: PropTypes.oneOf([FuncType.flat, FuncType.raised, FuncType.link]),\n /**\n * 按钮颜色风格\n * 可选值:'default' | 'primary' | 'gray' | 'blue' | 'red' | 'green' | 'yellow' | 'purple' | 'dark'\n * @default 'default'\n */\n color: PropTypes.oneOf([\n ButtonColor.default,\n ButtonColor.primary,\n ButtonColor.gray,\n ButtonColor.blue,\n ButtonColor.red,\n ButtonColor.green,\n ButtonColor.yellow,\n ButtonColor.purple,\n ButtonColor.dark,\n ]),\n /**\n * 按钮类型\n * 可选值:'button' | 'submit' | 'reset'\n * @default 'button'\n */\n type: PropTypes.oneOf([ButtonType.button, ButtonType.submit, ButtonType.reset]),\n /**\n * 按钮是否是加载状态\n */\n loading: PropTypes.bool,\n /**\n * 点击跳转的地址,指定此属性 button 的行为和 a 链接一致\n */\n href: PropTypes.string,\n /**\n * 相当于 a 链接的 target 属性,href 存在时生效\n */\n target: PropTypes.string,\n /**\n * 点击等待时间\n */\n wait: PropTypes.number,\n /**\n * 点击间隔类型,可选值:throttle | debounce\n * @default throttle\n */\n waitType: PropTypes.oneOf([WaitType.throttle, WaitType.debounce]),\n /**\n * 用tooltip显示按钮内容\n * 可选值:`none` `always` `overflow`\n */\n tooltip: PropTypes.string,\n /**\n * 将按钮宽度调整为其父宽度的选项\n */\n block: PropTypes.bool,\n ...DataSetComponent.propTypes,\n};\nButton.defaultProps = {\n suffixCls: 'btn',\n type: ButtonType.button,\n waitType: WaitType.throttle,\n};\n__decorate([\n computed\n], Button.prototype, \"loading\", null);\n__decorate([\n autobind\n], Button.prototype, \"handleClickIfBubble\", null);\n__decorate([\n autobind\n], Button.prototype, \"handleClick\", null);\n__decorate([\n autobind\n], Button.prototype, \"handleMouseEnter\", null);\n__decorate([\n autobind\n], Button.prototype, \"handleMouseLeave\", null);\nButton = __decorate([\n observer\n], Button);\nexport default Button;\n","export { Tooltip as ButtonTooltip } from '../core/enum';\nexport var ButtonColor;\n(function (ButtonColor) {\n ButtonColor[\"default\"] = \"default\";\n ButtonColor[\"primary\"] = \"primary\";\n ButtonColor[\"gray\"] = \"gray\";\n ButtonColor[\"blue\"] = \"blue\";\n ButtonColor[\"red\"] = \"red\";\n ButtonColor[\"green\"] = \"green\";\n ButtonColor[\"yellow\"] = \"yellow\";\n ButtonColor[\"purple\"] = \"purple\";\n ButtonColor[\"dark\"] = \"dark\";\n})(ButtonColor || (ButtonColor = {}));\nexport var FuncType;\n(function (FuncType) {\n FuncType[\"flat\"] = \"flat\";\n FuncType[\"raised\"] = \"raised\";\n FuncType[\"link\"] = \"link\";\n})(FuncType || (FuncType = {}));\nexport var ButtonType;\n(function (ButtonType) {\n ButtonType[\"button\"] = \"button\";\n ButtonType[\"submit\"] = \"submit\";\n ButtonType[\"reset\"] = \"reset\";\n})(ButtonType || (ButtonType = {}));\n","import Button from './Button';\nexport default Button;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../progress/style';\nimport '../../ripple/style';\n","import { __decorate } from \"tslib\";\nimport React, { isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\nimport isEmpty from 'lodash/isEmpty';\nimport noop from 'lodash/noop';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { observer } from 'mobx-react';\nimport { action, computed, isArrayLike, observable, reaction, runInAction, toJS } from 'mobx';\nimport { Menus, SingleMenu } from 'choerodon-ui/lib/rc-components/cascader';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { MenuMode } from 'choerodon-ui/lib/cascader';\nimport TriggerField from '../trigger-field/TriggerField';\nimport autobind from '../_util/autobind';\nimport { DataSetStatus, FieldType } from '../data-set/enum';\nimport DataSet from '../data-set/DataSet';\nimport Record from '../data-set/Record';\nimport Spin from '../spin';\nimport { stopEvent } from '../_util/EventManager';\nimport normalizeOptions, { expandTreeRecords } from './utils';\nimport { $l } from '../locale-context';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport isEmptyUtil from '../_util/isEmpty';\nimport isSameLike from '../_util/isSameLike';\nimport { ExpandTrigger } from './enum';\nexport const MORE_KEY = '__more__';\nconst disabledField = 'disabled';\nfunction defaultOnOption({ record }) {\n if (record instanceof Record) {\n return {\n disabled: record.get(disabledField),\n };\n }\n}\nexport function getItemKey(record, text, value) {\n return `item-${value || record.id}-${(isValidElement(text) ? text.key : text) || record.id}`;\n}\nfunction getSimpleValue(value, valueField) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, valueField);\n }\n return value;\n}\n/**\n * 简单比较arry的值是否相同\n * 主要问题是观察变量修改了值类型所以使用此方法\n * @param arr\n * @param arrNext\n */\nfunction arraySameLike(arr, arrNext) {\n if (isArrayLike(arr) && isArrayLike(arrNext)) {\n return arr.toString() === arrNext.toString();\n }\n return false;\n}\nfunction defaultSearchMatcher({ record, text, textField }) {\n return record.get(textField) && record.get(textField).indexOf(text) !== -1;\n}\nexport class Cascader extends TriggerField {\n constructor(props, context) {\n super(props, context);\n this.doSearch = debounce(value => {\n if (isString(this.searchMatcher)) {\n this.searchRemote(value);\n }\n this.handleSearch(value);\n }, 500);\n this.setActiveValue({});\n this.setItemMenuWidth(0);\n this.setIsClickTab(false);\n }\n get isClickTab() {\n return this.clickTab;\n }\n get activeValue() {\n return this.activeValues;\n }\n get itemMenuWidth() {\n return this.menuItemWith;\n }\n findActiveRecord(value, options) {\n let result;\n const returnActiveValue = (arrayOption, index) => {\n if (arrayOption && arrayOption.length > 0) {\n arrayOption.forEach((item) => {\n if (isSameLike(value[index], this.getRecordOrObjValue(item, this.valueField))) {\n result = item;\n if (item.children) {\n returnActiveValue(item.children, ++index);\n }\n }\n });\n }\n };\n if (options instanceof DataSet) {\n returnActiveValue(options.treeData, 0);\n }\n if (isArrayLike(options)) {\n returnActiveValue(options, 0);\n }\n return result;\n }\n setActiveValue(activeValues) {\n this.activeValues = activeValues;\n }\n setIsClickTab(isClickTab) {\n this.clickTab = isClickTab;\n }\n setItemMenuWidth(width) {\n this.menuItemWith = width;\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('Cascader', label ? 'value_missing' : 'value_missing_no_label', { label }),\n };\n }\n get textField() {\n return this.getProp('textField') || 'meaning';\n }\n get valueField() {\n return this.getProp('valueField') || 'value';\n }\n get cascadeOptions() {\n const { record, field, options } = this;\n const { data } = options;\n if (field) {\n const cascadeMap = field.get('cascadeMap');\n if (cascadeMap) {\n if (record) {\n const cascades = Object.keys(cascadeMap);\n return data.filter(item => cascades.every(cascade => isSameLike(record.get(cascadeMap[cascade]), item.get(cascade))));\n }\n return [];\n }\n }\n return data;\n }\n get multiple() {\n return !!this.getProp('multiple');\n }\n get menuMultiple() {\n return this.multiple;\n }\n get parentField() {\n return this.getProp('parentField') || 'parentValue';\n }\n get idField() {\n return this.getProp('idField') || this.valueField;\n }\n get searchMatcher() {\n const { searchMatcher = defaultSearchMatcher } = this.observableProps;\n return searchMatcher;\n }\n get options() {\n const { field, textField, valueField, idField, parentField, multiple, observableProps: { options }, } = this;\n if (isArrayLike(options)) {\n return normalizeOptions({\n textField,\n valueField,\n idField,\n disabledField,\n multiple,\n data: toJS(options),\n parentField,\n });\n }\n return (options ||\n (field && field.options));\n }\n get filteredOptions() {\n const { text } = this;\n return this.searchData(this.cascadeOptions, text);\n }\n // 增加父级属性\n addOptionsParent(options, parent) {\n if (options.length > 0) {\n return options.map((ele) => {\n ele.parent = parent || undefined;\n if (ele.children) {\n this.addOptionsParent(ele.children, ele);\n }\n return ele;\n });\n }\n }\n get primitive() {\n const type = this.getProp('type');\n return this.observableProps.primitiveValue !== false && type !== FieldType.object;\n }\n checkValue() {\n this.checkValueReaction = reaction(() => this.cascadeOptions, () => this.processSelectedData());\n }\n checkCombo() {\n this.checkComboReaction = reaction(() => this.getValue(), value => this.generateComboOption(value));\n }\n clearCheckValue() {\n if (this.checkValueReaction) {\n this.checkValueReaction();\n this.checkValueReaction = undefined;\n }\n }\n clearCheckCombo() {\n if (this.checkComboReaction) {\n this.checkComboReaction();\n this.checkComboReaction = undefined;\n }\n }\n clearReaction() {\n this.clearCheckValue();\n this.clearCheckCombo();\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n this.clearReaction();\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n }\n componentDidUpdate() {\n this.forcePopupAlign();\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'multiple',\n 'value',\n 'searchable',\n 'searchMatcher',\n 'name',\n 'dropdownMatchSelectWidth',\n 'dropdownMenuStyle',\n 'primitiveValue',\n 'notFoundContent',\n 'onOption',\n 'expandTrigger',\n 'dropdownMatchSelectWidth',\n 'menuMode',\n 'singleMenuStyle',\n 'singleMenuItemStyle',\n 'singlePleaseRender',\n 'singleMenuItemRender',\n 'onChoose',\n 'onUnChoose',\n 'changeOnSelect',\n 'pagingOptionContent',\n 'loadData',\n 'async',\n ]);\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n children: props.children,\n options: props.options,\n searchable: props.searchable,\n searchMatcher: props.searchMatcher,\n primitiveValue: props.primitiveValue,\n };\n }\n getMenuPrefixCls() {\n return `${this.prefixCls}-dropdown-menu`;\n }\n getPagingOptionContent() {\n const { pagingOptionContent } = this.props;\n if (pagingOptionContent !== undefined) {\n return pagingOptionContent;\n }\n return getConfig('selectPagingOptionContent');\n }\n renderMultipleHolder() {\n const { name, multiple } = this;\n if (multiple) {\n return super.renderMultipleHolder();\n }\n return (React.createElement(\"input\", { key: \"value\", type: \"hidden\", value: this.toValueString(this.getValue()) || '', name: name, onChange: noop }));\n }\n getNotFoundContent() {\n const { notFoundContent } = this.props;\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n return getConfig('renderEmpty')('Select');\n }\n /**\n * 返回一个打平tree返回层级\n * @param record\n * @param fn\n */\n findParentRecordTree(record, fn) {\n const recordTree = [];\n if (record) {\n if (isFunction(fn)) {\n recordTree.push(fn(record));\n }\n else {\n recordTree.push(record);\n }\n }\n if (record && record.parent) {\n if (isFunction(fn)) {\n return [...this.findParentRecordTree(record.parent, fn), ...recordTree];\n }\n return [...this.findParentRecordTree(record.parent), ...recordTree];\n }\n return recordTree;\n }\n handleLoadData(event) {\n const { loadData } = this.props;\n const dataSet = this.options;\n const promises = [];\n if (dataSet) {\n const { idField, parentField } = dataSet.props;\n const { value: record } = event;\n if (idField && parentField && record && !record.children) {\n const id = record.get(idField);\n promises.push(dataSet.queryMore(-1, { [parentField]: id }));\n }\n }\n if (loadData) {\n promises.push(loadData(event));\n }\n return Promise.all(promises);\n }\n /**\n * 获取record 或者 obj对应的值\n * @param value\n * @param key\n */\n getRecordOrObjValue(value, key) {\n if (value instanceof Record) {\n return value.get(key);\n }\n if (isObject(value)) {\n return value[key];\n }\n return value;\n }\n /**\n * 渲染menu 表格\n * @param menuProps\n */\n getMenu(menuProps = {}) {\n const { options } = this;\n if (!options) {\n return null;\n }\n // 暂时不用考虑分组情况 groups\n const { disabled: menuDisabled, textField, valueField, props: { dropdownMenuStyle, expandTrigger, onOption, menuMode, singleMenuStyle, singleMenuItemStyle, singlePleaseRender, changeOnSelect, singleMenuItemRender, async, loadData, }, } = this;\n let optGroups = [];\n let selectedValues = [];\n // 过滤后的数据不用进行子集遍历\n const treePropsChange = (treeRecord, isFilterSearch = false) => {\n let treeRecords = [];\n if (treeRecord.length > 0) {\n treeRecords = treeRecord.map((recordItem) => {\n const value = this.getRecordOrObjValue(recordItem, valueField);\n const text = isFilterSearch ? this.treeTextToArray(recordItem).join('/') : this.getRecordOrObjValue(recordItem, textField);\n const optionProps = onOption ? onOption({ dataSet: options, record: recordItem }) : undefined;\n const optionDisabled = menuDisabled || (optionProps && optionProps.disabled);\n const key = getItemKey(recordItem, text, value);\n let children;\n if (recordItem.isSelected) {\n selectedValues.push(recordItem);\n }\n if (recordItem.children && !isFilterSearch) {\n children = treePropsChange(recordItem.children);\n }\n const isLeaf = (async || !!loadData) ? undefined : (this.text ? (!children || !children.length) : !recordItem.children || !recordItem.children.length);\n return (children ? {\n disabled: optionDisabled,\n label: text,\n value: recordItem,\n children,\n isLeaf,\n ...optionProps,\n key,\n } : {\n disabled: optionDisabled,\n label: text,\n value: recordItem,\n isLeaf,\n ...optionProps,\n key,\n });\n });\n }\n return treeRecords;\n };\n if (this.text) {\n optGroups = treePropsChange(expandTreeRecords(this.filteredOptions, !changeOnSelect), true);\n }\n else if (options) {\n optGroups = treePropsChange(options.treeData);\n }\n else {\n optGroups = [];\n }\n const getInputSelectedValue = (inputValue) => {\n let activeInputValue = [];\n if (isArrayLike(options)) {\n activeInputValue = this.findParentRecordTree(this.findActiveRecord(inputValue, this.options));\n }\n else if (options instanceof DataSet) {\n activeInputValue = this.findParentRecordTree(this.findActiveRecord(inputValue, this.options.treeData));\n }\n else {\n activeInputValue = [];\n }\n return activeInputValue;\n };\n /**\n * 获取当前激活的 menuItem\n * 以及value 展示激活状态的判断\n * 按钮能够控制不受值的影响\n * inputValue: 输入框的值\n * activeValue: 激活值(choose和键盘影响)\n * this.popup:开启状态有激活值那么为激活值\n */\n const getActiveValue = (inputValue) => {\n let activeValue = [];\n if (!isEmpty(inputValue)) {\n if (inputValue && arraySameLike(this.treeValueToArray(this.activeValue), inputValue) || this.activeValue.children) {\n activeValue = this.findParentRecordTree(this.activeValue);\n }\n else if (this.activeValue) {\n activeValue = getInputSelectedValue(inputValue);\n }\n }\n else if (inputValue) {\n activeValue = this.findParentRecordTree(this.activeValue);\n }\n return activeValue;\n };\n if (this.popup && !isEmpty(this.activeValue)) {\n selectedValues = this.findParentRecordTree(this.activeValue);\n }\n else if (!this.multiple) {\n selectedValues = getActiveValue(this.getValues());\n }\n else if (this.getValues() && this.getValues().length > 0) {\n for (let i = this.getValues().length - 1; i >= 0; i--) {\n selectedValues = getActiveValue(this.getValues()[i]);\n if (!isEmpty(selectedValues)) {\n break;\n }\n }\n }\n else if (!isEmpty(this.activeValue)) {\n selectedValues = this.findParentRecordTree(this.activeValue);\n }\n let dropdownMenuStyleMerge = dropdownMenuStyle;\n if ((this.itemMenuWidth > 0)) {\n dropdownMenuStyleMerge = { ...dropdownMenuStyle, width: pxToRem(this.itemMenuWidth) };\n }\n // 由于想让多选出现不同展现这边增加一个selected属性来解决但是会造成一定的性能损耗\n let selectedValueMultiple;\n if (this.multiple) {\n const selectedMultiple = this.getValues()\n .map(item => getInputSelectedValue(item))\n .filter((recordItem) => recordItem !== undefined && recordItem !== null);\n selectedValueMultiple = Array.from(new Set(selectedMultiple.reduce((accumulator, currentValue) => [...accumulator, ...currentValue], [])));\n }\n if (options.paging && options.currentPage < options.totalPage && menuMode !== MenuMode.single) {\n const menuPrefixCls = this.getMenuPrefixCls();\n optGroups.push({\n key: MORE_KEY,\n eventKey: MORE_KEY,\n label: this.getPagingOptionContent(),\n className: `${menuPrefixCls}-item ${menuPrefixCls}-item-more`,\n isLeaf: true,\n });\n }\n // 渲染成单项选择还是多项选择组件以及空组件\n if (options && options.length && optGroups.length) {\n if (menuMode === MenuMode.single) {\n return (React.createElement(SingleMenu, Object.assign({}, menuProps, { singleMenuStyle: singleMenuStyle, singleMenuItemStyle: singleMenuItemStyle, singlePleaseRender: singlePleaseRender, singleMenuItemRender: singleMenuItemRender, prefixCls: this.prefixCls, expandTrigger: expandTrigger, activeValue: selectedValues, selectedValues: selectedValueMultiple, options: optGroups, locale: { pleaseSelect: $l('Cascader', 'please_select') }, onSelect: this.handleMenuSelect, isTabSelected: this.isClickTab, dropdownMenuColumnStyle: dropdownMenuStyleMerge, visible: this.popup })));\n }\n return (React.createElement(Menus, Object.assign({}, menuProps, { prefixCls: this.prefixCls, expandTrigger: expandTrigger, activeValue: selectedValues, selectedValues: selectedValueMultiple, options: optGroups, onSelect: this.handleMenuSelect, dropdownMenuColumnStyle: dropdownMenuStyleMerge, visible: this.popup })));\n }\n return (React.createElement(\"div\", { key: \"no_data\" },\n React.createElement(\"ul\", { className: `${this.prefixCls}-menu`, style: { ...{ height: 'auto' }, ...dropdownMenuStyleMerge } },\n React.createElement(\"li\", { className: `${this.prefixCls}-menu-item ${this.prefixCls}-menu-item-disabled` }, this.loading ? ' ' : this.getNotFoundContent()))));\n }\n get searchable() {\n return !!this.observableProps.searchable;\n }\n // 遍历出父亲节点\n get loading() {\n const { field, options } = this;\n return options.status === DataSetStatus.loading || !!(field && field.pending);\n }\n isEditable() {\n return super.isEditable() && !!this.searchable;\n }\n getPopupContent() {\n const menu = (React.createElement(Spin, { key: \"menu\", spinning: this.loading }, this.getMenu()));\n if (this.multiple) {\n return [\n React.createElement(\"div\", { key: \"check-all\", className: `${this.prefixCls}-select-all-none` },\n React.createElement(\"span\", { onClick: this.chooseAll }, $l('Cascader', 'select_all')),\n React.createElement(\"span\", { onClick: this.unChooseAll }, $l('Cascader', 'unselect_all'))),\n menu,\n ];\n }\n return menu;\n }\n getPopupStyleFromAlign(target) {\n if (target) {\n if (this.props.dropdownMatchSelectWidth) {\n this.setItemMenuWidth(target.getBoundingClientRect().width);\n return {\n minWidth: pxToRem(target.getBoundingClientRect().width),\n };\n }\n return undefined;\n }\n }\n getTriggerIconFont() {\n return this.searchable && this.isFocused ? 'search' : 'baseline-arrow_drop_down';\n }\n handleKeyDown(e) {\n if (!this.disabled && !this.readOnly) {\n switch (e.keyCode) {\n case KeyCode.RIGHT:\n this.handleKeyLeftRightNext(e, 1);\n break;\n case KeyCode.DOWN:\n this.handleKeyDownPrevNext(e, 1);\n break;\n case KeyCode.LEFT:\n this.handleKeyLeftRightNext(e, -1);\n break;\n case KeyCode.UP:\n this.handleKeyDownPrevNext(e, -1);\n break;\n case KeyCode.END:\n case KeyCode.PAGE_DOWN:\n this.handleKeyDownFirstLast(e, 1);\n break;\n case KeyCode.HOME:\n case KeyCode.PAGE_UP:\n this.handleKeyDownFirstLast(e, -1);\n break;\n case KeyCode.ENTER:\n this.handleKeyDownEnter(e);\n break;\n case KeyCode.ESC:\n this.handleKeyDownEsc(e);\n break;\n case KeyCode.SPACE:\n this.handleKeyDownSpace(e);\n break;\n default:\n }\n }\n super.handleKeyDown(e);\n }\n // 获取当前列第一个值和最后的值\n findTreeDataFirstLast(options, activeValue, direction) {\n const nowIndexList = activeValue.parent ? activeValue.parent.children : options;\n if (nowIndexList.length > 0 && direction > 0) {\n return nowIndexList[nowIndexList.length - 1];\n }\n if (nowIndexList.length > 0 && direction < 0) {\n return nowIndexList[0];\n }\n return activeValue;\n }\n // 按键第一个和最后一个的位置\n handleKeyDownFirstLast(e, direction) {\n stopEvent(e);\n if (isEmpty(toJS(this.activeValue))) {\n this.setActiveValue(this.options.treeData[0]);\n }\n else {\n const activeItem = this.findTreeDataFirstLast(this.options.treeData, this.activeValue, direction);\n if (!this.editable || this.popup) {\n this.setActiveValue(activeItem);\n }\n }\n }\n // 查找同级位置\n findTreeDataUpDown(options, value, direction, fn) {\n const nowIndexList = value.parent ? value.parent.children : options;\n if (isArrayLike(nowIndexList)) {\n const nowIndex = fn !== undefined ? fn : nowIndexList.findIndex(ele => ele.value === value);\n const length = nowIndexList.length;\n if (nowIndex + direction >= length) {\n return nowIndexList[0];\n }\n if (nowIndex + direction < 0) {\n return nowIndexList[length - 1];\n }\n return nowIndexList[nowIndex + direction];\n }\n return value;\n }\n sameKeyRecordIndex(options, activeValue, valueKey) {\n const nowIndexList = activeValue.parent ? activeValue.parent.children : options;\n return nowIndexList.findIndex(ele => ele[valueKey] === activeValue[valueKey]);\n }\n // 上下按键判断\n handleKeyDownPrevNext(e, direction) {\n if (!this.editable) {\n if (isEmpty(toJS(this.activeValue))) {\n this.setActiveValue(this.options.treeData[0]);\n }\n else {\n this.setActiveValue(this.findTreeDataUpDown(this.options.treeData, this.activeValue, direction, this.sameKeyRecordIndex(this.options.treeData, this.activeValue, 'key')));\n }\n e.preventDefault();\n }\n else if (e === KeyCode.DOWN) {\n this.expand();\n e.preventDefault();\n }\n }\n // 查找相邻的节点\n findTreeParentChidren(_options, activeValue, direction) {\n if (direction > 0) {\n if (activeValue.children && activeValue.children.length > 0) {\n return activeValue.children[0];\n }\n return activeValue;\n }\n if (activeValue.parent) {\n return activeValue.parent;\n }\n return activeValue;\n }\n handleKeyLeftRightNext(e, direction) {\n if (!this.editable) {\n if (isEmpty(toJS(this.activeValue))) {\n this.setActiveValue(this.options.treeData[0]);\n }\n else {\n this.setActiveValue(this.findTreeParentChidren(this.options.treeData, this.activeValue, direction));\n }\n e.preventDefault();\n }\n else if (e === KeyCode.DOWN) {\n this.expand();\n e.preventDefault();\n }\n }\n handleKeyDownEnter(e) {\n if (this.popup && !this.editable) {\n const value = this.activeValue;\n if (this.isSelected(value) && this.multiple) {\n this.unChoose(value);\n }\n else if (value.children) {\n this.setPopup(true);\n }\n else if (value && !value.get(disabledField)) {\n this.choose(value);\n }\n }\n e.preventDefault();\n }\n handleKeyDownEsc(e) {\n if (this.popup) {\n e.preventDefault();\n this.collapse();\n }\n }\n handleKeyDownSpace(e) {\n if (!this.editable) {\n e.preventDefault();\n if (!this.popup) {\n this.expand();\n }\n }\n }\n handleBlur(e) {\n if (!e.isDefaultPrevented()) {\n super.handleBlur(e);\n this.resetFilter();\n }\n }\n expand() {\n const { options } = this;\n if (options && options.length) {\n super.expand();\n }\n }\n syncValueOnBlur(value) {\n if (value) {\n if (this.options) {\n this.options.ready().then(() => {\n const record = this.findByTextWithValue(value);\n if (record) {\n this.choose(record);\n }\n });\n }\n }\n else if (!this.multiple) {\n this.setValue(this.emptyValue);\n }\n }\n findByTextWithValue(text) {\n if (text) {\n const found = this.findByText(text);\n if (found) {\n return found;\n }\n }\n }\n findByText(text) {\n const { textField, props: { changeOnSelect } } = this;\n const findTreeItem = (options, valueItem, index) => {\n let sameItemTreeNode;\n if (valueItem.length > 0) {\n sameItemTreeNode = options.find(ele => {\n return isSameLike(this.getRecordOrObjValue(ele, textField), isPlainObject(valueItem[index]) ? ObjectChainValue.get(valueItem[index], textField) : valueItem[index]);\n });\n if (sameItemTreeNode) {\n if (sameItemTreeNode.children && !(changeOnSelect && index === (valueItem.length - 1))) {\n return findTreeItem(sameItemTreeNode.children, valueItem, ++index);\n }\n return sameItemTreeNode;\n }\n }\n };\n const textArray = text.split('/');\n if (textArray && textArray.length > 0) {\n if (this.options) {\n return findTreeItem(this.options.treeData, textArray, 0);\n }\n }\n }\n findByValue(value) {\n const { valueField, props: { changeOnSelect } } = this;\n const findTreeItem = (options, valueItem, index) => {\n let sameItemTreeNode;\n if (valueItem.length > 0) {\n sameItemTreeNode = options.find(ele => {\n return isSameLike(this.getRecordOrObjValue(ele, valueField), isPlainObject(valueItem[index]) ? ObjectChainValue.get(valueItem[index], valueField) : valueItem[index]);\n });\n if (sameItemTreeNode) {\n if (sameItemTreeNode.children && !(changeOnSelect && index === (valueItem.length - 1))) {\n return findTreeItem(sameItemTreeNode.children, valueItem, ++index);\n }\n return sameItemTreeNode;\n }\n }\n };\n value = getSimpleValue(value, valueField);\n if (this.options && value) {\n return findTreeItem(toJS(this.options.treeData), toJS(value), 0);\n }\n }\n isSelected(record) {\n const { valueField } = this;\n // 多值处理\n if (this.multiple) {\n return this.getValues().some(value => {\n const simpleValue = getSimpleValue(value, valueField);\n return arraySameLike(this.treeValueToArray(record), toJS(simpleValue));\n });\n }\n const simpleValue = this.getValues();\n return arraySameLike(this.treeValueToArray(record), simpleValue);\n }\n generateComboOption(value, callback) {\n const { textField } = this;\n if (value) {\n if (isArrayLike(value)) {\n value.forEach(v => !isNil(v) && this.generateComboOption(v));\n }\n else {\n const found = this.findByText(value) || this.findByValue(value);\n if (found) {\n const text = found.get(textField);\n if (text !== value && callback) {\n callback(text);\n }\n }\n }\n }\n }\n handlePopupAnimateAppear() {\n }\n getValueKey(v) {\n if (isArrayLike(v)) {\n return v.map(this.getValueKey, this).join(',');\n }\n const autoType = this.getProp('type') === FieldType.auto;\n const value = getSimpleValue(v, this.valueField);\n return autoType && !isNil(value) ? value.toString() : value;\n }\n handlePopupAnimateEnd(_key, _exists) {\n }\n // 触发下拉框事件,增加了触发方式判断优化trigger类型\n handleMenuSelect(targetOption, _menuIndex, isClickTab, trigger) {\n const { onChoose, onUnChoose, changeOnSelect, async, loadData } = this.props;\n if (!targetOption || targetOption.disabled) {\n return;\n }\n if (targetOption.key === MORE_KEY) {\n const { options } = this;\n options.queryMore(options.currentPage + 1);\n return;\n }\n // 单选模式\n if (!this.isSelected(targetOption.value) || isClickTab || !this.multiple) {\n if (targetOption.children) {\n this.setPopup(true);\n this.setActiveValue(targetOption.value);\n this.setIsClickTab(isClickTab);\n if (changeOnSelect && ExpandTrigger.click === trigger) {\n this.choose(targetOption.value, true);\n }\n if (onChoose) {\n onChoose(this.processRecordToObject(targetOption.value), targetOption.value);\n }\n }\n else {\n if (!targetOption.isLeaf && (async || !!loadData)) {\n const loadDataCallBack = async ? this.handleLoadData : loadData;\n if (changeOnSelect) {\n this.choose(targetOption.value, true);\n }\n this.setPopup(true);\n this.setActiveValue(targetOption.value);\n this.setIsClickTab(isClickTab);\n loadDataCallBack(targetOption);\n return;\n }\n if (!isClickTab) {\n this.setActiveValue(targetOption.value);\n this.choose(targetOption.value);\n if (onChoose) {\n onChoose(this.processRecordToObject(targetOption.value), targetOption.value);\n }\n }\n else {\n this.setPopup(true);\n }\n this.setIsClickTab(isClickTab);\n }\n // 多选模式\n }\n else {\n this.setactiveEmpty();\n this.unChoose(targetOption.value);\n if (onUnChoose) {\n onUnChoose(this.processRecordToObject(targetOption.value), targetOption.value);\n }\n }\n }\n setactiveEmpty() {\n if (this.multiple) {\n this.setActiveValue([]);\n }\n else {\n this.setActiveValue({});\n }\n }\n handleOptionSelect(record) {\n this.prepareSetValue(this.processRecordToObject(record));\n }\n handleOptionUnSelect(record) {\n const newValue = this.treeValueToArray(record);\n this.removeValue(newValue, -1);\n }\n // 移除所选值\n removeValues(values, index = 0) {\n if (!this.multiple) {\n const oldValues = this.getValues();\n if (this.getValueKey(oldValues) === this.getValueKey(values[0])) {\n if (index === -1) {\n this.afterRemoveValue(values[0], 1);\n this.setValue([]);\n }\n }\n }\n super.removeValues(values, index);\n this.setActiveValue({});\n this.collapse();\n }\n handleSearch(_text) {\n }\n setText(text) {\n super.setText(text);\n if (this.searchable) {\n this.doSearch(text);\n }\n }\n searchRemote(value) {\n const { field, searchMatcher } = this;\n if (field && isString(searchMatcher)) {\n field.setLovPara(searchMatcher, value === '' ? undefined : value);\n }\n }\n searchData(data, text) {\n const { searchable, searchMatcher, } = this;\n return searchable && text && typeof searchMatcher === 'function' ? data.filter((r) => {\n return this.matchRecordBySearch(r, text);\n }) : data;\n }\n matchRecordBySearch(record, text) {\n const { textField, valueField, searchable, searchMatcher, } = this;\n return !(searchable && text && typeof searchMatcher === 'function') || searchMatcher({\n record,\n text,\n textField,\n valueField,\n });\n }\n handleChange(e) {\n const { value } = e.target;\n this.setText(value);\n if (this.observableProps.combo) {\n this.generateComboOption(value, text => this.setText(text));\n }\n if (!this.popup) {\n this.expand();\n }\n }\n processRecordToObject(record) {\n const { primitive } = this;\n if (record && record.dataSet.getFromTree(0)) {\n return primitive ? this.treeValueToArray(record) : this.treeToArray(record);\n }\n }\n /**\n * 返回tree 的值的列表方法\n * @param record\n * @param allArray\n */\n treeValueToArray(record, allArray) {\n const { valueField } = this;\n if (!allArray) {\n allArray = [];\n }\n if (record) {\n allArray = [this.getRecordOrObjValue(record, valueField), ...allArray];\n }\n if (record.parent) {\n return this.treeValueToArray(record.parent, allArray);\n }\n return allArray;\n }\n /**\n * 返回tree 的值的列表方法\n * @param record\n * @param allArray\n */\n treeTextToArray(record, allArray) {\n const { textField } = this;\n if (!allArray) {\n allArray = [];\n }\n if (record) {\n allArray = [this.getRecordOrObjValue(record, textField), ...allArray];\n }\n if (record.parent) {\n return this.treeTextToArray(record.parent, allArray);\n }\n return allArray;\n }\n /**\n * 返回tree 的值的列表方法\n * @param record\n * @param allArray\n */\n treeToArray(record, allArray) {\n if (!allArray) {\n allArray = [];\n }\n if (record) {\n allArray = [record.toData(), ...allArray];\n }\n if (record.parent) {\n return this.treeToArray(record.parent, allArray);\n }\n return allArray;\n }\n removeObjParentChild(obj) {\n if (isPlainObject(obj)) {\n const cloneObj = cloneDeep(toJS(obj));\n delete cloneObj.parent;\n delete cloneObj.children;\n return cloneObj;\n }\n return obj;\n }\n processObjectValue(value, textField) {\n if (!isNil(value)) {\n const found = this.findByValue(value);\n if (found && isArrayLike(value)) {\n return this.treeTextToArray(found);\n }\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, textField);\n }\n }\n }\n processLookupValue(value) {\n const { field, textField, primitive } = this;\n const processvalue = this.processObjectValue(value, textField);\n if (isArrayLike(processvalue)) {\n return processvalue.join('/');\n }\n if (primitive && field) {\n return super.processValue(field.getText(value));\n }\n }\n // 处理value\n processValue(value) {\n const text = this.processLookupValue(value);\n if (isEmptyUtil(text)) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, this.valueField) || '';\n }\n return super.processValue(value);\n }\n return text;\n }\n toValueString(value) {\n if (isArrayLike(value)) {\n return value.join('/');\n }\n return value;\n }\n clear() {\n this.setText(undefined);\n this.setActiveValue({});\n super.clear();\n }\n addValue(...values) {\n if (this.multiple) {\n const oldValues = this.getValues();\n if (values.length) {\n const oldValuesJS = oldValues.map(item => toJS(item));\n this.setValue([...oldValuesJS, ...values]);\n }\n else if (!oldValues.length) {\n this.setValue(this.emptyValue);\n }\n }\n else {\n this.setValue(values.pop());\n }\n }\n resetFilter() {\n this.setText(undefined);\n this.forcePopupAlign();\n }\n reset() {\n super.reset();\n this.resetFilter();\n }\n unChoose(record) {\n if (record) {\n this.handleOptionUnSelect(record);\n }\n }\n /**\n *\n * @param record\n * @param visible\n */\n choose(record, visible) {\n if (!this.multiple && !visible) {\n this.collapse();\n }\n if (record) {\n this.handleOptionSelect(record);\n }\n }\n chooseAll() {\n const chooseAll = [];\n this.options.forEach(item => {\n if (isEmpty(item.children) && !item.get(disabledField)) {\n // @ts-ignore\n chooseAll.push(this.processRecordToObject(item));\n }\n }, this);\n this.setValue(chooseAll);\n }\n unChooseAll() {\n this.clear();\n }\n async handlePopupHiddenChange(hidden) {\n this.setIsClickTab(false);\n if (!hidden) {\n this.forcePopupAlign();\n }\n super.handlePopupHiddenChange(hidden);\n }\n async processSelectedData() {\n const values = this.getValues();\n const { field } = this;\n if (field) {\n await field.ready();\n }\n const { observableProps: { combo }, } = this;\n runInAction(() => {\n const newValues = values.filter(value => {\n const record = this.findByValue(value);\n return !!record;\n });\n if (this.text && combo) {\n this.generateComboOption(this.text);\n }\n if (field &&\n field.get('cascadeMap') &&\n !isEqual(newValues, values)) {\n this.setValue(this.multiple ? newValues : newValues[0]);\n }\n });\n }\n renderLengthInfo() {\n return undefined;\n }\n}\nCascader.displayName = 'Cascader';\nCascader.propTypes = {\n /**\n * 次级菜单的展开方式,可选 'click' 和 'hover'\n */\n expandTrigger: PropTypes.oneOf([\n ExpandTrigger.hover,\n ExpandTrigger.click,\n ]),\n /**\n * 下拉框匹配输入框宽度\n * @default true\n */\n dropdownMatchSelectWidth: PropTypes.bool,\n /**\n * 下拉框菜单样式名\n */\n dropdownMenuStyle: PropTypes.object,\n /**\n * 选项数据源\n */\n options: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.arrayOf(PropTypes.object),\n ]),\n /**\n * 是否为原始值\n * true - 选项中valueField对应的值\n * false - 选项值对象\n */\n primitiveValue: PropTypes.bool,\n /**\n * 当下拉列表为空时显示的内容\n */\n notFoundContent: PropTypes.node,\n /**\n * 选择一个值的时候触发\n */\n onChoose: PropTypes.func,\n /**\n * 取消选中一个值的时候触发多选时候生效\n */\n onUnChoose: PropTypes.func,\n /** 选择及改变 */\n changeOnSelect: PropTypes.bool,\n /**\n * 设置选项属性,如 disabled;\n */\n onOption: PropTypes.func,\n /**\n * 渲染分页 Item 内容\n */\n pagingOptionContent: PropTypes.node,\n /**\n * 可搜索属性\n */\n searchable: PropTypes.bool,\n /**\n * 搜索匹配器。 当为字符串时,作为lookup的参数名来重新请求值列表。\n */\n searchMatcher: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n singleMenuStyle: PropTypes.object,\n singleMenuItemStyle: PropTypes.object,\n singlePleaseRender: PropTypes.func,\n singleMenuItemRender: PropTypes.func,\n ...TriggerField.propTypes,\n};\nCascader.defaultProps = {\n ...TriggerField.defaultProps,\n suffixCls: 'cascader',\n searchable: false,\n dropdownMatchSelectWidth: false,\n expandTrigger: ExpandTrigger.click,\n onOption: defaultOnOption,\n};\n__decorate([\n observable\n], Cascader.prototype, \"activeValues\", void 0);\n__decorate([\n observable\n], Cascader.prototype, \"menuItemWith\", void 0);\n__decorate([\n observable\n], Cascader.prototype, \"clickTab\", void 0);\n__decorate([\n computed\n], Cascader.prototype, \"isClickTab\", null);\n__decorate([\n computed\n], Cascader.prototype, \"activeValue\", null);\n__decorate([\n computed\n], Cascader.prototype, \"itemMenuWidth\", null);\n__decorate([\n action\n], Cascader.prototype, \"setActiveValue\", null);\n__decorate([\n action\n], Cascader.prototype, \"setIsClickTab\", null);\n__decorate([\n action\n], Cascader.prototype, \"setItemMenuWidth\", null);\n__decorate([\n computed\n], Cascader.prototype, \"textField\", null);\n__decorate([\n computed\n], Cascader.prototype, \"valueField\", null);\n__decorate([\n computed\n], Cascader.prototype, \"cascadeOptions\", null);\n__decorate([\n computed\n], Cascader.prototype, \"multiple\", null);\n__decorate([\n computed\n], Cascader.prototype, \"menuMultiple\", null);\n__decorate([\n computed\n], Cascader.prototype, \"parentField\", null);\n__decorate([\n computed\n], Cascader.prototype, \"idField\", null);\n__decorate([\n computed\n], Cascader.prototype, \"searchMatcher\", null);\n__decorate([\n computed\n], Cascader.prototype, \"options\", null);\n__decorate([\n computed\n], Cascader.prototype, \"filteredOptions\", null);\n__decorate([\n computed\n], Cascader.prototype, \"primitive\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handleLoadData\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"getMenu\", null);\n__decorate([\n computed\n], Cascader.prototype, \"searchable\", null);\n__decorate([\n computed\n], Cascader.prototype, \"loading\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"getPopupStyleFromAlign\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"getValueKey\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handlePopupAnimateEnd\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handleMenuSelect\", null);\n__decorate([\n action\n], Cascader.prototype, \"setText\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"matchRecordBySearch\", null);\n__decorate([\n autobind,\n action\n], Cascader.prototype, \"handleChange\", null);\n__decorate([\n action\n], Cascader.prototype, \"clear\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"reset\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"chooseAll\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"unChooseAll\", null);\n__decorate([\n autobind\n], Cascader.prototype, \"handlePopupHiddenChange\", null);\nlet ObserverCascader = class ObserverCascader extends Cascader {\n};\nObserverCascader.defaultProps = Cascader.defaultProps;\nObserverCascader = __decorate([\n observer\n], ObserverCascader);\nexport default ObserverCascader;\n","export var ExpandTrigger;\n(function (ExpandTrigger) {\n ExpandTrigger[\"click\"] = \"click\";\n ExpandTrigger[\"hover\"] = \"hover\";\n})(ExpandTrigger || (ExpandTrigger = {}));\n","import ObserverCascader from './Cascader';\nexport default ObserverCascader;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\n// style dependencies\nimport '../../trigger-field/style';\nimport '../../spin/style';\nimport 'choerodon-ui/lib/menu/style';\nimport './index.less';\n","import DataSet from '../data-set/DataSet';\nimport { DataSetSelection, FieldType } from '../data-set/enum';\n/**\n * transform tree to stack\n *\n * @param {Array|Object} tree Tree.\n */\nfunction _transformStack(tree, parentValue, parentField) {\n const stack = [];\n if (Array.isArray(tree)) { // array tree\n for (let index = 0; index < tree.length; index++) {\n const node = tree[index];\n node[parentField] = parentValue;\n stack.push({\n value: node,\n });\n }\n }\n else if (Object.prototype.toString.call(tree) === '[object Object]') { // object tree\n Object.keys(tree).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(tree, key)) {\n const node = tree[key];\n node[parentField] = parentValue;\n stack.push({\n key,\n value: node,\n });\n }\n });\n }\n return stack;\n}\nfunction treeToList(tree, valueField = 'value', parentField = \"parentValue\", key = 'children') {\n let list = [];\n if (Array.isArray(tree)) { // array tree\n list = [];\n }\n else if (Object.prototype.toString.call(tree) === '[object Object]') { // object tree\n list = {};\n }\n else { // invalid tree\n // @ts-ignore\n return list;\n }\n let parentValue;\n let stack = _transformStack(tree, parentValue, parentField);\n while (stack.length) {\n const curStack = stack.shift();\n const { key: nodeKey, value: node } = curStack;\n if (!node)\n continue; // invalid node\n const item = (nodeKey ? list[nodeKey] : {}) || {};\n Object.keys(node).forEach((prop) => {\n if (Object.prototype.hasOwnProperty.call(node, prop)\n && prop !== key) {\n item[prop] = node[prop];\n }\n });\n if (nodeKey) { // object\n list[nodeKey] = item;\n }\n else { // array\n // @ts-ignore\n list.push(item);\n }\n const subTree = node[key] || [];\n parentValue = node[valueField];\n stack = _transformStack(subTree, parentValue, parentField).concat(stack);\n }\n // @ts-ignore\n return list;\n}\nexport default function normalizeOptions({ data, textField, valueField, disabledField, multiple, parentField, idField, }) {\n const fields = [\n {\n name: textField,\n type: FieldType.reactNode,\n },\n {\n name: valueField,\n },\n {\n name: disabledField,\n type: FieldType.boolean,\n },\n ];\n const treeNormalData = treeToList(data, valueField, parentField);\n return new DataSet({\n data: treeNormalData,\n fields,\n paging: false,\n idField,\n selection: multiple ? DataSetSelection.multiple : DataSetSelection.single,\n autoLocateFirst: false,\n parentField,\n });\n}\nexport function expandTreeRecords(records, isAllleaf = true) {\n const mapRecords = new Map();\n const expandRecords = [];\n const TreeToArray = (PRecords) => {\n PRecords.forEach((record) => {\n if (record.children && record.children.length > 0) {\n TreeToArray(record.children);\n }\n else if (!mapRecords.has(records.id)) {\n mapRecords.set(record.id, record);\n }\n });\n };\n const parentRecords = records.filter(item => !!item.children);\n // 先优先获取根节点再对子节点进行拆分\n records.filter(item => {\n return !item.children;\n }).forEach((record) => {\n if (!mapRecords.has(records.id)) {\n mapRecords.set(record.id, record);\n }\n });\n TreeToArray(parentRecords);\n // Map去重\n mapRecords.forEach(record => {\n expandRecords.push(record);\n });\n // 如果不全为子集的设置加上父亲节点\n if (!isAllleaf) {\n return parentRecords.concat(expandRecords);\n }\n return expandRecords;\n}\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { Radio } from '../radio/Radio';\nimport { BooleanValue } from '../data-set/enum';\nexport class CheckBox extends Radio {\n constructor(props, context) {\n super(props, context);\n this.type = 'checkbox';\n runInAction(() => {\n this.value = this.props.defaultChecked ? this.checkedValue : this.unCheckedValue;\n });\n }\n get unCheckedValue() {\n const { unCheckedValue } = this.props;\n if (unCheckedValue !== undefined) {\n return unCheckedValue;\n }\n const { field } = this;\n if (field) {\n return field.get(BooleanValue.falseValue);\n }\n return false;\n }\n get checkedValue() {\n const { value } = this.props;\n if (value !== undefined) {\n return value;\n }\n const { field } = this;\n if (field) {\n return field.get(BooleanValue.trueValue);\n }\n return true;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'defaultChecked',\n 'unCheckedValue',\n 'unCheckedChildren',\n 'indeterminate',\n ]);\n }\n renderInner() {\n return React.createElement(\"i\", { className: `${this.prefixCls}-inner` });\n }\n getChildrenText() {\n const { children, unCheckedChildren } = this.props;\n return this.isChecked() ? children : unCheckedChildren || children;\n }\n getWrapperClassNames() {\n const { prefixCls, props: { indeterminate }, } = this;\n return super.getWrapperClassNames({\n [`${prefixCls}-indeterminate`]: indeterminate,\n });\n }\n isChecked() {\n const { checked, indeterminate } = this.props;\n if (indeterminate) {\n return false;\n }\n const { name, dataSet, checkedValue } = this;\n if (!this.isControlled && dataSet && name) {\n return this.getValues().indexOf(checkedValue) !== -1;\n }\n if (checked !== undefined) {\n return checked;\n }\n return this.value === checkedValue;\n }\n getDataSetValues() {\n const values = this.getDataSetValue();\n if (values === undefined) {\n return [];\n }\n return [].concat(values);\n }\n setValue(value) {\n const { record, checkedValue, multiple } = this;\n if (record) {\n let values;\n if (multiple) {\n values = this.getValues();\n if (value === checkedValue) {\n values.push(value);\n }\n else {\n const index = values.indexOf(checkedValue);\n if (index !== -1) {\n values.splice(index, 1);\n }\n }\n }\n else {\n values = value;\n }\n super.setValue(values);\n }\n else {\n super.setValue(value);\n }\n }\n setChecked(checked) {\n this.setValue(checked ? this.checkedValue : this.unCheckedValue);\n }\n getOldValue() {\n return this.isChecked() ? this.checkedValue : this.unCheckedValue;\n }\n}\nCheckBox.displayName = 'CheckBox';\nCheckBox.propTypes = {\n /**\n * 中间状态\n */\n indeterminate: PropTypes.bool,\n /**\n * 未选中时的值\n */\n unCheckedValue: PropTypes.any,\n /**\n * 未选中时的内容\n */\n unCheckedChildren: PropTypes.node,\n ...Radio.propTypes,\n};\n/**\n * tooltip disable sign\n */\n// eslint-disable-next-line camelcase\nCheckBox.__PRO_CHECKBOX = true;\n// eslint-disable-next-line camelcase\nCheckBox.__IS_IN_CELL_EDITOR = true;\nCheckBox.defaultProps = {\n ...Radio.defaultProps,\n suffixCls: 'checkbox',\n indeterminate: false,\n};\n__decorate([\n action\n], CheckBox.prototype, \"setValue\", null);\n__decorate([\n action\n], CheckBox.prototype, \"setChecked\", null);\nlet ObserverCheckBox = class ObserverCheckBox extends CheckBox {\n};\nObserverCheckBox.defaultProps = CheckBox.defaultProps;\n// eslint-disable-next-line camelcase\nObserverCheckBox.__PRO_CHECKBOX = true;\n// eslint-disable-next-line camelcase\nObserverCheckBox.__IS_IN_CELL_EDITOR = true;\nObserverCheckBox = __decorate([\n observer\n], ObserverCheckBox);\nexport default ObserverCheckBox;\n","import ObserverCheckBox from './CheckBox';\nexport default ObserverCheckBox;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../field/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport classes from 'component-classes';\nimport { action, autorun, observable, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport isString from 'lodash/isString';\nimport isEqual from 'lodash/isEqual';\nimport noop from 'lodash/noop';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { FormField } from '../field/FormField';\nimport autobind from '../_util/autobind';\nimport { LabelLayout } from '../form/enum';\nlet CodeMirror;\nif (typeof window !== 'undefined') {\n // eslint-disable-next-line global-require\n CodeMirror = require('react-codemirror2').Controlled;\n}\nconst defaultCodeMirrorOptions = {\n theme: 'neat',\n lineNumbers: true,\n lint: true,\n gutters: ['CodeMirror-lint-markers'],\n};\nlet CodeArea = class CodeArea extends FormField {\n constructor(props, content) {\n super(props, content);\n this.cmOptions = this.getCodeMirrorOptions();\n /**\n * 编辑器失去焦点时,调用父类方法,同步DataSet中的内容\n *\n * @memberof CodeArea\n */\n this.handleCodeMirrorBlur = action((codeMirrorInstance) => {\n const { formatter } = this.props;\n // 更新DataSet的值之前,先去拿到原始的raw格式\n const codeMirrorText = codeMirrorInstance.getValue();\n const value = formatter ? formatter.getRaw(codeMirrorText) : codeMirrorText;\n this.midText = value;\n this.setValue(value);\n this.isFocused = false;\n this.isFocus = false;\n const element = this.wrapper || findDOMNode(this);\n if (element) {\n classes(element).remove(`${this.prefixCls}-focused`);\n }\n });\n /**\n * 在CodeMirror编辑器实例挂载前添加额外配置\n *\n * @memberof CodeArea\n */\n this.handleCodeMirrorDidMount = (editor, value, cb) => {\n const { formatter, style, formatHotKey, unFormatHotKey, editorDidMount } = this.props;\n const { width = '100%', height = 100 } = style || {};\n const options = {\n Tab(cm) {\n if (cm.somethingSelected()) {\n cm.indentSelection('add'); // 有选中内容时整体缩进\n }\n else {\n // 使用空格代替缩进\n const spaces = Array(cm.getOption('indentUnit') + 1).join(' ');\n cm.replaceSelection(spaces);\n }\n },\n };\n if (formatter) {\n if (formatHotKey) {\n // default: 'Alt-F'\n options[formatHotKey] = cm => cm.setValue(formatter.getFormatted(cm.getValue()));\n }\n if (unFormatHotKey) {\n // default: 'Alt-R'\n options[unFormatHotKey] = cm => cm.setValue(formatter.getRaw(cm.getValue()));\n }\n }\n editor.setSize(width, height); // default size: ('100%', 100)\n editor.setOption('extraKeys', options);\n if (editorDidMount) {\n editorDidMount(editor, value, cb);\n }\n if (this.labelLayout === LabelLayout.float) {\n const { display } = editor;\n if (display) {\n const { gutters } = display;\n if (gutters) {\n const { offsetWidth } = gutters;\n if (offsetWidth !== this.floatLabelOffsetX) {\n runInAction(() => {\n this.floatLabelOffsetX = offsetWidth;\n });\n }\n }\n }\n }\n };\n this.disposer = autorun(() => {\n // 在绑定dataSet的情况下\n // 当手动修改过codeArea里面的值以后 再使用record.set去更新值 组件不会更新\n // 原因在于此时 this.text 不为 undefined 因此 getTextNode 的计算值不会进行改变 导致组件不重新渲染\n // 其他的组件会对 this.text 在blur的时候进行undefined的修改 但是这个组件不能这么做\n // 原因在于 record 中的值为 raw的非格式化数据 blur后因为进行了一次record数据的修改 所以再次重新那数据必然导致\n // 当数据存在错误的时候 codeArea去格式化 因为格式化失败了\n // 当数据不存在存在错误的时候即使特地将其去格式化也依旧会被格式化\n // 因此需要使用中间变量进行处理\n const { formatter } = this.props;\n const recordValue = this.getValue();\n const value = formatter ? formatter.getFormatted(recordValue) : recordValue;\n // 判断跟中间值是否一致 通过这个判断 数据的来源是 blur的时候设置的值 还是直接通过外部进行修改的值\n if (recordValue !== this.midText) {\n this.setText(value);\n }\n });\n }\n componentWillUnmount() {\n this.disposer();\n }\n handleBeforeChange(_editor, _data, value) {\n this.setText(value);\n }\n handleCodeMirrorKeyDown(cm, e) {\n const { onKeyDown = noop, onEnterDown = noop } = this.props;\n switch (e.keyCode) {\n case KeyCode.ENTER:\n onEnterDown(e);\n break;\n case KeyCode.ESC:\n cm.getInputField().blur();\n break;\n default:\n }\n onKeyDown(e);\n }\n getCodeMirrorOptions(options = this.props.options) {\n return { ...defaultCodeMirrorOptions, ...options };\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'formatHotKey',\n 'unFormatHotKey',\n 'editorDidMount',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n delete otherProps.onChange;\n otherProps.onKeyDown = this.handleCodeMirrorKeyDown;\n return otherProps;\n }\n componentWillReceiveProps(nextProps, nextContext) {\n const { options } = nextProps;\n if (!isEqual(options, this.props.options)) {\n this.cmOptions = this.getCodeMirrorOptions(options);\n }\n super.componentWillReceiveProps(nextProps, nextContext);\n }\n renderWrapper() {\n if (CodeMirror) {\n this.cmOptions.readOnly = this.disabled ? 'nocursor' : this.readOnly;\n const text = this.getTextNode();\n return (React.createElement(\"div\", Object.assign({}, this.getWrapperProps()),\n React.createElement(\"label\", null,\n React.createElement(CodeMirror, Object.assign({}, this.getOtherProps(), { value: isString(text) ? text : this.processValue(this.getValue()), options: this.cmOptions, onBeforeChange: this.handleBeforeChange, onBlur: this.handleCodeMirrorBlur, editorDidMount: this.handleCodeMirrorDidMount })),\n this.renderFloatLabel())));\n }\n }\n setText(text) {\n this.text = text;\n }\n getTextNode(value) {\n return this.text === undefined ? super.getTextNode(value) || '' : this.text;\n }\n processValue(value) {\n const text = super.processValue(value);\n const { formatter } = this.props;\n return formatter && isString(text) ? formatter.getFormatted(text) : text;\n }\n};\nCodeArea.displayName = 'CodeArea';\nCodeArea.propTypes = {\n options: PropTypes.object,\n formatHotKey: PropTypes.string,\n unFormatHotKey: PropTypes.string,\n formatter: PropTypes.object,\n editorDidMount: PropTypes.func,\n ...FormField.propTypes,\n};\nCodeArea.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'code-area',\n formatHotKey: 'Alt-F',\n unFormatHotKey: 'Alt-R',\n};\n__decorate([\n observable\n], CodeArea.prototype, \"text\", void 0);\n__decorate([\n autobind\n], CodeArea.prototype, \"handleBeforeChange\", null);\n__decorate([\n autobind\n], CodeArea.prototype, \"handleCodeMirrorKeyDown\", null);\n__decorate([\n action\n], CodeArea.prototype, \"setText\", null);\nCodeArea = __decorate([\n observer\n], CodeArea);\nexport default CodeArea;\n","import CodeArea from './CodeArea';\nexport default CodeArea;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import { Col } from '../grid';\nexport default Col;\n","import '../../grid/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { action, observable } from 'mobx';\nimport TriggerField from '../trigger-field/TriggerField';\nimport autobind from '../_util/autobind';\nimport EventManager from '../_util/EventManager';\nimport { FieldType } from '../data-set/enum';\nimport { $l } from '../locale-context';\nfunction getNodeRect(node) {\n return node.getBoundingClientRect();\n}\nlet ColorPicker = class ColorPicker extends TriggerField {\n constructor() {\n super(...arguments);\n this.eventManager = new EventManager(typeof window === 'undefined' ? undefined : document);\n this.HSV = {\n h: 0,\n s: 1,\n v: 1,\n a: 1,\n };\n this.saveGradientRef = node => (this.gradient = node);\n this.saveSelectPointerRef = node => (this.selectPointer = node);\n this.saveHuePointerRef = node => (this.huePointer = node);\n this.saveHueRef = node => (this.hue = node);\n this.saveOpacityRef = node => (this.opacity = node);\n this.saveOpacityPointerRef = node => (this.opacityPointer = node);\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('ColorPicker', label ? 'value_missing' : 'value_missing_no_label', {\n label,\n }),\n typeMismatch: $l('ColorPicker', 'type_mismatch'),\n };\n }\n componentDidUpdate() {\n const { popup } = this;\n if (popup) {\n const { h, s, v } = this.HSV;\n const { huePointer, selectPointer, hue, gradient } = this;\n if (huePointer && hue) {\n const { width } = getNodeRect(hue);\n this.setHuePointer((width * h) / 360, huePointer, hue, false);\n }\n if (selectPointer && gradient) {\n const { width, height } = getNodeRect(gradient);\n const left = s * width;\n const top = height - v * height;\n this.setGradientPointer(left, top, selectPointer, gradient, false);\n }\n }\n }\n syncValueOnBlur(value) {\n if (value[0] !== '#' && !value.startsWith('rgb') && !value.startsWith('hls')) {\n value = `#${value}`;\n }\n super.syncValueOnBlur(value);\n }\n getFieldType() {\n return FieldType.color;\n }\n getPrefix() {\n const { prefixCls } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-prefix` },\n React.createElement(\"span\", { className: `${prefixCls}-color`, style: { backgroundColor: this.getValue() } })));\n }\n getPopupFooter() {\n const { prefixCls } = this;\n const huePointerProps = {\n onMouseDown: this.handleHPMouseDown,\n ref: this.saveHuePointerRef,\n className: `${prefixCls}-popup-footer-slider-pointer`,\n };\n return (React.createElement(\"div\", { className: `${prefixCls}-popup-footer` },\n React.createElement(\"div\", { ref: this.saveHueRef, className: `${prefixCls}-popup-footer-slider` },\n React.createElement(\"div\", { onClick: this.handleHueClick, className: \"hue\" }),\n React.createElement(\"div\", Object.assign({}, huePointerProps))),\n React.createElement(\"div\", { ref: this.saveOpacityRef, className: `${prefixCls}-popup-footer-slider opacity` },\n React.createElement(\"div\", { ref: this.saveOpacityPointerRef, className: `${prefixCls}-popup-footer-slider-pointer` }))));\n }\n getPopupContent() {\n const { prefixCls } = this;\n const gradientProps = {\n className: `${prefixCls}-popup-body-gradient`,\n onClick: this.handleGPClick,\n ref: this.saveGradientRef,\n };\n const gradientPointerProps = {\n onMouseDown: this.handleGPMouseDown,\n ref: this.saveSelectPointerRef,\n className: `${prefixCls}-popup-body-selector`,\n };\n this.setColor(this.getValue());\n return (React.createElement(\"div\", { className: `${prefixCls}-popup-view` },\n React.createElement(\"div\", { className: `${prefixCls}-popup-body`, style: { backgroundColor: this.hueColor } },\n React.createElement(\"div\", Object.assign({}, gradientProps)),\n React.createElement(\"div\", Object.assign({}, gradientPointerProps))),\n this.getPopupFooter()));\n }\n setHSV(h, s, v, a) {\n const { HSV } = this;\n if (h !== undefined && h !== HSV.h) {\n HSV.h = h;\n }\n if (v !== undefined && v !== HSV.v) {\n HSV.v = v;\n }\n if (s !== undefined && s !== HSV.s) {\n HSV.s = s;\n }\n if (a !== undefined && a !== HSV.a) {\n HSV.a = a;\n }\n }\n setHueColor(color) {\n if (color !== this.hueColor) {\n this.hueColor = color;\n }\n }\n setColor(color) {\n if (color !== undefined && color.slice(0, 1) === '#' && color.length > 3) {\n const { gradient, selectPointer, hue, huePointer } = this;\n const { r, g, b, a } = this.hexToRGB(color);\n const { h, s, v } = this.rgbToHSV(r / 255, g / 255, b / 255, a);\n this.setHSV(h, s, v, a);\n const { r: hr, g: hg, b: hb, a: ha } = this.hsvToRGB(h, 1, 1, 1);\n const hueColor = this.rgbToHEX(hr, hg, hb, ha);\n this.setHueColor(hueColor);\n if (gradient && selectPointer && hue && huePointer) {\n const { height, width } = getNodeRect(gradient);\n const left = s * width;\n const top = height - v * height;\n const { width: hueWidth } = getNodeRect(hue);\n const hueLeft = (h / 360) * hueWidth;\n this.setHuePointer(hueLeft, huePointer, hue, false);\n this.setGradientPointer(left, top, selectPointer, gradient, false);\n }\n }\n }\n positionToHSV(left, top, width, height) {\n const { h, a } = this.HSV;\n if (width < 0) {\n width = 0;\n }\n const s = left / width;\n const v = 1 - top / height;\n return { h, s, v, a };\n }\n rgbToHEX(r, g, b, a) {\n function hex(num) {\n const hexNum = num.toString(16);\n return hexNum.length === 1 ? `0${hexNum}` : hexNum;\n }\n if (a !== 1) {\n return `#${hex(r)}${hex(g)}${hex(b)}${hex((a * 255) / 10)}`;\n }\n return `#${hex(r)}${hex(g)}${hex(b)}`;\n }\n hexToRGB(hex) {\n hex = hex.split('#')[1] || hex.split('#')[0];\n const length = hex.length;\n let results = '';\n const hexArray = hex.split('');\n if (length === 3 || length === 4) {\n for (let i = 0; i < length; i++) {\n results = `${results}${hexArray[i]}${hexArray[i]}`;\n }\n }\n else if (length === 5) {\n results = `${hex}${hexArray[length - 1]}`;\n }\n else {\n results = hex;\n }\n results = results.slice(0, 6);\n const result = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(results);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n a: 1,\n }\n : {\n r: 255,\n g: 0,\n b: 0,\n a: 1,\n };\n }\n rgbToHSV(r, g, b, a) {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const v = max;\n let s;\n let h;\n if (v === 0) {\n s = 0;\n }\n else {\n s = (max - min) / max;\n }\n if (max === min) {\n h = 0;\n }\n else {\n const d = r === min ? g - b : b === min ? r - g : b - r;\n const m = r === min ? 3 : b === min ? 1 : 5;\n h = 60 * (m - d / (max - min));\n }\n if (h < 0) {\n h += 360;\n }\n return { h, s, v, a };\n }\n hsvToRGB(h, s, v, a) {\n h /= 60;\n const h1 = Math.floor(h);\n const f = h - h1;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n let rgb;\n switch (h1) {\n case 0:\n rgb = { r: v, g: t, b: p, a };\n break;\n case 1:\n rgb = { r: q, g: v, b: p, a };\n break;\n case 2:\n rgb = { r: p, g: v, b: t, a };\n break;\n case 3:\n rgb = { r: p, g: q, b: v, a };\n break;\n case 4:\n rgb = { r: t, g: p, b: v, a };\n break;\n default:\n rgb = { r: v, g: p, b: q, a };\n break;\n }\n rgb.r = Math.floor(rgb.r * 255);\n rgb.g = Math.floor(rgb.g * 255);\n rgb.b = Math.floor(rgb.b * 255);\n return rgb;\n }\n setGradientPointer(x, y, pointer, wrap, isClient) {\n const { left: wrapX, top: wrapY, width: wrapW, height: wrapH } = getNodeRect(wrap);\n const { height: pointerH, width: pointerW } = getNodeRect(pointer);\n let left;\n let top;\n if (isClient) {\n left = x - wrapX < 0 ? 0 : x - wrapX > wrapW ? wrapW : x - wrapX;\n top = y - wrapY < 0 ? 0 : y - wrapY > wrapH ? wrapH : y - wrapY;\n }\n else {\n left = x;\n top = y;\n }\n pointer.style.left = `${left - pointerH / 2}px`;\n pointer.style.top = `${top - pointerW / 2}px`;\n return { left, top };\n }\n handleGPClick(e) {\n const { gradient, selectPointer, setGradientPointer } = this;\n if (gradient && selectPointer) {\n const { positionToHSV, rgbToHEX, hsvToRGB } = this;\n const { left, top } = setGradientPointer(e.clientX, e.clientY, selectPointer, gradient, true);\n const { height, width } = getNodeRect(gradient);\n const { h, s, v, a: opacity } = positionToHSV(left, top, width, height);\n this.setHSV(undefined, s, v, undefined);\n const { r, g, b, a } = hsvToRGB(h, s, v, opacity);\n const hexColor = rgbToHEX(r, g, b, a);\n this.prepareSetValue(hexColor);\n }\n }\n setHuePointer(x, pointer, wrap, isClient) {\n const { left: wrapX, width: wrapW } = getNodeRect(wrap);\n const { width: pointerW } = getNodeRect(pointer);\n let left;\n if (isClient) {\n left = x - wrapX < 0 ? 0 : x - wrapX > wrapW ? wrapW : x - wrapX;\n }\n else {\n left = x;\n }\n pointer.style.left = `${left - pointerW / 2}px`;\n if (left === wrapW) {\n return { left: 0, wrapW };\n }\n return { left, wrapW };\n }\n handleHueClick(e) {\n const { hue, huePointer, setHuePointer, hsvToRGB, rgbToHEX } = this;\n if (hue && huePointer) {\n const { left, wrapW } = setHuePointer(e.clientX, huePointer, hue, true);\n const h = Math.floor((left / wrapW) * 360);\n const { s, v, a: opacity } = this.HSV;\n this.setHSV(h, undefined, undefined, undefined);\n const { r, g, b, a } = hsvToRGB(h, 1, 1, 1);\n const { r: valueR, g: valueG, b: valueB, a: valueA } = hsvToRGB(h, s, v, opacity);\n const hueColor = rgbToHEX(r, g, b, a);\n const valueColor = rgbToHEX(valueR, valueG, valueB, valueA);\n this.setHueColor(hueColor);\n this.prepareSetValue(valueColor);\n }\n }\n handleGPMouseDown() {\n this.eventManager\n .addEventListener('mousemove', this.handleGPClick)\n .addEventListener('mouseup', this.onGPMouseUp);\n }\n onGPMouseUp() {\n this.eventManager\n .removeEventListener('mousemove', this.handleGPClick)\n .removeEventListener('mouseup', this.onGPMouseUp);\n }\n handleHPMouseDown() {\n this.eventManager\n .addEventListener('mousemove', this.handleHueClick)\n .addEventListener('mouseup', this.onHPMouseUp);\n }\n onHPMouseUp() {\n this.eventManager\n .removeEventListener('mousemove', this.handleHueClick)\n .removeEventListener('mouseup', this.onHPMouseUp);\n }\n handlePopupAnimateAppear() {\n }\n handlePopupAnimateEnd() {\n }\n getPopupStyleFromAlign() {\n return undefined;\n }\n getTriggerIconFont() {\n return 'palette';\n }\n renderLengthInfo() {\n return undefined;\n }\n};\nColorPicker.displayName = 'ColorPicker';\nColorPicker.defaultProps = {\n ...TriggerField.defaultProps,\n suffixCls: 'color-picker',\n clearButton: false,\n};\n__decorate([\n observable\n], ColorPicker.prototype, \"hueColor\", void 0);\n__decorate([\n action\n], ColorPicker.prototype, \"setHueColor\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"setColor\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"positionToHSV\", null);\n__decorate([\n action\n], ColorPicker.prototype, \"hexToRGB\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"setGradientPointer\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"handleGPClick\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"setHuePointer\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"handleHueClick\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"handleGPMouseDown\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"onGPMouseUp\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"handleHPMouseDown\", null);\n__decorate([\n autobind\n], ColorPicker.prototype, \"onHPMouseUp\", null);\nColorPicker = __decorate([\n observer\n], ColorPicker);\nexport default ColorPicker;\n","import Colorpicker from './ColorPicker';\nexport default Colorpicker;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../trigger-field/style';\n","import { __decorate } from \"tslib\";\nimport { Component, } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { action, computed, observable } from 'mobx';\nimport omit from 'lodash/omit';\nimport defer from 'lodash/defer';\nimport noop from 'lodash/noop';\nimport classes from 'component-classes';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport autobind from '../_util/autobind';\nimport { Size } from './enum';\nimport normalizeLanguage from '../_util/normalizeLanguage';\nimport localeContext from '../locale-context';\n/**\n * Code生成器\n */\nconst CodeGen = (function* (start) {\n while (true) {\n yield `anonymous-${++start}`;\n }\n})(1000);\n/* eslint-disable react/no-unused-prop-types */\nexport default class ViewComponent extends Component {\n constructor(props, context) {\n super(props, context);\n this.setCode(props);\n this.setObservableProps(props, context);\n this.prefixCls = getProPrefixCls(props.suffixCls, props.prefixCls);\n }\n get lang() {\n const { lang } = this.observableProps;\n if (lang) {\n return lang;\n }\n return localeContext.locale.lang;\n }\n get disabled() {\n return this.isDisabled();\n }\n setCode(props) {\n this.code = props.code || CodeGen.next().value;\n }\n getMergedClassNames(...props) {\n return classNames(this.getClassName(), this.getWrapperClassNames(), ...props);\n }\n getMergedProps(props = {}) {\n const wrapperProps = this.getWrapperProps(props);\n const otherProps = this.getOtherProps();\n const mergedProps = {\n ...wrapperProps,\n ...otherProps,\n className: classNames(wrapperProps.className, otherProps.className),\n };\n if (wrapperProps.style && otherProps.style) {\n mergedProps.style = { ...wrapperProps.style, ...otherProps.style };\n }\n return mergedProps;\n }\n getObservableProps(props, _context) {\n return {\n lang: props.lang,\n disabled: props.disabled,\n };\n }\n setObservableProps(props, context) {\n this.observableProps = this.getObservableProps(props, context);\n }\n updateObservableProps(props, context) {\n Object.assign(this.observableProps, this.getObservableProps(props, context));\n }\n getOmitPropsKeys() {\n const keys = [\n 'code',\n 'prefixCls',\n 'suffixCls',\n 'className',\n 'elementClassName',\n 'style',\n 'size',\n 'autoFocus',\n 'onFocus',\n 'onBlur',\n 'children',\n 'dataSet',\n ];\n if (this.disabled) {\n return keys.concat([\n 'onClick',\n 'onMouseUp',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n // 'onMouseOver',\n // 'onMouseOut',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n 'onContextMenu',\n ]);\n }\n return keys;\n }\n getOtherProps() {\n const { props, disabled } = this;\n const { tabIndex, lang, style = {} } = props;\n const otherProps = omit(props, this.getOmitPropsKeys());\n if (disabled) {\n if (tabIndex !== undefined) {\n otherProps.tabIndex = -1;\n }\n }\n else {\n otherProps.onFocus = this.handleFocus;\n otherProps.onBlur = this.handleBlur;\n }\n otherProps.ref = this.elementReference;\n otherProps.disabled = disabled;\n otherProps.className = this.getClassName();\n otherProps.style = {};\n if (this.height) {\n otherProps.style.height = this.height;\n }\n else if ('height' in style) {\n otherProps.style.height = style.height;\n }\n if ('minHeight' in style) {\n otherProps.style.minHeight = style.minHeight;\n }\n if ('maxHeight' in style) {\n otherProps.style.maxHeight = style.maxHeight;\n }\n otherProps.lang = normalizeLanguage(lang);\n return otherProps;\n }\n getClassName(...props) {\n const { prefixCls, props: { elementClassName }, } = this;\n return classNames(prefixCls, elementClassName, ...props);\n }\n getWrapperProps(props = {}) {\n const { style, hidden, onMouseEnter, onMouseLeave } = this.props;\n const mergedStyle = props.style || style;\n const wrapperProps = {\n ref: this.wrapperReference,\n className: this.getWrapperClassNames(),\n hidden,\n ...props,\n };\n if (this.disabled) {\n if (!wrapperProps.onMouseEnter) {\n wrapperProps.onMouseEnter = onMouseEnter;\n }\n if (!wrapperProps.onMouseLeave) {\n wrapperProps.onMouseLeave = onMouseLeave;\n }\n }\n if (mergedStyle) {\n wrapperProps.style = omit(mergedStyle, ['height', 'minHeight', 'maxHeight']);\n }\n return wrapperProps;\n }\n getWrapperClassNames(...args) {\n const { prefixCls, props: { className, size }, } = this;\n return classNames(`${prefixCls}-wrapper`, className, {\n [`${prefixCls}-sm`]: size === Size.small,\n [`${prefixCls}-lg`]: size === Size.large,\n [`${prefixCls}-disabled`]: this.disabled,\n [`${prefixCls}-focused`]: this.useFocusedClassName() && this.isFocus,\n }, ...args);\n }\n isDisabled() {\n const { disabled = false } = this.observableProps;\n return disabled;\n }\n useFocusedClassName() {\n return true;\n }\n handleFocus(e) {\n this.isFocused = true;\n this.isFocus = true;\n const { props: { onFocus = noop }, prefixCls, } = this;\n if (this.useFocusedClassName()) {\n const element = this.wrapper || findDOMNode(this);\n if (element) {\n classes(element).add(`${prefixCls}-focused`);\n }\n }\n onFocus(e);\n }\n forceBlur(e) {\n const { props: { onBlur = noop }, } = this;\n onBlur(e);\n }\n handleBlur(e) {\n if (!e.isDefaultPrevented()) {\n const { prefixCls } = this;\n this.forceBlur(e);\n if (!e.isDefaultPrevented()) {\n this.isFocused = false;\n this.isFocus = false;\n if (this.useFocusedClassName()) {\n const element = this.wrapper || findDOMNode(this);\n if (element) {\n classes(element).remove(`${prefixCls}-focused`);\n }\n }\n }\n }\n }\n focus() {\n if (this.element) {\n this.element.focus();\n }\n }\n blur() {\n if (this.element) {\n this.element.blur();\n }\n }\n elementReference(node) {\n this.element = node;\n }\n wrapperReference(node) {\n this.wrapper = node;\n }\n componentWillReceiveProps(nextProps, nextContext) {\n const { code, prefixCls } = this.props;\n const { prefixCls: nextPrefixCls } = nextProps;\n if (prefixCls !== nextPrefixCls) {\n this.prefixCls = getProPrefixCls(nextProps.suffixCls, nextPrefixCls);\n }\n if (nextProps.code !== code) {\n this.setCode(nextProps);\n }\n this.updateObservableProps(nextProps, nextContext);\n }\n componentDidMount() {\n const { tabIndex, autoFocus } = this.props;\n if (autoFocus && (tabIndex === undefined || tabIndex > -1) && !this.disabled) {\n defer(() => this.focus());\n }\n }\n setHeight(height) {\n this.height = height;\n const { element } = this;\n if (element) {\n element.style.height = height;\n }\n }\n}\nViewComponent.propTypes = {\n /**\n * 组件id\n */\n id: PropTypes.string,\n /**\n * 组件大小<未实现>\n * 可选值 `default` `small` `big`\n */\n size: PropTypes.oneOf([Size.small, Size.default, Size.large]),\n /**\n * 样式后缀\n */\n suffixCls: PropTypes.string,\n /**\n * 样式前缀\n */\n prefixCls: PropTypes.string,\n /**\n * 悬浮提示,建议用ToolTip组件\n */\n title: PropTypes.node,\n /**\n * 是否禁用\n */\n disabled: PropTypes.bool,\n /**\n * 是否隐藏\n */\n hidden: PropTypes.bool,\n /**\n * 自动获取焦点,多个组件同时设置该参数时,以节点树的顺序最末的组件获取焦点\n */\n autoFocus: PropTypes.bool,\n /**\n * 快捷键, 通过 Alt + accessKey (或者 Shift + Alt + accessKey) 使组件聚焦\n */\n accessKey: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * 内容的文本方向\n */\n dir: PropTypes.string,\n /**\n * 内容可编辑\n */\n contentEditable: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * 是否可拖动\n */\n draggable: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * 内链样式\n */\n style: PropTypes.object,\n /**\n * 自定义样式名\n */\n className: PropTypes.string,\n /**\n * 键盘Tab键焦点序号,设为-1时不会获得焦点,设为0时为节点树的顺序。\n */\n tabIndex: PropTypes.number,\n /**\n * 语言\n */\n lang: PropTypes.string,\n /**\n * 拼写校验\n */\n spellCheck: PropTypes.bool,\n /**\n * 获取焦点回调\n */\n onFocus: PropTypes.func,\n /**\n * 失去焦点回调\n */\n onBlur: PropTypes.func,\n /**\n * 单击回调\n */\n onClick: PropTypes.func,\n /**\n * 双击回调\n */\n onDoubleClick: PropTypes.func,\n /**\n * 鼠标抬起回调\n */\n onMouseUp: PropTypes.func,\n /**\n * 鼠标点下回调\n */\n onMouseDown: PropTypes.func,\n /**\n * 鼠标移动回调\n */\n onMouseMove: PropTypes.func,\n /**\n * 鼠标进入回调\n */\n onMouseEnter: PropTypes.func,\n /**\n * 鼠标离开回调\n */\n onMouseLeave: PropTypes.func,\n /**\n * 鼠标进入回调,与onMouseEnter区别在于鼠标进入子节点时会触发onMouseOut\n */\n onMouseOver: PropTypes.func,\n /**\n * 鼠标离开回调,与onMouseLeave区别在于子节点的onMouseout会冒泡触发本回调\n */\n onMouseOut: PropTypes.func,\n /**\n * 鼠标右击后的回调\n */\n onContextMenu: PropTypes.func,\n /**\n * 键盘按下时的回调\n */\n onKeyDown: PropTypes.func,\n /**\n * 键盘抬起时的回调\n */\n onKeyUp: PropTypes.func,\n /**\n * 键盘敲击后的回调\n */\n onKeyPress: PropTypes.func,\n};\n__decorate([\n observable\n], ViewComponent.prototype, \"isFocused\", void 0);\n__decorate([\n observable\n], ViewComponent.prototype, \"observableProps\", void 0);\n__decorate([\n computed\n], ViewComponent.prototype, \"lang\", null);\n__decorate([\n computed\n], ViewComponent.prototype, \"disabled\", null);\n__decorate([\n action\n], ViewComponent.prototype, \"setObservableProps\", null);\n__decorate([\n action\n], ViewComponent.prototype, \"updateObservableProps\", null);\n__decorate([\n autobind,\n action\n], ViewComponent.prototype, \"handleFocus\", null);\n__decorate([\n autobind,\n action\n], ViewComponent.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], ViewComponent.prototype, \"elementReference\", null);\n__decorate([\n autobind,\n action\n], ViewComponent.prototype, \"wrapperReference\", null);\n","export { Size } from 'choerodon-ui/lib/_util/enum';\nexport var WaitType;\n(function (WaitType) {\n WaitType[\"throttle\"] = \"throttle\";\n WaitType[\"debounce\"] = \"debounce\";\n})(WaitType || (WaitType = {}));\nexport var Tooltip;\n(function (Tooltip) {\n Tooltip[\"none\"] = \"none\";\n Tooltip[\"always\"] = \"always\";\n Tooltip[\"overflow\"] = \"overflow\";\n})(Tooltip || (Tooltip = {}));\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n","import { __decorate } from \"tslib\";\nimport { observer } from 'mobx-react';\nimport { NumberField } from '../number-field/NumberField';\nimport { FieldType } from '../data-set/enum';\nimport formatCurrency from '../formatter/formatCurrency';\nimport { getCurrencyFormatOptions, getCurrencyFormatter } from '../field/utils';\nlet Currency = class Currency extends NumberField {\n getFieldType() {\n return FieldType.currency;\n }\n getFormatter() {\n return this.getProp('formatter') || getCurrencyFormatter();\n }\n getFormatOptions() {\n return getCurrencyFormatOptions((name) => this.getProp(name), this.lang);\n }\n};\nCurrency.displayName = 'Currency';\nCurrency.format = formatCurrency;\nCurrency = __decorate([\n observer\n], Currency);\nexport default Currency;\n","import Currency from './Currency';\nexport default Currency;\n","// style dependencies\nimport '../../number-field/style';\n","import { __decorate } from \"tslib\";\nimport { action, observable } from 'mobx';\nconst extReg = /(.*)\\.([^.]*)$/;\nexport default class AttachmentFile {\n constructor(file) {\n this.load(file);\n }\n load(file) {\n Object.assign(this, file);\n this.uid = String(file.uid);\n const { name } = file;\n if (name) {\n const matches = name.match(extReg);\n if (matches && matches.length > 2) {\n this.ext = matches[2];\n this.filename = matches[1];\n }\n else {\n this.ext = '';\n this.filename = name;\n }\n }\n }\n}\n__decorate([\n observable\n], AttachmentFile.prototype, \"name\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"size\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"url\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"filename\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"ext\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"status\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"percent\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"error\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"errorMessage\", void 0);\n__decorate([\n observable\n], AttachmentFile.prototype, \"invalid\", void 0);\n__decorate([\n action\n], AttachmentFile.prototype, \"load\", null);\n","import { __decorate } from \"tslib\";\nimport { action, computed, get, isArrayLike, observable, runInAction, set, toJS } from 'mobx';\nimport axiosStatic from 'axios';\nimport unionBy from 'lodash/unionBy';\nimport omit from 'lodash/omit';\nimport flatMap from 'lodash/flatMap';\nimport isNumber from 'lodash/isNumber';\nimport isArray from 'lodash/isArray';\nimport isObject from 'lodash/isObject';\nimport isNil from 'lodash/isNil';\nimport defer from 'lodash/defer';\nimport isString from 'lodash/isString';\nimport isPlainObject from 'lodash/isPlainObject';\nimport debounce from 'lodash/debounce';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport localeContext, { $l } from '../locale-context';\nimport axios from '../axios';\nimport Record from './Record';\nimport Field from './Field';\nimport { adapterDataToJSON, arrayMove, axiosConfigAdapter, checkParentByInsert, concurrentPromise, doExport, exportExcel, findBindFieldBy, findRootParent, fixAxiosConfig, generateData, generateJSONData, generateResponseData, getFieldSorter, getIf, getOrderFields, getSpliceRecord, getSplitValue, getUniqueFieldNames, isDirtyRecord, normalizeGroups, prepareForSubmit, prepareSubmitData, processExportValue, processIntlField, sliceTree, sortTree, treeSelect, treeSelectParent, treeUnSelect, treeUnSelectParent, useAll, useCascade, useSelected, } from './utils';\nimport EventManager from '../_util/EventManager';\nimport DataSetSnapshot from './DataSetSnapshot';\nimport confirm from '../modal/confirm';\nimport { CheckedStrategy, DataSetEvents, DataSetExportStatus, DataSetSelection, DataSetStatus, DataToJSON, ExportMode, FieldType, RecordStatus, SortOrder, } from './enum';\nimport isEmpty from '../_util/isEmpty';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport Transport from './Transport';\nimport PromiseQueue from '../_util/PromiseQueue';\nimport DataSetRequestError from './DataSetRequestError';\nimport defaultFeedback from './FeedBack';\nimport { treeReduce } from '../_util/treeUtils';\nconst ALL_PAGE_SELECTION = '__ALL_PAGE_SELECTION__'; // TODO:Symbol\nconst QUERY_PARAMETER = '__QUERY_PARAMETER__'; // TODO:Symbol\nexport function addDataSetField(dataSet, name, fieldProps = {}) {\n return processIntlField(name, fieldProps, (langName, langProps) => {\n const field = new Field(langProps, dataSet);\n dataSet.fields.set(langName, field);\n return field;\n }, dataSet);\n}\nexport function addRecordField(record, name, fieldProps = {}) {\n const { dataSet } = record;\n fieldProps.name = name;\n return processIntlField(name, fieldProps, (langName, langProps) => {\n const field = new Field(langProps, dataSet, record);\n record.fields.set(langName, field);\n return field;\n }, dataSet);\n}\nexport default class DataSet extends EventManager {\n constructor(props) {\n super();\n this.children = {};\n this.prepareForReport = {};\n this.pending = new PromiseQueue();\n this.performance = { timing: { fetchStart: 0, fetchEnd: 0, loadStart: 0, loadEnd: 0 } };\n this.originalData = [];\n this.resetInBatch = false;\n this.validating = false;\n this.inBatchSelection = false;\n this.syncChildrenRemote = debounce((remoteKeys, current) => {\n const { children } = this;\n remoteKeys.forEach(childName => this.syncChild(children[childName], current, childName));\n }, 300);\n runInAction(() => {\n props = { ...DataSet.defaultProps, ...props };\n this.props = props;\n const { data, fields, queryFields, queryDataSet, autoQuery, autoCreate, pageSize, selection, events, id, name, children, queryParameter = {}, dataToJSON, selectionStrategy, } = props;\n this.name = name;\n this.selectionStrategy = selectionStrategy;\n this.dataToJSON = dataToJSON;\n this.records = [];\n this.state = observable.map();\n this.fields = observable.map();\n this.totalCount = 0;\n this.status = DataSetStatus.ready;\n this.currentPage = 1;\n this.cachedSelected = [];\n this.queryParameter = queryParameter;\n this.pageSize = pageSize;\n this.selection = selection;\n this.processListener();\n if (id) {\n this.id = id;\n }\n if (children) {\n this.initChildren(children);\n }\n if (events) {\n this.initEvents(events);\n }\n if (fields) {\n this.initFields(fields);\n }\n this.initQueryDataSet(queryDataSet, queryFields);\n if (data) {\n const { length } = data;\n if (length) {\n this.loadData(data, length);\n }\n }\n // ssr do not auto query\n if (autoQuery && typeof window !== 'undefined') {\n this.query();\n }\n else if (autoCreate && this.records.length === 0) {\n this.create();\n }\n });\n }\n get queryParameter() {\n const queryParameterMap = this.getState(QUERY_PARAMETER);\n if (queryParameterMap) {\n return queryParameterMap.toPOJO();\n }\n return {};\n }\n set queryParameter(queryParameter) {\n this.setState(QUERY_PARAMETER, observable.map(queryParameter));\n }\n get isAllPageSelection() {\n return this.getState(ALL_PAGE_SELECTION) === true;\n }\n get cascadeRecords() {\n const { parent, parentName } = this;\n if (parent && parentName) {\n return parent.cascadeRecords.reduce((array, record) => array.concat(...(record.getCascadeRecordsIncludeDelete(parentName) || [])), []);\n }\n return this.records;\n }\n get axios() {\n return this.props.axios || getConfig('axios') || axios;\n }\n get dataKey() {\n const { dataKey = getConfig('dataKey') } = this.props;\n return dataKey;\n }\n get totalKey() {\n return this.props.totalKey || getConfig('totalKey');\n }\n get lang() {\n return get(this.props, 'lang') || localeContext.locale.lang;\n }\n set lang(lang) {\n runInAction(() => {\n set(this.props, 'lang', lang);\n });\n }\n get queryDataSet() {\n return get(this.props, 'queryDataSet');\n }\n /**\n * 设置查询的DataSet.\n * @param {DataSet} ds DataSet.\n */\n set queryDataSet(ds) {\n runInAction(() => {\n set(this.props, 'queryDataSet', ds);\n if (ds) {\n // 初始化时如果直接执行create,mobx会报错,所以使用了defer\n ds.pending.add(new Promise(reslove => {\n defer(() => {\n if (ds.records.length === 0) {\n ds.create();\n }\n else if (!ds.current) {\n ds.first();\n }\n reslove();\n });\n }));\n }\n });\n }\n get queryUrl() {\n return get(this.props, 'queryUrl') || (this.name && `/dataset/${this.name}/queries`);\n }\n /**\n * 设置提交的Url.\n * @param {String} url 提交的Url.\n */\n set queryUrl(url) {\n runInAction(() => {\n set(this.props, 'queryUrl', url);\n });\n }\n get submitUrl() {\n return get(this.props, 'submitUrl') || (this.name && `/dataset/${this.name}/mutations`);\n }\n /**\n * 设置查询的Url.\n * @param {String} url 查询的Url.\n */\n set submitUrl(url) {\n runInAction(() => {\n set(this.props, 'submitUrl', url);\n });\n }\n get tlsUrl() {\n return get(this.props, 'tlsUrl') || (this.name && `/dataset/${this.name}/languages`);\n }\n /**\n * 设置多语言的Url.\n * @param {String} url 多语言的Url.\n */\n set tlsUrl(url) {\n runInAction(() => {\n set(this.props, 'tlsUrl', url);\n });\n }\n get validateUrl() {\n return get(this.props, 'validateUrl') || (this.name && `/dataset/${this.name}/validate`);\n }\n /**\n * 设置远程校验查询请求的url.\n * @param {String} url 远程校验查询请求的url.\n */\n set validateUrl(url) {\n runInAction(() => {\n set(this.props, 'validateUrl', url);\n });\n }\n get exportUrl() {\n return get(this.props, 'exportUrl') || (this.name && `/dataset/${this.name}/export`);\n }\n /**\n * 设置导出请求的url.\n * @param {String} url 远程校验查询请求的url.\n */\n set exportUrl(url) {\n runInAction(() => {\n set(this.props, 'exportUrl', url);\n });\n }\n /**\n * 服务端导出还是客户端导出\n */\n get exportMode() {\n return this.props.exportMode || getConfig('exportMode') || ExportMode.server;\n }\n set transport(transport) {\n runInAction(() => {\n this.props.transport = transport instanceof Transport ? transport.props : transport;\n });\n }\n get transport() {\n return new Transport(this.props.transport, this);\n }\n get feedback() {\n return {\n ...getConfig('feedback'),\n ...this.props.feedback,\n };\n }\n get data() {\n return this.records.filter(record => !record.isRemoved);\n }\n set data(records) {\n this.loadData(records);\n }\n get dirtyRecords() {\n const created = [];\n const updated = [];\n const destroyed = [];\n this.all.forEach(record => {\n switch (record.status) {\n case RecordStatus.add:\n created.push(record);\n break;\n case RecordStatus.update:\n updated.push(record);\n break;\n case RecordStatus.delete:\n destroyed.push(record);\n break;\n default: {\n if (record.dirty) {\n updated.push(record);\n }\n }\n }\n });\n return [created, updated, destroyed];\n }\n /**\n * 获取新建的记录集\n * @return 记录集\n */\n get created() {\n return this.dirtyRecords[0];\n }\n /**\n * 获取变更的记录集\n * @return 记录集\n */\n get updated() {\n return this.dirtyRecords[1];\n }\n /**\n * 获取删除的记录集\n * @return 记录集\n */\n get destroyed() {\n return this.dirtyRecords[2];\n }\n /**\n * 获取选中的记录集\n * @return 记录集\n */\n get selected() {\n return this.currentSelected.concat(this.cachedSelected.filter(record => record.isSelected));\n }\n /**\n * 获取未选中的记录集, 在 isAllPageSelection 为 true 时有效\n * @return 记录集\n */\n get unSelected() {\n return this.currentUnSelected.concat(this.cachedSelected.filter(record => !record.isSelected));\n }\n get currentSelected() {\n return this.records.filter(record => record.isSelected);\n }\n get currentUnSelected() {\n return this.records.filter(record => !record.isSelected);\n }\n get treeSelected() {\n const { selected, selectionStrategy } = this;\n if (selectionStrategy === CheckedStrategy.SHOW_CHILD) {\n return selected.filter((record) => !record.children);\n }\n if (selectionStrategy === CheckedStrategy.SHOW_PARENT) {\n return selected.filter((record) => {\n const { parent } = record;\n return !parent || parent.isSelectionIndeterminate ? !record.isSelectionIndeterminate : false;\n });\n }\n return selected.filter(record => !record.isSelectionIndeterminate);\n }\n get totalPage() {\n return this.paging ? Math.ceil(this.totalCount / this.pageSize) : 1;\n }\n // 如果paging为server 返回root父节点的排序\n get currentIndex() {\n const { current, pageSize, currentPage } = this;\n if (current) {\n const index = this.indexOf(current);\n if (index !== -1) {\n if (this.paging === 'server') {\n const currentParent = findRootParent(current);\n return this.treeData.findIndex((item) => item.index === currentParent.index);\n }\n return index + (currentPage - 1) * pageSize;\n }\n }\n return -1;\n }\n set currentIndex(index) {\n this.locate(index);\n }\n /**\n * 记录数\n */\n get length() {\n return this.data.length;\n }\n get hasChildren() {\n return Object.keys(this.children).length > 0;\n }\n get treeRecords() {\n return sortTree(this.records.filter(record => !record.parent), getOrderFields(this.fields)[0]);\n }\n get treeData() {\n return sortTree(this.filter(record => !record.parent), getOrderFields(this.fields)[0]);\n }\n get paging() {\n const { idField, parentField, childrenField, paging } = this.props;\n return (paging === `server`) && ((parentField && idField) || childrenField) ? paging : (parentField === undefined || idField === undefined) && childrenField === undefined && !!paging;\n }\n get groups() {\n return [...this.fields.entries()]\n .reduce((arr, [name, field]) => {\n const group = field.get('group');\n if (isNumber(group)) {\n arr[group] = name;\n }\n else if (group === true && !arr[0]) {\n arr[0] = name;\n }\n return arr;\n }, [])\n .filter(group => group !== undefined);\n }\n get groupedRecords() {\n const { groups, records } = this;\n return normalizeGroups(groups, records);\n }\n get groupedTreeRecords() {\n const { groups, treeRecords } = this;\n return normalizeGroups(groups, treeRecords);\n }\n set paging(paging) {\n runInAction(() => {\n this.props.paging = paging;\n });\n }\n /**\n * 获取当前索引的记录\n * @return record 记录\n */\n get current() {\n return this.data.find(record => record.isCurrent) || this.cachedSelected.find(record => record.isCurrent);\n }\n /**\n * 将记录设定为当前索引\n * @param record 记录\n */\n set current(record) {\n const currentRecord = this.current;\n if (currentRecord !== record && (!record || !record.isCached)) {\n runInAction(() => {\n if (currentRecord) {\n currentRecord.isCurrent = false;\n }\n if (record && record.dataSet === this) {\n record.isCurrent = true;\n }\n this.fireEvent(DataSetEvents.indexChange, {\n dataSet: this,\n record,\n previous: currentRecord,\n });\n });\n }\n }\n get uniqueKeys() {\n const { primaryKey } = this.props;\n if (primaryKey) {\n return [primaryKey];\n }\n const keys = getUniqueFieldNames(this);\n if (keys.length) {\n return keys;\n }\n return undefined;\n }\n get cacheSelectionKeys() {\n const { cacheSelection, selection } = this.props;\n if (cacheSelection && selection === DataSetSelection.multiple) {\n return this.uniqueKeys;\n }\n return undefined;\n }\n /**\n * 获取所有记录包括缓存的选择记录\n * @param index 索引\n * @returns {Record}\n */\n get all() {\n if (this.isAllPageSelection) {\n return this.records;\n }\n return this.records.concat(this.cachedSelected.slice());\n }\n get dirty() {\n return this.records.some(isDirtyRecord);\n }\n processListener() {\n this.addEventListener(DataSetEvents.indexChange, this.handleCascade);\n }\n destroy() {\n this.clear();\n }\n setState(item, value) {\n if (isString(item)) {\n this.state.set(item, value);\n }\n else if (isPlainObject(item)) {\n this.state.merge(item);\n }\n return this;\n }\n getState(key) {\n return this.state.get(key);\n }\n snapshot() {\n return new DataSetSnapshot(this);\n }\n restore(snapshot) {\n if (snapshot.dataSet !== this) {\n this.events = {};\n }\n else if (snapshot.events) {\n this.events = snapshot.events;\n }\n this.records = snapshot.records;\n this.originalData = snapshot.originalData;\n this.totalCount = snapshot.totalCount;\n this.currentPage = snapshot.currentPage;\n this.pageSize = snapshot.pageSize;\n this.cachedSelected = snapshot.cachedSelected;\n this.dataToJSON = snapshot.dataToJSON;\n this.children = snapshot.children;\n this.current = snapshot.current;\n return this;\n }\n setAllPageSelection(enable) {\n if (this.selection === DataSetSelection.multiple) {\n if (enable) {\n this.currentSelected.forEach(record => record.isSelected = false);\n }\n else {\n this.currentUnSelected.forEach(record => record.isSelected = true);\n }\n this.clearCachedSelected();\n this.setState(ALL_PAGE_SELECTION, enable);\n if (enable) {\n this.records.forEach((record) => {\n if (!record.selectable) {\n record.isSelected = false;\n }\n });\n }\n }\n }\n toData() {\n return generateData(this.records).data;\n }\n /**\n * 对应参数后续会废弃\n * @param isSelected\n * @param noCascade\n */\n toJSONData(isSelected, noCascade) {\n const dataToJSON = adapterDataToJSON(isSelected, noCascade) || this.dataToJSON;\n const records = useSelected(dataToJSON) ? this.selected : this.records;\n return generateJSONData(this, records).data;\n }\n /**\n * 等待选中或者所有记录准备就绪\n * @returns Promise\n */\n ready(_isSelect) {\n // return Promise.all([\n // this.pending.ready(),\n // ...(isSelect || useSelected(this.dataToJSON) ? this.selected : this.data).map(record =>\n // record.ready(),\n // ),\n // ...[...this.fields.values()].map(field => field.ready()),\n // ]);\n return this.pending.ready();\n }\n /**\n * 查询记录\n * @param page 页码\n * @param params 查询参数\n * @return Promise\n */\n query(page, params) {\n return this.pending.add(this.doQuery(page, params));\n }\n /**\n * 查询更多记录,查询到的结果会拼接到原有数据之后\n * @param page 页码\n * @param params 查询参数\n * @return Promise\n */\n queryMore(page, params) {\n return this.pending.add(this.doQueryMore(page, params));\n }\n queryMoreChild(parent, page, params = {}) {\n const { idField, parentField } = this.props;\n if (idField && parentField && !parent.children) {\n const id = parent.get(idField);\n if (!isEmpty(id)) {\n if (parentField) {\n params[parentField] = id;\n }\n return this.pending.add(this.doQueryMoreChild(parent, page, { ...params, [parentField]: id }));\n }\n }\n return Promise.resolve();\n }\n async doQuery(page, params) {\n const data = await this.read(page, params);\n this.loadDataFromResponse(data);\n return data;\n }\n async doQueryMore(page, params) {\n const data = await this.read(page, params);\n this.appendDataFromResponse(data);\n return data;\n }\n async doQueryMoreChild(parent, page, params) {\n const data = await this.read(page, params);\n this.appendDataFromResponse(data, parent);\n return data;\n }\n /**\n * TODO 参数废弃\n * 将数据集中的增删改的记录进行远程提交\n * @param isSelect 如果为true,则只提交选中记录\n * @param noCascade 如果为true,则不提交级联数据\n * @return Promise\n */\n async submit(isSelect, noCascade) {\n const dataToJSON = adapterDataToJSON(isSelect, noCascade) || this.dataToJSON;\n await this.ready();\n if (await this.validate()) {\n return this.pending.add(this.write(useSelected(dataToJSON) ? this.selected : this.records));\n }\n return false;\n }\n /**\n * 导出数据\n * @param object columns 导出的列\n * @param number exportQuantity 导出数量\n */\n async export(columns = {}, exportQuantity = 0) {\n if (this.checkReadable(this.parent) && (await this.ready())) {\n const data = await this.generateQueryParameter();\n data._HAP_EXCEL_EXPORT_COLUMNS = columns;\n const { totalCount, totalKey } = this;\n const params = { _r: Date.now(), ...this.generateOrderQueryString() };\n ObjectChainValue.set(params, totalKey, totalCount);\n const newConfig = axiosConfigAdapter('exports', this, data, params);\n if (newConfig.url || this.exportMode === ExportMode.client) {\n if ((await this.fireEvent(DataSetEvents.export, {\n dataSet: this,\n params: newConfig.params,\n data: newConfig.data,\n })) !== false) {\n const ExportQuantity = exportQuantity > 1000 ? 1000 : exportQuantity;\n if (this.exportMode !== ExportMode.client) {\n doExport(this.axios.getUri(newConfig), newConfig.data, newConfig.method);\n }\n return this.doClientExport(data, ExportQuantity, false);\n }\n }\n else {\n warning(false, 'Unable to execute the export method of dataset, please check the ');\n }\n }\n }\n /**\n * 可以把json数组通过ds配置转化成可以直接浏览的数据信息\n * @param result 需要转化内容\n * @param columnsExport 表头信息\n */\n displayDataTransform(result, columnsExport) {\n const newResult = [];\n if (result && result.length > 0) {\n // check: 这里做性能优化去掉实例化为record 从demo来看没啥问题\n // toJS(this.processData(result)).map((item) => item.data);\n const processData = result;\n processData.forEach((itemValue) => {\n const dataItem = {};\n const columnsExportkeys = Object.keys(columnsExport);\n for (let i = 0; i < columnsExportkeys.length; i += 1) {\n const firstRecord = this.records[0] || this;\n const exportField = firstRecord.getField(columnsExportkeys[i]);\n let processItemValue = getSplitValue(toJS(itemValue), columnsExportkeys[i]);\n // 处理bind 情况 没有需要链式bind 没有处理反向bind 后面可能根据需求增加\n if (exportField && isNil(processItemValue) && exportField.get('bind')) {\n processItemValue = getSplitValue(getSplitValue(toJS(itemValue), exportField.get('bind')), columnsExportkeys[i], false);\n }\n dataItem[columnsExportkeys[i]] = processExportValue(processItemValue, exportField);\n }\n newResult.push(dataItem);\n });\n }\n return newResult;\n }\n /**\n * 客户端导出方法\n * @param data 表头数据\n * @param quantity 输入一次导出数量\n * @param isFile 是否导出为文件\n */\n async doClientExport(data, quantity, isFile = true) {\n const columnsExport = data._HAP_EXCEL_EXPORT_COLUMNS;\n delete data._HAP_EXCEL_EXPORT_COLUMNS;\n const { totalCount } = this;\n runInAction(() => {\n this.exportProgress = 0;\n this.exportStatus = DataSetExportStatus.start;\n });\n let newResult = [];\n if (totalCount > 0) {\n const queryTime = Math.ceil(totalCount / quantity);\n // 处理超并发问题 在超大数据量下一口气发出了几千个请求造成数据丢失\n const queryExportList = [];\n runInAction(() => {\n this.exportStatus = DataSetExportStatus.exporting;\n });\n for (let i = 0; i < queryTime; i++) {\n const params = { ...this.generateQueryString(1 + i, quantity) };\n const newConfig = axiosConfigAdapter('read', this, data, params);\n queryExportList.push({\n getPromise: () => this.axios(newConfig),\n });\n }\n return concurrentPromise(queryExportList, (currentPromiseIndex) => {\n // 下面还有一段处理所以设置最大值为99\n runInAction(() => {\n this.exportProgress = Math.min(99, Math.floor(currentPromiseIndex / queryExportList.length * 100));\n });\n return this.exportStatus === undefined;\n }).then((resultValue) => {\n const reducer = (accumulator, currentValue) => [...accumulator, ...currentValue];\n const todataList = (item) => item ? item[this.dataKey] : [];\n runInAction(() => {\n this.exportStatus = DataSetExportStatus.progressing;\n });\n const exportAlldate = resultValue.map(todataList).reduce(reducer);\n newResult = this.displayDataTransform(exportAlldate, columnsExport);\n newResult.unshift(columnsExport);\n runInAction(() => {\n this.exportStatus = DataSetExportStatus.success;\n });\n if (isFile) {\n exportExcel(newResult, this.name);\n }\n else {\n return newResult;\n }\n }).catch((err) => {\n console.warn(err);\n runInAction(() => {\n this.exportStatus = DataSetExportStatus.failed;\n this.exportProgress = 0;\n });\n });\n }\n }\n /**\n * 重置更改\n */\n reset() {\n this.resetInBatch = true;\n try {\n this.records = this.originalData.map(record => record.reset());\n }\n finally {\n this.resetInBatch = false;\n }\n if (this.props.autoCreate && this.records.length === 0) {\n this.create();\n }\n this.fireEvent(DataSetEvents.reset, { dataSet: this, records: this.records });\n return this;\n }\n /**\n * 定位到指定页码,如果paging为true或`server`,则做远程查询,约定当为Tree 状态的server时候 跳转到下一页也就是index为当前的index加上1\n * @param page 页码\n * @return Promise\n */\n page(page) {\n if (page > 0 && this.paging) {\n return this.locate((page - 1) * this.pageSize + (page > this.currentPage ? this.created.length - this.destroyed.length : 0));\n }\n warning(page > 0, 'Page number is incorrect.');\n warning(!!this.paging, 'Can not paging query util the property<paging> of DataSet is true or `server`.');\n return Promise.resolve();\n }\n /**\n * 变更检查,当有变更时会弹确认框\n * @param message 提示信息或者是confirm的参数\n * @return Promise\n */\n modifiedCheck(message) {\n const { modifiedCheck, modifiedCheckMessage } = this.props;\n if (!modifiedCheck || !this.dirty) {\n return Promise.resolve(true);\n }\n return confirm(message || modifiedCheckMessage || $l('DataSet', 'unsaved_data_confirm'))\n .then(result => result !== 'cancel');\n }\n /**\n * 定位记录\n * @param index 索引\n * @return Promise\n */\n async locate(index) {\n const { paging, pageSize, totalCount } = this;\n const { autoLocateFirst } = this.props;\n let currentRecord = this.findInAllPage(index);\n if (currentRecord) {\n this.current = currentRecord;\n return currentRecord;\n }\n if (paging === true || paging === 'server') {\n if (index >= 0 && index < totalCount + this.created.length - this.destroyed.length) {\n if (await this.modifiedCheck()) {\n await this.query(Math.floor(index / pageSize) + 1);\n currentRecord = this.findInAllPage(index);\n if (currentRecord) {\n this.current = autoLocateFirst ? currentRecord : undefined;\n return currentRecord;\n }\n }\n }\n }\n warning(false, 'Located index of Record is out of boundary.');\n return Promise.resolve(undefined);\n }\n /**\n * 定位到第一条记录\n * @return Promise\n */\n first() {\n return this.locate(0);\n }\n /**\n * 定位到最后一条记录\n * @return Promise\n */\n last() {\n return this.locate((this.paging ? this.totalCount : this.length) - 1);\n }\n /**\n * 定位到当前记录的上一条记录\n * 若当前页中当前记录为第一条记录且有上一页,则会查询上一页并定位到上一页的最后一条记录\n * @return Promise\n */\n pre() {\n return this.locate(this.currentIndex - 1);\n }\n /**\n * 定位到当前记录的下一条记录\n * 若当前页中当前记录为最后一条记录且有下一页,则会查询下一页并定位到下一页的第一条记录\n * @return Promise\n */\n next() {\n return this.locate(this.currentIndex + 1);\n }\n /**\n * 定位到首页\n * @return Promise\n */\n firstPage() {\n return this.page(1);\n }\n /**\n * 定位到上一页\n * @return Promise\n */\n prePage() {\n return this.page(this.currentPage - 1);\n }\n /**\n * 定位到下一页\n * @return Promise\n */\n nextPage() {\n return this.page(this.currentPage + 1);\n }\n /**\n * 定位到尾页\n * @return Promise\n */\n lastPage() {\n return this.page(this.totalPage);\n }\n /**\n * 创建一条记录\n * @param data 数据对象\n * @param dataIndex 记录所在的索引\n * @return 新建的记录\n */\n create(data = {}, dataIndex) {\n if (data === null) {\n data = {};\n }\n const record = new Record(data, this);\n const objectFieldsList = [];\n const normalFields = [];\n [...record.fields.entries()].forEach(([name, field]) => {\n const fieldDefaultValue = field.get('defaultValue');\n const multiple = field.get('multiple');\n const defaultValue = multiple && isNil(fieldDefaultValue) ? [] : fieldDefaultValue;\n if (!isNil(defaultValue) && isNil(record.get(name))) {\n const type = field.get('type');\n if (type === FieldType.object) {\n const level = name.split('.').length - 1;\n objectFieldsList[level] = (objectFieldsList[level] || []).concat([[name, defaultValue]]);\n }\n else {\n normalFields.push([name, defaultValue]);\n }\n }\n });\n [...objectFieldsList, normalFields].forEach((items) => {\n if (items) {\n items.forEach(([name, defaultValue]) => record.init(name, toJS(defaultValue)));\n }\n });\n if (isNumber(dataIndex)) {\n this.splice(dataIndex, 0, record);\n }\n else {\n this.push(record);\n }\n if (this.props.autoLocateAfterCreate) {\n this.current = record;\n }\n this.fireEvent(DataSetEvents.create, { dataSet: this, record });\n return record;\n }\n /**\n * 立即删除记录\n * @param records 记录或者记录数组,默认当前记录\n * @param confirmMessage 提示信息或弹窗的属性\n * @return Promise\n */\n async delete(records, confirmMessage) {\n if (records) {\n records = [].concat(records);\n if (records.length > 0 &&\n (await this.fireEvent(DataSetEvents.beforeDelete, { dataSet: this, records })) !== false &&\n (confirmMessage === false || (await confirm(confirmMessage && confirmMessage !== true ? confirmMessage : $l('DataSet', 'delete_selected_row_confirm'))) !== 'cancel')) {\n this.remove(records, false);\n const res = await this.pending.add(this.write(this.destroyed, true));\n // 处理自动定位\n const { current } = this;\n if (current) {\n let record;\n if (this.props.autoLocateAfterRemove) {\n record = this.get(0);\n if (record) {\n runInAction(() => {\n record.isCurrent = true;\n });\n }\n }\n if (current !== record) {\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record, previous: current });\n }\n }\n return res;\n }\n }\n }\n /**\n * 临时删除记录\n * @param records 记录或者记录数组\n * @param locate 是否需要进行定位操作\n */\n remove(records, locate) {\n if (records) {\n const data = isArrayLike(records) ? records.slice() : [records];\n if (data.length && this.fireEventSync(DataSetEvents.beforeRemove, { dataSet: this, records: data }) !== false) {\n const { current } = this;\n data.forEach(this.deleteRecord, this);\n this.fireEvent(DataSetEvents.remove, { dataSet: this, records: data });\n if (!this.current) {\n let record;\n if (locate !== false && this.props.autoLocateAfterRemove) {\n record = this.get(0);\n if (record) {\n record.isCurrent = true;\n }\n }\n if (locate !== false && current !== record) {\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record, previous: current });\n }\n }\n }\n }\n }\n /**\n * 临时删除所有记录\n */\n removeAll() {\n const { current, data } = this;\n if (data.length) {\n data.forEach(this.deleteRecord, this);\n this.fireEvent(DataSetEvents.remove, { dataSet: this, records: data });\n if (current) {\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, previous: current });\n }\n }\n }\n /**\n * 删除所有记录\n * @param confirmMessage 提示信息或弹窗的属性\n */\n async deleteAll(confirmMessage) {\n if (this.records.length > 0 &&\n (confirmMessage === false || (await confirm(confirmMessage && confirmMessage !== true ? confirmMessage : $l('DataSet', 'delete_all_row_confirm'))) !== 'cancel')) {\n this.removeAll();\n return this.pending.add(this.write(this.destroyed, true));\n }\n }\n /**\n * 将若干数据记录插入记录堆栈顶部\n * @param records 数据集\n * @return 堆栈数量\n */\n push(...records) {\n checkParentByInsert(this);\n return this.records.push(...this.transferRecords(records));\n }\n /**\n * 将若干数据记录插入记录堆栈底部\n * @param records 数据集\n * @return 堆栈数量\n */\n unshift(...records) {\n checkParentByInsert(this);\n return this.records.unshift(...this.transferRecords(records));\n }\n /**\n * 从记录堆栈顶部获取记录\n * @return 记录\n */\n pop() {\n return this.deleteRecord(this.data.pop());\n }\n /**\n * 从记录堆栈底部获取记录\n * @return 记录\n */\n shift() {\n return this.deleteRecord(this.data.shift());\n }\n /**\n * 删除指定索引的若干记录,并可插入若干新记录\n * @param from 索引开始的位置\n * @default 0\n * @param deleteCount 删除的数量\n * @default 0\n * @param records 插入的若干新记录\n * @return 被删除的记录集\n */\n splice(from, deleteCount, ...items) {\n const fromRecord = this.get(from);\n const deleted = this.slice(from, from + deleteCount).map(this.deleteRecord, this);\n if (items.length) {\n checkParentByInsert(this);\n const { records } = this;\n const spliceRecord = getSpliceRecord(records, items, fromRecord);\n const transformedRecords = this.transferRecords(items);\n if (spliceRecord) {\n records.splice(records.indexOf(spliceRecord), 0, ...transformedRecords);\n }\n else {\n records.push(...transformedRecords);\n }\n }\n return deleted;\n }\n /**\n * 切换记录的顺序\n */\n move(from, to) {\n arrayMove(this.records, from, to);\n }\n /**\n * 截取指定索引范围的记录集,不改变原记录堆栈\n * @param start 开始索引\n * @default 0\n * @param end 结束索引\n * @default 记录堆栈长度\n * @return 被删除的记录集\n */\n slice(start = 0, end = this.length) {\n return this.data.slice(start, end);\n }\n /**\n * 获取记录所在的索引\n * @param record 记录\n * @param fromIndex 开始检索的索引\n * @return 索引\n */\n indexOf(record, fromIndex) {\n return this.data.indexOf(record, fromIndex);\n }\n /**\n * 根据函数查找记录\n * @param fn 查询函数\n * @returns 记录\n */\n find(fn) {\n return this.data.find(fn);\n }\n /**\n * 根据函数查找记录所在的索引\n * @param fn 查询函数\n * @returns 索引\n */\n findIndex(fn) {\n return this.data.findIndex(fn);\n }\n /**\n * 根据函数遍历\n * @param fn 遍历函数\n * @param thisArg this对象\n */\n forEach(fn, thisArg) {\n this.data.forEach(fn, thisArg);\n }\n /**\n * 根据函数遍历并输出新数组\n * @param fn 遍历函数\n * @param thisArg this对象\n * @returns 输出新数组\n */\n map(fn, thisArg) {\n return this.data.map(fn, thisArg);\n }\n /**\n * 根据函数遍历,当有返回值为true时,输出true\n * @param fn 遍历函数\n * @param thisArg this对象\n * @returns boolean\n */\n some(fn, thisArg) {\n return this.data.some(fn, thisArg);\n }\n /**\n * 根据函数遍历,当有返回值为false时,输出false\n * @param fn 遍历函数\n * @param thisArg this对象\n * @returns boolean\n */\n every(fn, thisArg) {\n return this.data.every(fn, thisArg);\n }\n /**\n * 根据函数过滤并返回记录集\n * @param fn 过滤函数\n * @param thisArg this对象\n * @returns {Record[]}\n */\n filter(fn, thisArg) {\n return this.data.filter(fn, thisArg);\n }\n /**\n * 为数组中的所有元素调用指定的回调函数。 回调函数的返回值是累计结果,并在下次调用回调函数时作为参数提供。\n * @param fn 累计函数\n * @param initialValue 初始值\n * @returns {U}\n */\n reduce(fn, initialValue) {\n return this.data.reduce(fn, initialValue);\n }\n /**\n * 按降序调用数组中所有元素的指定回调函数。 回调函数的返回值是累计结果,并在下次调用回调函数时作为参数提供。\n * @param fn 累计函数\n * @param initialValue 初始值\n * @returns {U}\n */\n reduceRight(fn, initialValue) {\n return this.data.reduceRight(fn, initialValue);\n }\n /**\n * 反转记录的顺序。\n */\n reverse() {\n return (this.records = this.records.reverse());\n }\n /**\n * 服务端排序\n *\n * @param fieldName\n */\n sort(fieldName) {\n const { combineSort } = this.props;\n const field = this.getField(fieldName);\n if (field) {\n const currents = getOrderFields(this.fields);\n if (!combineSort) {\n currents.forEach(current => {\n if (current !== field) {\n current.order = undefined;\n }\n });\n }\n switch (field.order) {\n case SortOrder.asc:\n field.order = SortOrder.desc;\n break;\n case SortOrder.desc:\n field.order = undefined;\n break;\n default:\n field.order = SortOrder.asc;\n }\n if (this.paging || !field.order) {\n this.query();\n }\n else {\n this.records = this.records.sort(getFieldSorter(field));\n }\n }\n }\n /**\n * 选中记录\n * @param recordOrIndex 记录或记录索引\n */\n select(recordOrIndex) {\n const { selection } = this;\n if (selection) {\n let record = recordOrIndex;\n if (isNumber(recordOrIndex)) {\n record = this.get(recordOrIndex);\n }\n if (record && record.selectable && !record.isSelected) {\n let previous;\n if (selection === DataSetSelection.single) {\n this.selected.forEach((selected) => {\n selected.isSelected = false;\n previous = selected;\n });\n }\n record.isSelected = true;\n if (!this.inBatchSelection) {\n if (this.isAllPageSelection) {\n const cachedIndex = this.cachedSelected.indexOf(record);\n if (cachedIndex !== -1) {\n this.cachedSelected.splice(cachedIndex, 1);\n }\n }\n this.fireEvent(DataSetEvents.select, { dataSet: this, record, previous });\n this.fireEvent(DataSetEvents.batchSelect, { dataSet: this, records: [record] });\n }\n }\n }\n }\n /**\n * 取消选中记录\n * @param recordOrIndex 记录或记录索引\n */\n unSelect(recordOrIndex) {\n if (this.selection) {\n let record = recordOrIndex;\n if (isNumber(recordOrIndex)) {\n record = this.get(recordOrIndex);\n }\n if (record && record.selectable && record.isSelected) {\n record.isSelected = false;\n if (!this.inBatchSelection) {\n if (!this.isAllPageSelection) {\n const cachedIndex = this.cachedSelected.indexOf(record);\n if (cachedIndex !== -1) {\n this.cachedSelected.splice(cachedIndex, 1);\n }\n }\n this.fireEvent(DataSetEvents.unSelect, { dataSet: this, record });\n this.fireEvent(DataSetEvents.batchUnSelect, { dataSet: this, records: [record] });\n }\n }\n }\n }\n /**\n * 全选\n */\n selectAll(filter) {\n const { selection } = this;\n if (selection) {\n this.inBatchSelection = true;\n try {\n const records = [];\n if (selection === DataSetSelection.single) {\n if (!this.currentSelected.length) {\n const record = filter ? this.filter(filter)[0] : this.get(0);\n if (record) {\n this.select(record);\n records.push(record);\n }\n }\n }\n else {\n this.records.forEach(record => {\n if (!filter || filter(record) !== false) {\n this.select(record);\n records.push(record);\n }\n });\n }\n this.fireEvent(DataSetEvents.selectAll, { dataSet: this, records });\n this.fireEvent(DataSetEvents.batchSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n /**\n * 取消全选\n */\n unSelectAll() {\n if (this.selection) {\n this.inBatchSelection = true;\n try {\n const records = [];\n this.currentSelected.forEach(record => {\n this.unSelect(record);\n records.push(record);\n });\n this.fireEvent(DataSetEvents.unSelectAll, { dataSet: this, records });\n this.fireEvent(DataSetEvents.batchUnSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n /**\n * 批量勾选\n */\n batchSelect(recordOrId) {\n const { selection } = this;\n if (selection) {\n const records = recordOrId.reduce((list, r) => {\n let record = r;\n if (isNumber(r)) {\n record = this.findRecordById(r);\n }\n if (record && record.selectable && !record.isSelected) {\n list.push(record);\n }\n return list;\n }, []);\n if (records.length) {\n this.inBatchSelection = true;\n try {\n if (selection === DataSetSelection.single) {\n if (!this.currentSelected.length) {\n this.select(records[0]);\n }\n }\n else {\n records.forEach((record) => {\n if (record.selectable) {\n this.select(record);\n }\n });\n }\n this.fireEvent(DataSetEvents.batchSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n }\n /**\n * 批量取消勾选\n */\n batchUnSelect(recordOrId) {\n const { selection } = this;\n if (selection) {\n this.inBatchSelection = true;\n try {\n const records = recordOrId.reduce((list, r) => {\n let record = r;\n if (isNumber(r)) {\n record = this.findRecordById(r);\n }\n if (record && record.selectable && record.isSelected) {\n this.unSelect(record);\n list.push(record);\n }\n return list;\n }, []);\n this.fireEvent(DataSetEvents.batchUnSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n treeSelect(record) {\n const { selection } = this;\n if (selection && selection === DataSetSelection.multiple) {\n this.inBatchSelection = true;\n try {\n const records = [];\n treeSelect(this, record, records);\n treeSelectParent(this, record, records);\n this.fireEvent(DataSetEvents.batchSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n treeUnSelect(record) {\n const { selection } = this;\n if (selection && selection === DataSetSelection.multiple) {\n this.inBatchSelection = true;\n try {\n const records = [];\n treeUnSelect(this, record, records);\n treeUnSelectParent(this, record, records);\n this.fireEvent(DataSetEvents.batchUnSelect, { dataSet: this, records });\n }\n finally {\n this.inBatchSelection = false;\n }\n }\n }\n clearCachedSelected() {\n this.setCachedSelected([]);\n }\n setCachedSelected(cachedSelected) {\n this.cachedSelected = cachedSelected;\n const { selectionStrategy } = this;\n if (selectionStrategy === CheckedStrategy.SHOW_PARENT) {\n cachedSelected.forEach(record => treeSelect(this, record, []));\n }\n else if (selectionStrategy === CheckedStrategy.SHOW_CHILD) {\n cachedSelected.forEach(record => treeSelectParent(this, record, []));\n }\n }\n /**\n * 获取指定索引的记录\n * @param index 索引\n * @returns {Record}\n */\n get(index) {\n const { data } = this;\n return data.length ? data[index] : undefined;\n }\n /**\n * 从树形数据中获取指定索引的根节点记录\n * @param index 索引\n * @returns {Record}\n */\n getFromTree(index) {\n const { treeData } = this;\n return treeData.length ? treeData[index] : undefined;\n }\n /**\n * 判断是否有新增、变更或者删除的记录\n * @deprecated\n * @return true | false\n */\n isModified() {\n return this.dirty;\n }\n /**\n * 获取指定分页的记录集\n * @param page 如果page为空或者paging为server,则获取当前分页的记录集\n * @return 记录集\n */\n /**\n * 根据记录ID查找记录\n * @param id 记录ID\n * @return 记录\n */\n findRecordById(id) {\n if (id !== undefined) {\n return this.records.find(record => String(record.id) === String(id));\n }\n }\n /**\n * 校验数据记录是否有效 对应参数后续会废弃\n * @param isSelected 是否只校验选中记录\n * @param noCascade 是否级联校验\n * @return true | false\n */\n async validate(isSelected, noCascade) {\n this.validating = true;\n try {\n const dataToJSON = adapterDataToJSON(isSelected, noCascade) || this.dataToJSON;\n const cascade = noCascade === undefined && dataToJSON ? useCascade(dataToJSON) : !noCascade;\n const validateResult = Promise.all((useSelected(dataToJSON) ? this.selected : this.data).map(record => record.validate(this.props.forceValidate || useAll(dataToJSON), !cascade))).then(results => results.every(result => result));\n this.reportValidityImmediately(validateResult);\n return await validateResult;\n }\n finally {\n this.validating = false;\n }\n }\n reportValidityImmediately(result) {\n this.fireEvent(DataSetEvents.validate, { dataSet: this, result });\n }\n reportValidity(result) {\n const { prepareForReport } = this;\n if (!result) {\n prepareForReport.result = result;\n }\n if (prepareForReport.timeout) {\n window.clearTimeout(prepareForReport.timeout);\n }\n prepareForReport.timeout = window.setTimeout(() => {\n this.reportValidityImmediately(Promise.resolve(prepareForReport.result || true));\n this.prepareForReport = {};\n }, 200);\n }\n getValidationErrors() {\n const { dataToJSON } = this;\n return (useSelected(dataToJSON) ? this.selected : this.data).reduce((results, record) => {\n const validationResults = record.getValidationErrors();\n if (validationResults.length) {\n results.push({\n record,\n errors: validationResults,\n });\n }\n return results;\n }, []);\n }\n /**\n * 根据字段名获取字段\n * @param fieldName 字段名\n * @returns 字段\n */\n getField(fieldName) {\n if (fieldName) {\n return this.fields.get(fieldName);\n }\n }\n /**\n * 获取分组字段名\n * @returns 字段名列表\n */\n getGroups() {\n return this.groups;\n }\n initFields(fields) {\n fields.forEach(field => {\n const { name } = field;\n if (name) {\n addDataSetField(this, name, field);\n }\n else {\n warning(false, 'DataSet create field failed. Please check if property name is exists on field.');\n }\n });\n }\n /*\n * 增加新字段\n * @param name 字段名\n * @param field 字段属性\n * @return 新增字段\n */\n addField(name, fieldProps) {\n const field = addDataSetField(this, name, fieldProps);\n this.records.forEach(record => record.addField(name));\n return field;\n }\n commitData(allData, total, onlyDelete) {\n const { autoQueryAfterSubmit, primaryKey } = this.props;\n if (this.dataToJSON === DataToJSON.normal) {\n flatMap(this.dirtyRecords).forEach(record => record.commit(omit(record.toData(), ['__dirty']), this));\n // 若有响应数据,进行数据回写\n }\n else if (allData.length) {\n const statusKey = getConfig('statusKey');\n const status = getConfig('status');\n const restCreatedData = [];\n const restUpdatedData = [];\n allData.forEach(data => {\n const dataStatus = data[statusKey];\n // 若有数据中含有__id,根据__id回写记录,否则根据主键回写非新增的记录\n const record = data.__id\n ? this.findRecordById(data.__id)\n : primaryKey &&\n dataStatus !== status[RecordStatus.add] &&\n this.records.find(r => r.get(primaryKey) === data[primaryKey]);\n if (record) {\n record.commit(data, this);\n }\n else if (dataStatus === status[RecordStatus.add]) {\n restCreatedData.push(data);\n }\n else if (dataStatus === status[RecordStatus.update]) {\n restUpdatedData.push(data);\n }\n });\n const { created, updated, destroyed } = this;\n // 没有回写成功的新增数据按顺序回写\n if (restCreatedData.length === created.length) {\n created.forEach((r, index) => r.commit(restCreatedData[index], this));\n }\n else if (autoQueryAfterSubmit) {\n // 若有新增数据没有回写成功, 必须重新查询来获取主键\n this.query();\n return this;\n }\n // 剩下未回写的非新增数据使用原数据进行回写\n if (restUpdatedData.length === updated.length) {\n updated.forEach((r, index) => r.commit(restUpdatedData[index], this));\n }\n else if (onlyDelete) {\n // onlyDelete状态不做其他处理 可以与else的处理合并\n // updated.forEach(r => r.commit(r.toData(), this));\n }\n else {\n updated\n .filter(r => restUpdatedData.some(data => {\n const dataStatus = data[statusKey];\n return data.__id\n ? r.id === data.__id\n : primaryKey &&\n dataStatus !== status[RecordStatus.add] &&\n r.get(primaryKey) === data[primaryKey];\n }))\n .forEach(r => r.commit(omit(r.toData(), ['__dirty']), this));\n }\n destroyed.forEach(r => r.commit(undefined, this));\n if (isNumber(total)) {\n this.totalCount = total;\n }\n }\n else if (autoQueryAfterSubmit) {\n // 无回写数据时自动进行查询\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.`);\n this.query();\n }\n return this;\n }\n /**\n * 数据集头行级联绑定\n * @param ds 头数据集\n * @param name 头数据集字段名\n */\n bind(ds, name) {\n if (!name) {\n warning(false, 'DataSet: cascade binding need a name');\n return;\n }\n if (ds.children[name]) {\n warning(false, `DataSet: duplicate cascade binding of name<${name}>`);\n return;\n }\n ds.children[name] = this;\n this.parent = ds;\n this.parentName = name;\n const { current } = ds;\n if (current) {\n ds.syncChild(this, current, name);\n }\n else if (this.length) {\n this.loadData([]);\n }\n }\n /**\n * 设置查询的参数.\n * @param {string} para 参数名.\n * @param {any} value 参数值.\n */\n setQueryParameter(para, value) {\n const queryParameter = this.getState(QUERY_PARAMETER);\n if (queryParameter) {\n if (isNil(value)) {\n queryParameter.delete(para);\n }\n else {\n queryParameter.set(para, value);\n }\n }\n }\n /**\n * 获取查询的参数.\n * @param {string} para 参数名.\n * @return {any} 参数值.\n */\n getQueryParameter(para) {\n const queryParameter = this.getState(QUERY_PARAMETER);\n if (queryParameter) {\n return queryParameter.get(para);\n }\n }\n appendData(allData = [], parent) {\n const { childrenField } = this.props;\n this.fireEvent(DataSetEvents.beforeAppend, { dataSet: this, data: allData });\n const appendData = this.processData(allData, undefined, childrenField ? parent : undefined);\n if (childrenField && parent) {\n parent.children = unionBy(parent.children, appendData, 'key');\n }\n this.originalData = unionBy(this.originalData, appendData, 'key');\n this.records = unionBy(this.records, appendData, 'key');\n this.fireEvent(DataSetEvents.append, { dataSet: this });\n return this;\n }\n loadData(allData = [], total) {\n this.performance.timing.loadStart = Date.now();\n this.storeSelected();\n const { paging, pageSize, props: { autoLocateFirst, idField, parentField, childrenField }, } = this;\n switch (paging) {\n case true:\n allData = allData.slice(0, pageSize);\n break;\n case 'server':\n allData = idField && parentField ? sliceTree(idField, parentField, allData, pageSize) : allData.slice(0, pageSize);\n break;\n default:\n break;\n }\n this.fireEvent(DataSetEvents.beforeLoad, { dataSet: this, data: allData });\n const originalData = this.processData(allData);\n this.originalData = childrenField ? treeReduce(originalData, (list, node) => list.concat(node), []) : originalData;\n this.records = this.originalData;\n if (total !== undefined && (paging === true || paging === 'server')) {\n this.totalCount = total;\n }\n else if (idField && parentField && paging === 'server') {\n // 异步情况复用以前的total\n if (!this.totalCount) {\n this.totalCount = this.treeData.length;\n }\n }\n else {\n this.totalCount = allData.length;\n }\n this.releaseCachedSelected();\n const nextRecord = autoLocateFirst && (idField && parentField ? this.getFromTree(0) : this.get(0));\n if (nextRecord) {\n nextRecord.isCurrent = true;\n }\n this.performance.timing.loadEnd = Date.now();\n this.fireEvent(DataSetEvents.indexChange, { dataSet: this, record: nextRecord });\n this.fireEvent(DataSetEvents.load, { dataSet: this });\n return this;\n }\n processOneData(data = {}, status, childrenField, parent) {\n if (data instanceof Record) {\n if (data.dataSet !== this) {\n data.dataSet = this;\n data.status = status;\n }\n if (childrenField) {\n const { children } = data;\n if (children) {\n children.forEach(r => this.processOneData(r, status, childrenField));\n }\n }\n return data;\n }\n const self = new Record(data, this, status);\n if (parent) {\n self.parent = parent;\n }\n if (childrenField) {\n const children = data[childrenField];\n if (children) {\n self.children = this.processData(children, status, self);\n }\n }\n return self;\n }\n processData(allData, status = RecordStatus.sync, parent) {\n const { childrenField } = this.props;\n return allData.map(data => this.processOneData(data, status, childrenField, parent));\n }\n deleteRecord(record) {\n if (record) {\n record.isSelected = false;\n record.isCurrent = false;\n const { selected, records } = this;\n const selectedIndex = selected.indexOf(record);\n if (selectedIndex !== -1) {\n selected.splice(selectedIndex, 1);\n }\n if (record.isNew) {\n const index = records.indexOf(record);\n if (index !== -1) {\n records.splice(index, 1);\n }\n }\n else if (!record.isRemoved) {\n record.status = RecordStatus.delete;\n }\n }\n return record;\n }\n // 查询在所有页面的对应位置\n findInAllPage(index) {\n const { paging } = this;\n let indexRecord;\n if (paging === true) {\n indexRecord = this.data[this.getIndexInCurrentPage(index)];\n }\n else if (paging === 'server') {\n indexRecord = this.treeData[this.getIndexInCurrentPage(index)];\n }\n else {\n indexRecord = this.data[index];\n }\n return indexRecord;\n }\n getIndexInCurrentPage(index = this.currentIndex) {\n const { currentPage, pageSize } = this;\n return index - (currentPage - 1) * pageSize;\n }\n transferRecords(data) {\n return data.map(record => {\n const { dataSet } = record;\n if (dataSet === this) {\n const { records } = this;\n const index = records.indexOf(record);\n if (index !== -1) {\n records.splice(index, 1);\n }\n return record;\n }\n if (dataSet) {\n dataSet.remove(record);\n record = new Record(record.data, this);\n }\n record.dataSet = this;\n record.status = RecordStatus.add;\n return record;\n });\n }\n initChildren(children) {\n if (isArray(children)) {\n children.forEach(childDs => {\n if (childDs instanceof DataSet) {\n const { name } = childDs;\n if (name) {\n childDs.bind(this, name);\n }\n else {\n warning(false, 'cascade DataSet need a name');\n }\n }\n });\n }\n else {\n Object.keys(children).forEach(childName => {\n const child = children[childName];\n if (child instanceof DataSet) {\n child.bind(this, childName);\n }\n else {\n warning(false, `cascade child<${childName}> must be instance of DataSet.`);\n }\n });\n }\n }\n initQueryDataSet(queryDataSet, queryFields) {\n if (queryFields) {\n queryDataSet = new DataSet({\n fields: queryFields,\n });\n }\n if (queryDataSet) {\n this.queryDataSet = queryDataSet;\n }\n }\n initEvents(events) {\n Object.keys(events).forEach(event => this.addEventListener(event, events[event]));\n }\n loadDataFromResponse(resp) {\n if (resp) {\n const { dataKey, totalKey } = this;\n const data = generateResponseData(resp, dataKey);\n const total = ObjectChainValue.get(resp, totalKey);\n this.loadData(data, total);\n }\n return this;\n }\n appendDataFromResponse(resp, parent) {\n if (resp) {\n const { dataKey } = this;\n const data = generateResponseData(resp, dataKey);\n this.appendData(data, parent);\n }\n return this;\n }\n // private groupData(allData: object[]): object[] {\n // return this.getGroups().reverse()\n // .reduce((arr, name) => arr.sort(\n // (item1, item2) => String(item1[name]).localeCompare(String(item2[name])),\n // ), allData);\n // }\n async write(records, onlyDelete) {\n if (records.length) {\n const [created, updated, destroyed] = prepareSubmitData(records, this.dataToJSON);\n const axiosConfigs = [];\n const submitData = [\n ...prepareForSubmit('create', created, axiosConfigs, this),\n ...prepareForSubmit('update', updated, axiosConfigs, this),\n ...prepareForSubmit('destroy', destroyed, axiosConfigs, this),\n ];\n prepareForSubmit('submit', submitData, axiosConfigs, this);\n if (axiosConfigs.length) {\n try {\n this.changeSubmitStatus(DataSetStatus.submitting);\n const submitEventResult = await this.fireEvent(DataSetEvents.submit, {\n dataSet: this,\n data: [...created, ...updated, ...destroyed],\n });\n if (submitEventResult) {\n const result = await axiosStatic.all(axiosConfigs.map(config => this.axios(config)));\n return this.handleSubmitSuccess(result, onlyDelete);\n }\n }\n catch (e) {\n this.handleSubmitFail(e);\n throw new DataSetRequestError(e);\n }\n finally {\n this.changeSubmitStatus(DataSetStatus.ready);\n }\n }\n }\n }\n async read(page = 1, params) {\n if (this.checkReadable(this.parent)) {\n try {\n this.changeStatus(DataSetStatus.loading);\n const data = await this.generateQueryParameter(params);\n const newConfig = axiosConfigAdapter('read', this, data, this.generateQueryString(page));\n if (newConfig.url) {\n const queryEventResult = await this.fireEvent(DataSetEvents.query, {\n dataSet: this,\n params: newConfig.params,\n data: newConfig.data,\n });\n if (queryEventResult) {\n this.performance.timing.fetchStart = Date.now();\n this.performance.url = newConfig.url;\n const result = await this.axios(fixAxiosConfig(newConfig));\n this.performance.timing.fetchEnd = Date.now();\n runInAction(() => {\n if (page >= 0) {\n this.currentPage = page;\n }\n });\n return this.handleLoadSuccess(result);\n }\n }\n }\n catch (e) {\n this.handleLoadFail(e);\n throw new DataSetRequestError(e);\n }\n finally {\n this.changeStatus(DataSetStatus.ready);\n }\n }\n }\n storeSelected() {\n if (this.cacheSelectionKeys) {\n const { isAllPageSelection } = this;\n this.setCachedSelected([\n ...this.cachedSelected.filter(record => isAllPageSelection ? !record.isSelected : record.isSelected),\n ...(isAllPageSelection ? this.currentUnSelected : this.currentSelected).map(record => {\n record.isCurrent = false;\n record.isCached = true;\n return record;\n }),\n ]);\n }\n }\n releaseCachedSelected() {\n const { cacheSelectionKeys, cachedSelected } = this;\n if (cacheSelectionKeys) {\n this.records = this.records.map(record => {\n const index = cachedSelected.findIndex(cached => cacheSelectionKeys.every(key => record.get(key) === cached.get(key)));\n if (index !== -1) {\n const selected = cachedSelected.splice(index, 1)[0];\n selected.isCached = false;\n return selected;\n }\n return record;\n });\n }\n }\n changeStatus(status) {\n this.status = status;\n }\n changeSubmitStatus(status) {\n this.status = status;\n Object.values(this.children).forEach(ds => {\n if (ds instanceof DataSet) {\n ds.changeSubmitStatus(status);\n }\n });\n }\n handleCascade({ dataSet, record, previous, }) {\n if (dataSet.hasChildren) {\n dataSet.syncChildren(record, previous);\n }\n }\n handleLoadSuccess(resp) {\n const { loadSuccess = defaultFeedback.loadSuccess } = this.feedback;\n loadSuccess(resp);\n return resp;\n }\n handleLoadFail(e) {\n const { loadFailed = defaultFeedback.loadFailed } = this.feedback;\n this.fireEvent(DataSetEvents.loadFailed, { dataSet: this });\n loadFailed(e);\n }\n handleSubmitSuccess(resp, onlyDelete) {\n const { dataKey, totalKey } = this;\n const { submitSuccess = defaultFeedback.submitSuccess } = this.feedback;\n const data = [];\n let total;\n resp.forEach(item => {\n data.push(...generateResponseData(item, dataKey));\n if (totalKey && isObject(item)) {\n const myTotal = ObjectChainValue.get(item, totalKey);\n if (!isNil(myTotal)) {\n total = myTotal;\n }\n }\n });\n const result = dataKey ? { success: true } : data;\n if (dataKey) {\n ObjectChainValue.set(result, dataKey, data);\n if (totalKey) {\n ObjectChainValue.set(result, totalKey, total);\n }\n }\n this.fireEvent(DataSetEvents.submitSuccess, { dataSet: this, data: result });\n // 针对 204 的情况进行特殊处理\n // 不然在设置了 primaryKey 的情况 下,在先新增一条再使用delete的情况下,会将204这个请求内容填入到record中\n if (!(data[0] && data[0].status === 204 && data[0].statusText === 'No Content')) {\n this.commitData(data, total, onlyDelete);\n }\n else {\n this.commitData([], total);\n }\n submitSuccess(result);\n return result;\n }\n handleSubmitFail(e) {\n const { current } = this;\n const { submitFailed = defaultFeedback.submitFailed } = this.feedback;\n this.fireEvent(DataSetEvents.submitFailed, { dataSet: this });\n submitFailed(e);\n if (this.props.autoLocateAfterRemove && current && this.destroyed.length) {\n current.isCurrent = false;\n }\n this.destroyed.forEach((record, index) => {\n record.reset();\n record.isSelected = true;\n if (this.props.autoLocateAfterRemove && index === 0) {\n record.isCurrent = true;\n }\n });\n }\n syncChildren(current, previous) {\n const { children } = this;\n const keys = Object.keys(children);\n const remoteKeys = [];\n keys.forEach(childName => {\n const ds = children[childName];\n if (previous && ds.status === DataSetStatus.ready) {\n const { dataSetSnapshot } = previous;\n if (dataSetSnapshot && dataSetSnapshot[childName]) {\n dataSetSnapshot[childName] = ds.snapshot();\n ds.current = undefined;\n }\n }\n if (current) {\n const { dataSetSnapshot } = current;\n const snapshot = dataSetSnapshot && dataSetSnapshot[childName];\n if (snapshot instanceof DataSetSnapshot) {\n ds.restore(snapshot);\n }\n else if (!this.syncChild(ds, current, childName, true)) {\n ds.loadData([]);\n remoteKeys.push(childName);\n }\n }\n else {\n ds.loadData([]);\n }\n });\n if (current && remoteKeys.length) {\n this.syncChildrenRemote(remoteKeys, current);\n }\n }\n syncChild(ds, currentRecord, childName, onlyClient) {\n const { cascadeRecordsMap } = currentRecord;\n const cascadeRecords = cascadeRecordsMap && cascadeRecordsMap[childName];\n const childRecords = cascadeRecords || currentRecord.get(childName);\n if (currentRecord.isNew || isArrayLike(childRecords)) {\n if (cascadeRecords && cascadeRecordsMap) {\n delete cascadeRecordsMap[childName];\n }\n ds.clearCachedSelected();\n ds.loadData(childRecords ? childRecords.slice() : []);\n if (currentRecord.isNew) {\n if (ds.length) {\n ds.forEach(record => (record.status = RecordStatus.add));\n }\n else if (ds.props.autoCreate) {\n ds.create();\n }\n }\n const dataSetSnapshot = getIf(currentRecord, 'dataSetSnapshot', {});\n dataSetSnapshot[childName] = ds.snapshot();\n return true;\n }\n if (!onlyClient) {\n const oldSnapshot = ds.snapshot();\n ds.read(1).then(resp => {\n const { current } = this;\n if (current !== currentRecord) {\n ds = new DataSet().restore(oldSnapshot);\n }\n ds.clearCachedSelected();\n const dataSetSnapshot = getIf(currentRecord, 'dataSetSnapshot', {});\n dataSetSnapshot[childName] = ds.loadDataFromResponse(resp).snapshot();\n });\n }\n return false;\n }\n checkReadable(parent) {\n if (parent) {\n const { current } = parent;\n if (!current || current.isNew) {\n return false;\n }\n }\n return true;\n }\n /**\n * page相关请求设置\n * @param page 在那个页面, 小于0时不分页\n * @param pageSizeInner 页面大小\n */\n generatePageQueryString(page, pageSizeInner) {\n if (page >= 0) {\n const { paging, pageSize } = this;\n if (isNumber(pageSizeInner)) {\n return { page, pagesize: pageSizeInner };\n }\n if (paging === true || paging === 'server') {\n return { page, pagesize: pageSize };\n }\n }\n return {};\n }\n generateOrderQueryString() {\n const { fields, props: { combineSort } } = this;\n const orderFields = getOrderFields(fields);\n if (combineSort) {\n return orderFields.map(orderField => {\n let sortname = orderField.name;\n if (orderField.type === FieldType.object) {\n const bindField = findBindFieldBy(orderField, this.fields, 'valueField');\n if (bindField) {\n sortname = bindField.name;\n }\n }\n return `${sortname},${orderField.order}`;\n });\n }\n if (orderFields.length) {\n const orderField = orderFields[0];\n const param = { sortname: orderField.name, sortorder: orderField.order };\n if (orderField.type === FieldType.object) {\n const bindField = findBindFieldBy(orderField, this.fields, 'valueField');\n if (bindField) {\n param.sortname = bindField.name;\n }\n }\n return param;\n }\n return {};\n }\n /**\n * 返回configure 配置的值\n * @param page 在那个页面, 小于0时不分页\n * @param pageSizeInner 页面大小\n */\n generateQueryString(page, pageSizeInner) {\n const { combineSort } = this.props;\n const order = this.generateOrderQueryString();\n const pageQuery = this.generatePageQueryString(page, pageSizeInner);\n const generatePageQuery = getConfig('generatePageQuery');\n const sortParams = combineSort && order.length ? {\n sort: order,\n } : {\n sortName: order.sortname,\n sortOrder: order.sortorder,\n };\n if (typeof generatePageQuery === 'function') {\n return generatePageQuery({\n ...sortParams,\n pageSize: pageQuery.pagesize,\n page: pageQuery.page,\n });\n }\n return { ...pageQuery, ...sortParams };\n }\n getParentParams() {\n const { parent, props: { cascadeParams }, } = this;\n if (parent) {\n const { props: { primaryKey }, current, } = parent;\n if (current) {\n return cascadeParams(current, primaryKey);\n }\n }\n return {};\n }\n async generateQueryParameter(params) {\n const { queryDataSet, props: { validateBeforeQuery } } = this;\n const parentParams = this.getParentParams();\n if (queryDataSet) {\n await queryDataSet.ready();\n if (validateBeforeQuery && !(await queryDataSet.validate())) {\n throw new Error($l('DataSet', 'invalid_query_dataset'));\n }\n }\n let data = {};\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n data = omit(current.toData(true), ['__dirty']);\n }\n }\n data = {\n ...data,\n ...this.queryParameter,\n ...parentParams,\n ...params,\n };\n return Object.keys(data).reduce((p, key) => {\n const value = data[key];\n if (!isEmpty(value)) {\n p[key] = value;\n }\n return p;\n }, {});\n }\n}\nDataSet.defaultProps = {\n autoCreate: false,\n autoQuery: false,\n autoQueryAfterSubmit: true,\n autoLocateFirst: true,\n autoLocateAfterCreate: true,\n autoLocateAfterRemove: true,\n validateBeforeQuery: true,\n selection: DataSetSelection.multiple,\n modifiedCheck: true,\n pageSize: 10,\n paging: true,\n combineSort: false,\n dataToJSON: DataToJSON.dirty,\n cascadeParams(parent, primaryKey) {\n if (primaryKey) {\n return { [primaryKey]: parent.get(primaryKey) };\n }\n return omit(parent.toData(), ['__dirty']);\n },\n};\n__decorate([\n computed\n], DataSet.prototype, \"queryParameter\", null);\n__decorate([\n observable\n], DataSet.prototype, \"lookupCaches\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"attachmentCaches\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"selectionStrategy\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"parent\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"name\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"parentName\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"records\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"fields\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"props\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"pageSize\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"totalCount\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"status\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"exportStatus\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"exportProgress\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"currentPage\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"selection\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"cachedSelected\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"dataToJSON\", void 0);\n__decorate([\n observable\n], DataSet.prototype, \"state\", void 0);\n__decorate([\n computed\n], DataSet.prototype, \"cascadeRecords\", null);\n__decorate([\n computed\n], DataSet.prototype, \"transport\", null);\n__decorate([\n computed\n], DataSet.prototype, \"data\", null);\n__decorate([\n computed\n], DataSet.prototype, \"dirtyRecords\", null);\n__decorate([\n computed\n], DataSet.prototype, \"selected\", null);\n__decorate([\n computed\n], DataSet.prototype, \"unSelected\", null);\n__decorate([\n computed\n], DataSet.prototype, \"currentSelected\", null);\n__decorate([\n computed\n], DataSet.prototype, \"currentUnSelected\", null);\n__decorate([\n computed\n], DataSet.prototype, \"treeSelected\", null);\n__decorate([\n computed\n], DataSet.prototype, \"currentIndex\", null);\n__decorate([\n computed\n], DataSet.prototype, \"treeRecords\", null);\n__decorate([\n computed\n], DataSet.prototype, \"treeData\", null);\n__decorate([\n computed\n], DataSet.prototype, \"groups\", null);\n__decorate([\n computed\n], DataSet.prototype, \"groupedRecords\", null);\n__decorate([\n computed\n], DataSet.prototype, \"groupedTreeRecords\", null);\n__decorate([\n computed\n], DataSet.prototype, \"current\", null);\n__decorate([\n computed\n], DataSet.prototype, \"uniqueKeys\", null);\n__decorate([\n computed\n], DataSet.prototype, \"all\", null);\n__decorate([\n action\n], DataSet.prototype, \"setState\", null);\n__decorate([\n action\n], DataSet.prototype, \"restore\", null);\n__decorate([\n action\n], DataSet.prototype, \"setAllPageSelection\", null);\n__decorate([\n action\n], DataSet.prototype, \"doClientExport\", null);\n__decorate([\n action\n], DataSet.prototype, \"reset\", null);\n__decorate([\n action\n], DataSet.prototype, \"create\", null);\n__decorate([\n action\n], DataSet.prototype, \"remove\", null);\n__decorate([\n action\n], DataSet.prototype, \"removeAll\", null);\n__decorate([\n action\n], DataSet.prototype, \"deleteAll\", null);\n__decorate([\n action\n], DataSet.prototype, \"push\", null);\n__decorate([\n action\n], DataSet.prototype, \"unshift\", null);\n__decorate([\n action\n], DataSet.prototype, \"pop\", null);\n__decorate([\n action\n], DataSet.prototype, \"shift\", null);\n__decorate([\n action\n], DataSet.prototype, \"splice\", null);\n__decorate([\n action\n], DataSet.prototype, \"reverse\", null);\n__decorate([\n action\n], DataSet.prototype, \"sort\", null);\n__decorate([\n action\n], DataSet.prototype, \"select\", null);\n__decorate([\n action\n], DataSet.prototype, \"unSelect\", null);\n__decorate([\n action\n], DataSet.prototype, \"selectAll\", null);\n__decorate([\n action\n], DataSet.prototype, \"unSelectAll\", null);\n__decorate([\n action\n], DataSet.prototype, \"batchSelect\", null);\n__decorate([\n action\n], DataSet.prototype, \"batchUnSelect\", null);\n__decorate([\n action\n], DataSet.prototype, \"treeSelect\", null);\n__decorate([\n action\n], DataSet.prototype, \"treeUnSelect\", null);\n__decorate([\n action\n], DataSet.prototype, \"setCachedSelected\", null);\n__decorate([\n action\n], DataSet.prototype, \"addField\", null);\n__decorate([\n action\n], DataSet.prototype, \"commitData\", null);\n__decorate([\n action\n], DataSet.prototype, \"bind\", null);\n__decorate([\n action\n], DataSet.prototype, \"setQueryParameter\", null);\n__decorate([\n action\n], DataSet.prototype, \"appendData\", null);\n__decorate([\n action\n], DataSet.prototype, \"loadData\", null);\n__decorate([\n action\n], DataSet.prototype, \"processData\", null);\n__decorate([\n action\n], DataSet.prototype, \"storeSelected\", null);\n__decorate([\n action\n], DataSet.prototype, \"releaseCachedSelected\", null);\n__decorate([\n action\n], DataSet.prototype, \"changeStatus\", null);\n__decorate([\n action\n], DataSet.prototype, \"changeSubmitStatus\", null);\n__decorate([\n action\n], DataSet.prototype, \"handleSubmitFail\", null);\n__decorate([\n action\n], DataSet.prototype, \"syncChild\", null);\n","import { __decorate } from \"tslib\";\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport ViewComponent from '../core/ViewComponent';\nimport localeContext from '../locale-context/LocaleContext';\nexport default class DataSetComponent extends ViewComponent {\n get dataSet() {\n return this.observableProps.dataSet;\n }\n get lang() {\n const { lang } = this.observableProps;\n if (lang) {\n return lang;\n }\n const { dataSet } = this;\n if (dataSet && dataSet.lang) {\n return dataSet.lang;\n }\n return localeContext.locale.lang;\n }\n getObservableProps(props, context) {\n const observableProps = super.getObservableProps(props, context);\n if ('dataSet' in props) {\n observableProps.dataSet = props.dataSet;\n }\n return observableProps;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'dataSet',\n ]);\n }\n}\nDataSetComponent.propTypes = {\n dataSet: PropTypes.object,\n ...ViewComponent.propTypes,\n};\n__decorate([\n computed\n], DataSetComponent.prototype, \"lang\", null);\n","/* istanbul ignore next */\nexport default class DataSetRequestError extends Error {\n constructor(error) {\n super(error.message);\n this.name = error.name;\n this.stack = error.stack;\n }\n}\n","/* istanbul ignore next */\nexport default class DataSetSnapshot {\n constructor(dataSet) {\n this.dataSet = dataSet;\n this.records = dataSet.records;\n this.originalData = dataSet.originalData;\n this.totalCount = dataSet.totalCount;\n this.currentPage = dataSet.currentPage;\n this.pageSize = dataSet.pageSize;\n this.cachedSelected = dataSet.cachedSelected;\n this.dataToJSON = dataSet.dataToJSON;\n this.children = dataSet.children;\n this.events = dataSet.events;\n this.current = dataSet.current;\n }\n}\n","import message from '../message';\nimport exception from '../_util/exception';\nimport { $l } from '../locale-context';\nconst defaultFeedback = {\n loadSuccess(_result) { },\n loadFailed(error) {\n message.error(exception(error, $l('DataSet', 'query_failure')));\n },\n submitSuccess(_result) {\n message.success($l('DataSet', 'submit_success'));\n },\n submitFailed(error) {\n message.error(exception(error, $l('DataSet', 'submit_failure')));\n },\n};\nexport default defaultFeedback;\n","import { __decorate } from \"tslib\";\nimport { action, computed, get, isArrayLike, isObservableObject, observable, remove, runInAction, set, toJS, } from 'mobx';\nimport raf from 'raf';\nimport omit from 'lodash/omit';\nimport isEqual from 'lodash/isEqual';\nimport isObject from 'lodash/isObject';\nimport merge from 'lodash/merge';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport DataSet from './DataSet';\nimport Validator from '../validator/Validator';\nimport { DataSetEvents, DataSetSelection, FieldTrim, FieldType } from './enum';\nimport lookupStore from '../stores/LookupCodeStore';\nimport lovCodeStore from '../stores/LovCodeStore';\nimport attachmentStore from '../stores/AttachmentStore';\nimport localeContext from '../locale-context';\nimport { defaultTextField, defaultValueField, getBaseType, getChainFieldName, getIf, getLimit, processValue } from './utils';\nimport isSame from '../_util/isSame';\nimport isSameLike from '../_util/isSameLike';\nimport { buildURLWithAxiosConfig } from '../axios/utils';\nimport { getDateFormatByField } from '../field/utils';\nimport { getLovPara } from '../stores/utils';\nimport { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from '../number-field/utils';\nimport AttachmentFile from './AttachmentFile';\nfunction isEqualDynamicProps(oldProps, newProps) {\n if (newProps === oldProps) {\n return true;\n }\n if (isObject(newProps) && isObject(oldProps)) {\n const newKeys = Object.keys(newProps);\n const { length } = newKeys;\n if (length) {\n if (length !== Object.keys(oldProps).length) {\n return false;\n }\n return newKeys.every(key => {\n const value = newProps[key];\n const oldValue = oldProps[key];\n if (oldValue === value) {\n return true;\n }\n if (typeof value === 'function' && typeof oldValue === 'function') {\n return value.toString() === oldValue.toString();\n }\n return isEqual(oldValue, value);\n });\n }\n }\n return isEqual(newProps, oldProps);\n}\nfunction getPropsFromLovConfig(lovCode, propsName) {\n const props = {};\n if (lovCode) {\n const config = lovCodeStore.getConfig(lovCode);\n if (config) {\n propsName.forEach(name => {\n const value = config[name];\n if (value) {\n props[name] = value;\n }\n });\n }\n }\n return props;\n}\nconst LOOKUP_SIDE_EFFECT_KEYS = [\n 'type',\n 'lookupUrl',\n 'lookupCode',\n 'lookupAxiosConfig',\n 'lovCode',\n 'lovQueryAxiosConfig',\n 'lovPara',\n 'cascadeMap',\n 'lovQueryUrl',\n 'optionsProps',\n];\nconst LOV_SIDE_EFFECT_KEYS = ['lovCode', 'lovDefineAxiosConfig', 'lovDefineUrl', 'optionsProps'];\nconst LOOKUP_TOKEN = '__lookup_token__';\nexport default class Field {\n constructor(props = {}, dataSet, record) {\n runInAction(() => {\n this.dataSet = dataSet;\n this.record = record;\n this.props = observable.map(props);\n // 优化性能,没有动态属性时不用处理, 直接引用dsField; 有options时,也不处理\n if (!this.getProp('options')) {\n const dynamicProps = this.getProp('dynamicProps');\n if (!record || typeof dynamicProps === 'function') {\n raf(() => {\n this.fetchLookup();\n this.fetchLovConfig();\n });\n }\n else {\n const computedProps = this.getProp('computedProps');\n if (computedProps || dynamicProps) {\n const keys = Object.keys({ ...computedProps, ...dynamicProps });\n if (keys.length) {\n const fetches = [];\n if (keys.some(key => LOOKUP_SIDE_EFFECT_KEYS.includes(key))) {\n fetches.push(this.fetchLookup);\n }\n if (keys.some(key => LOV_SIDE_EFFECT_KEYS.includes(key))) {\n fetches.push(this.fetchLovConfig);\n }\n if (fetches.length) {\n raf(() => fetches.forEach(one => one.call(this)));\n }\n }\n }\n }\n }\n });\n }\n get attachments() {\n const { dataSet, record } = this;\n if (dataSet && record) {\n const { attachmentCaches } = dataSet;\n const uuid = record.get(this.name);\n if (uuid && attachmentCaches) {\n const cache = attachmentCaches.get(uuid);\n if (cache) {\n return get(cache, 'attachments');\n }\n }\n }\n return this.get('attachments');\n }\n set attachments(attachments) {\n runInAction(() => {\n const { record } = this;\n if (record) {\n const uuid = record.get(this.name);\n const { dataSet } = this;\n if (dataSet && uuid) {\n const attachmentCaches = getIf(dataSet, 'attachmentCaches', () => observable.map());\n if (attachmentCaches) {\n const cache = attachmentCaches.get(uuid);\n if (cache) {\n set(cache, 'attachments', attachments);\n }\n else {\n attachmentCaches.set(uuid, { attachments });\n }\n return;\n }\n }\n }\n this.set('attachments', attachments);\n });\n }\n get attachmentCount() {\n const { attachments } = this;\n if (attachments) {\n return attachments.length;\n }\n const { dataSet, record } = this;\n if (dataSet && record) {\n const { attachmentCaches } = dataSet;\n const uuid = record.get(this.name);\n if (uuid && attachmentCaches) {\n const cache = attachmentCaches.get(uuid);\n if (cache) {\n return get(cache, 'count');\n }\n }\n }\n return this.get('attachmentCount');\n }\n set attachmentCount(count) {\n runInAction(() => {\n const { record } = this;\n if (record) {\n const uuid = record.get(this.name);\n const { dataSet } = this;\n if (dataSet && uuid) {\n const attachmentCaches = getIf(dataSet, 'attachmentCaches', () => observable.map());\n if (attachmentCaches) {\n const cache = attachmentCaches.get(uuid);\n if (cache) {\n set(cache, 'count', count);\n }\n else {\n attachmentCaches.set(uuid, { count });\n }\n return;\n }\n }\n }\n this.set('attachmentCount', count);\n });\n }\n get pristineProps() {\n return {\n ...this.props.toPOJO(),\n ...this.dirtyProps,\n };\n }\n set pristineProps(props) {\n runInAction(() => {\n const { dirtyProps } = this;\n if (dirtyProps) {\n const newProps = {};\n const dirtyKeys = Object.keys(dirtyProps);\n if (dirtyKeys.length) {\n dirtyKeys.forEach((key) => {\n const item = this.props.get(key);\n newProps[key] = item;\n if (isSame(item, props[key])) {\n delete dirtyProps[key];\n }\n else {\n dirtyProps[key] = props[key];\n }\n });\n }\n this.props.replace({\n ...props,\n ...newProps,\n });\n }\n else {\n this.props.replace(props);\n }\n });\n }\n get lookup() {\n const { dataSet } = this;\n if (dataSet) {\n const lookupToken = this.get(LOOKUP_TOKEN);\n const { lookupCaches } = dataSet;\n if (lookupToken && lookupCaches) {\n const lookup = lookupCaches.get(lookupToken);\n if (isArrayLike(lookup)) {\n const valueField = this.get('valueField');\n const lookupData = this.get('lookupData');\n if (lookupData) {\n const others = lookupData.filter((data) => lookup.every(item => item[valueField] !== data[valueField]));\n if (others.length) {\n return others.concat(lookup.slice());\n }\n }\n return lookup;\n }\n }\n }\n return undefined;\n }\n get options() {\n const options = this.get('options');\n if (options) {\n return options;\n }\n // 确保 lookup 相关配置介入观察\n lookupStore.getAxiosConfig(this);\n const optionsProps = this.get('optionsProps');\n const { lookup, type } = this;\n if (lookup) {\n const parentField = this.get('parentField');\n const idField = this.get('idField') || this.get('valueField');\n const selection = this.get('multiple') ? DataSetSelection.multiple : DataSetSelection.single;\n return new DataSet({\n data: lookup,\n paging: false,\n selection,\n idField,\n parentField,\n ...optionsProps,\n });\n }\n const lovCode = this.get('lovCode');\n if (lovCode) {\n if (type === FieldType.object || type === FieldType.auto) {\n return lovCodeStore.getLovDataSet(lovCode, this, optionsProps);\n }\n }\n return undefined;\n }\n get dirty() {\n const { record, name } = this;\n if (record) {\n const { dirtyData } = record;\n if (dirtyData) {\n const dirtyNames = [...dirtyData.keys()];\n if (dirtyNames.length) {\n if (dirtyNames.includes(getChainFieldName(record, name))) {\n return true;\n }\n if (this.type === FieldType.intl) {\n const tlsKey = getConfig('tlsKey');\n if (record.get(tlsKey) && Object.keys(localeContext.supports).some(lang => dirtyNames.includes(getChainFieldName(record, `${tlsKey}.${name}.${lang}`)))) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n get name() {\n return this.props.get('name');\n }\n get order() {\n return this.get('order');\n }\n set order(order) {\n this.set('order', order);\n }\n get valid() {\n const { validator } = this;\n return validator ? validator.validity.valid : true;\n }\n get validationMessage() {\n return this.getValidationMessage();\n }\n /**\n * 获取所有属性\n * @return 属性对象\n */\n getProps() {\n const dsField = this.findDataSetField();\n const lovCode = this.get('lovCode');\n return merge({ lookupUrl: getConfig('lookupUrl') }, Field.defaultProps, getPropsFromLovConfig(lovCode, ['textField', 'valueField']), dsField && dsField.props.toPOJO(), this.props.toPOJO());\n }\n /**\n * 根据属性名获取属性值\n * @param propsName 属性名\n * @return {any}\n */\n get(propsName) {\n const prop = this.getProp(propsName);\n if (prop !== undefined) {\n return prop;\n }\n return Field.defaultProps[propsName];\n }\n getProp(propsName) {\n if (!['computedProps', 'dynamicProps'].includes(propsName)) {\n const computedPropsMap = getIf(this, 'computedProps', () => new Map());\n const computedProp = computedPropsMap.get(propsName);\n if (computedProp) {\n const computedValue = computedProp.get();\n if (computedValue !== undefined) {\n return computedValue;\n }\n }\n else {\n const computedProps = this.get('computedProps');\n if (computedProps) {\n const newComputedProp = computed(() => {\n const computProp = computedProps[propsName];\n if (typeof computProp === 'function') {\n const prop = this.executeDynamicProps(computProp, propsName);\n if (prop !== undefined) {\n this.checkDynamicProp(propsName, prop);\n return prop;\n }\n }\n }, { name: propsName, context: this });\n computedPropsMap.set(propsName, newComputedProp);\n const computedValue = newComputedProp.get();\n if (computedValue !== undefined) {\n return computedValue;\n }\n }\n }\n const dynamicProps = this.get('dynamicProps');\n if (dynamicProps) {\n if (typeof dynamicProps === 'function') {\n warning(false, ` The dynamicProps hook will be deprecated. Please use dynamicProps map.\n For e.g,\n Bad case:\n dynamicProps({ record }) {\n return {\n bind: record.get('xx'),\n label: record.get('yy'),\n }\n }\n Good case:\n dynamicProps = {\n bind({ record }) {\n return record.get('xx')\n },\n label({ record }) {\n return record.get('yy'),\n }\n }`);\n const props = this.executeDynamicProps(dynamicProps, propsName);\n if (props && propsName in props) {\n const prop = props[propsName];\n this.checkDynamicProp(propsName, prop);\n return prop;\n }\n }\n else {\n const dynamicProp = dynamicProps[propsName];\n if (typeof dynamicProp === 'function') {\n const prop = this.executeDynamicProps(dynamicProp, propsName);\n if (prop !== undefined) {\n this.checkDynamicProp(propsName, prop);\n return prop;\n }\n }\n }\n this.checkDynamicProp(propsName, undefined);\n }\n }\n const value = this.props.get(propsName);\n if (value !== undefined) {\n return value;\n }\n const dsField = this.findDataSetField();\n if (dsField) {\n const dsValue = dsField.getProp(propsName);\n if (dsValue !== undefined) {\n return dsValue;\n }\n }\n if (propsName === 'lookup') {\n const { dataSet } = this;\n if (dataSet) {\n const lookupToken = this.get(LOOKUP_TOKEN);\n const { lookupCaches } = dataSet;\n if (lookupToken && lookupCaches) {\n return lookupCaches.get(lookupToken);\n }\n }\n }\n if (propsName === 'textField' || propsName === 'valueField') {\n const lovCode = this.get('lovCode');\n const lovProp = getPropsFromLovConfig(lovCode, [propsName])[propsName];\n if (lovProp) {\n return lovProp;\n }\n }\n if (propsName === 'lookupUrl') {\n return getConfig(propsName);\n }\n if (['min', 'max'].includes(propsName)) {\n if (this.type === FieldType.number) {\n if (propsName === 'max') {\n return MAX_SAFE_INTEGER;\n }\n return MIN_SAFE_INTEGER;\n }\n }\n return undefined;\n }\n /**\n * 设置属性值\n * @param propsName 属性名\n * @param value 属性值\n * @return {any}\n */\n set(propsName, value) {\n const oldValue = this.get(propsName);\n if (!isEqualDynamicProps(toJS(oldValue), value)) {\n const dirtyProps = getIf(this, 'dirtyProps', {});\n if (!(propsName in dirtyProps)) {\n set(dirtyProps, propsName, oldValue);\n }\n else if (isSame(toJS(dirtyProps[propsName]), value)) {\n remove(dirtyProps, propsName);\n }\n this.props.set(propsName, value);\n const { record, dataSet, name } = this;\n if (record && propsName === 'type') {\n record.set(name, processValue(record.get(name), this));\n }\n if (dataSet) {\n dataSet.fireEvent(DataSetEvents.fieldChange, {\n dataSet,\n record,\n name,\n field: this,\n propsName,\n value,\n oldValue,\n });\n }\n this.handlePropChange(propsName, value, oldValue);\n }\n }\n /**\n * 根据lookup值获取lookup对象\n * @param value lookup值\n * @return {object}\n */\n getLookupData(value = this.getValue()) {\n const valueField = this.get('valueField');\n const data = {};\n if (this.lookup) {\n return this.lookup.find(obj => isSameLike(get(obj, valueField), value)) || data;\n }\n return data;\n }\n getValue() {\n const { dataSet, name } = this;\n const record = this.record || (dataSet && dataSet.current);\n if (record) {\n return record.get(name);\n }\n }\n /**\n * 可以根据lookup值获取含义\n * @param value lookup值\n * @param boolean showValueIfNotFound\n * @return {string}\n */\n getLookupText(value = this.getValue(), showValueIfNotFound) {\n const textField = this.get('textField');\n const valueField = this.get('valueField');\n const { lookup } = this;\n if (lookup) {\n const found = lookup.find(obj => isSameLike(get(obj, valueField), value));\n if (found) {\n return get(found, textField);\n }\n if (showValueIfNotFound) {\n return value;\n }\n return undefined;\n }\n }\n /**\n * 可以根据options值获取含义\n * @param value opions值\n * @param boolean showValueIfNotFound\n * @return {string}\n */\n getOptionsText(value = this.getValue(), showValueIfNotFound) {\n const textField = this.get('textField');\n const valueField = this.get('valueField');\n const { options } = this;\n if (options) {\n const found = options.find(record => isSameLike(record.get(valueField), value));\n if (found) {\n return found.get(textField);\n }\n if (showValueIfNotFound) {\n return value;\n }\n return undefined;\n }\n }\n /**\n * 根据lookup值获取lookup含义\n * @param value lookup值\n * @param boolean showValueIfNotFound\n * @return {string}\n */\n getText(value = this.getValue(), showValueIfNotFound) {\n const { lookup } = this;\n if (lookup && !isObject(value)) {\n return this.getLookupText(value, showValueIfNotFound);\n }\n const options = this.get('options');\n const textField = this.get('textField');\n if (options) {\n const valueField = this.get('valueField');\n const found = options.find(record => isSameLike(record.get(valueField), value));\n if (found) {\n return found.get(textField);\n }\n }\n if (textField && isObject(value)) {\n if (isObservableObject(value)) {\n return get(value, textField);\n }\n return value[textField];\n }\n return value;\n }\n setOptions(options) {\n this.set('options', options);\n }\n getOptions() {\n return this.options;\n }\n /**\n * 重置设置的属性\n */\n reset() {\n const { dirtyProps } = this;\n if (dirtyProps) {\n this.props.merge(dirtyProps);\n this.dirtyProps = undefined;\n }\n }\n commit() {\n const { validator } = this;\n if (validator) {\n validator.reset();\n }\n }\n /**\n * 是否必选\n * @return true | false\n */\n get required() {\n return this.get('required');\n }\n /**\n * 设置是否必选\n * @param required 是否必选\n */\n set required(required) {\n this.set('required', required);\n }\n /**\n * 是否只读\n * @return true | false\n */\n get readOnly() {\n return this.get('readOnly');\n }\n /**\n * 是否禁用\n * @return true | false\n */\n get disabled() {\n return this.get('disabled');\n }\n /**\n * 设置是否只读\n * @param readOnly 是否只读\n */\n set readOnly(readOnly) {\n this.set('readOnly', readOnly);\n }\n /**\n * 设置是否禁用\n * @param disabled 是否禁用\n */\n set disabled(disabled) {\n this.set('disabled', disabled);\n }\n /**\n * 获取字段类型\n * @return 获取字段类型\n */\n get type() {\n return this.get('type');\n }\n /**\n * 设置字段类型\n * @param type 字段类型\n */\n set type(type) {\n this.set('type', type);\n }\n /**\n * 设置Lov的查询参数\n * @param {String} name\n * @param {Object} value\n */\n setLovPara(name, value) {\n const p = toJS(this.get('lovPara')) || {};\n if (value === null) {\n delete p[name];\n }\n else {\n p[name] = value;\n }\n this.set('lovPara', p);\n }\n getValidatorProps() {\n const { record } = this;\n if (record) {\n const { dataSet, name, type, required, attachmentCount } = this;\n const baseType = getBaseType(type);\n const customValidator = this.get('validator');\n const max = this.get('max');\n const min = this.get('min');\n const format = this.get('format') || getDateFormatByField(this, this.type);\n const pattern = this.get('pattern');\n const step = this.get('step');\n const nonStrictStep = this.get('nonStrictStep') === undefined ? getConfig('numberFieldNonStrictStep') : this.get('nonStrictStep');\n const minLength = baseType !== FieldType.string ? undefined : this.get('minLength');\n const maxLength = baseType !== FieldType.string ? undefined : this.get('maxLength');\n const label = this.get('label');\n const range = this.get('range');\n const multiple = this.get('multiple');\n const unique = this.get('unique');\n const defaultValidationMessages = this.get('defaultValidationMessages');\n const validatorProps = {\n type,\n required,\n record,\n dataSet,\n name,\n unique,\n customValidator,\n pattern,\n max: getLimit(max, record),\n min: getLimit(min, record),\n step,\n nonStrictStep,\n minLength,\n maxLength,\n label,\n range,\n multiple,\n format,\n attachmentCount,\n defaultValidationMessages,\n };\n if (!this.validatorPropKeys) {\n this.validatorPropKeys = Object.keys(omit(validatorProps, ['label', 'defaultValidationMessages']));\n }\n return validatorProps;\n }\n }\n /**\n * 校验字段值\n * 只有通过record.getField()获取的field才能校验\n * @return true | false\n */\n async checkValidity(report = true) {\n let valid = true;\n const { record } = this;\n if (record) {\n let { validator } = this;\n if (validator) {\n validator.reset();\n }\n else {\n validator = new Validator(this);\n this.validator = validator;\n }\n const value = record.get(this.name);\n valid = await validator.checkValidity(value);\n if (report && !record.validating) {\n record.reportValidity(valid);\n }\n }\n return valid;\n }\n /**\n * 请求lookup值, 如有缓存值直接获得。\n * @param noCache default: undefined\n * @return Promise<object[]>\n */\n fetchLookup(noCache = false) {\n const { dataSet } = this;\n if (dataSet) {\n const { lookup } = this;\n const lookupCaches = getIf(dataSet, 'lookupCaches', () => observable.map());\n const oldToken = this.get(LOOKUP_TOKEN);\n const batch = this.get('lookupBatchAxiosConfig') || getConfig('lookupBatchAxiosConfig');\n const lookupCode = this.get('lookupCode');\n let promise;\n if (batch && lookupCode && Object.keys(getLovPara(this, this.record)).length === 0) {\n const cachedLookup = lookupCaches.get(lookupCode);\n if (lookupCode !== oldToken) {\n this.set(LOOKUP_TOKEN, lookupCode);\n }\n if (cachedLookup) {\n if (isArrayLike(cachedLookup)) {\n promise = Promise.resolve(cachedLookup);\n }\n else {\n this.pending = true;\n promise = cachedLookup;\n }\n }\n if (!promise) {\n this.pending = true;\n promise = lookupStore.fetchLookupDataInBatch(lookupCode, batch).then(action((result) => {\n if (result) {\n lookupCaches.set(lookupCode, result);\n }\n return result;\n }));\n lookupCaches.set(lookupCode, promise);\n }\n }\n else {\n const axiosConfig = lookupStore.getAxiosConfig(this, noCache);\n if (axiosConfig.url) {\n const lookupToken = buildURLWithAxiosConfig(axiosConfig);\n if (lookupToken !== oldToken) {\n this.set(LOOKUP_TOKEN, lookupToken);\n }\n if (!noCache) {\n const cachedLookup = lookupCaches.get(lookupToken);\n if (cachedLookup) {\n if (isArrayLike(cachedLookup)) {\n promise = Promise.resolve(cachedLookup);\n }\n else {\n this.pending = true;\n promise = cachedLookup;\n }\n }\n }\n if (!promise) {\n this.pending = true;\n promise = lookupStore.fetchLookupData(axiosConfig).then(action((result) => {\n if (result) {\n lookupCaches.set(lookupToken, result);\n }\n return result;\n }));\n lookupCaches.set(lookupToken, promise);\n }\n }\n }\n if (promise) {\n return promise.then(action((result) => {\n this.pending = false;\n if (lookup && oldToken !== this.get(LOOKUP_TOKEN)) {\n const value = this.getValue();\n const valueField = this.get('valueField');\n if (value && valueField) {\n const values = this.get('multiple') ? [].concat(...value) : [].concat(value);\n this.set('lookupData', values.reduce((lookupData, v) => {\n const found = lookup.find(item => isSameLike(item[valueField], v));\n if (found) {\n lookupData.push(found);\n }\n return lookupData;\n }, []));\n }\n }\n return toJS(result);\n })).catch(e => {\n this.pending = false;\n throw e;\n });\n }\n }\n return Promise.resolve(undefined);\n }\n fetchLovConfig() {\n const lovCode = this.get('lovCode');\n if (lovCode) {\n lovCodeStore.fetchConfig(lovCode, this);\n }\n }\n fetchAttachments(props) {\n const { bucketName, bucketDirectory, attachmentUUID, storageCode } = props;\n const { fetchList } = getConfig('attachment');\n if (fetchList) {\n fetchList({ bucketName, bucketDirectory, attachmentUUID, storageCode }).then(action((results) => {\n this.attachments = results.map(file => new AttachmentFile(file));\n }));\n }\n }\n fetchAttachmentCount(uuid) {\n const { batchFetchCount } = getConfig('attachment');\n if (batchFetchCount && !this.attachments) {\n attachmentStore.fetchCountInBatch(uuid).then((count) => {\n this.attachmentCount = count;\n });\n }\n }\n isValid() {\n return this.valid;\n }\n getValidationMessage() {\n const { validator } = this;\n return validator ? validator.validationMessage : undefined;\n }\n getValidityState() {\n const { validator } = this;\n return validator ? validator.validity : undefined;\n }\n getValidationErrorValues() {\n const { validator } = this;\n return validator ? validator.validationResults : [];\n }\n ready() {\n return Promise.resolve(true);\n }\n findDataSetField() {\n const { dataSet, name, record } = this;\n if (record && dataSet && name) {\n return dataSet.getField(name);\n }\n }\n checkDynamicProp(propsName, newProp) {\n const lastDynamicProps = getIf(this, 'lastDynamicProps', {});\n const oldProp = lastDynamicProps[propsName];\n if (!isEqualDynamicProps(oldProp, newProp)) {\n raf(action(() => {\n const { validator, validatorPropKeys } = this;\n if (validator && (propsName === 'validator' || (validatorPropKeys && validatorPropKeys.includes(propsName)))) {\n validator.reset();\n }\n this.handlePropChange(propsName, newProp, oldProp);\n }));\n }\n lastDynamicProps[propsName] = newProp;\n }\n handlePropChange(propsName, newProp, oldProp) {\n if (propsName === 'bind' && this.type !== FieldType.intl) {\n const { record } = this;\n if (record && !this.dirty) {\n if (newProp && oldProp) {\n record.init(newProp, record.get(oldProp));\n }\n if (oldProp) {\n record.init(oldProp, undefined);\n }\n }\n return;\n }\n if (LOOKUP_SIDE_EFFECT_KEYS.includes(propsName)) {\n this.set('lookupData', undefined);\n this.fetchLookup();\n }\n if (LOV_SIDE_EFFECT_KEYS.includes(propsName)) {\n this.fetchLovConfig();\n }\n }\n executeDynamicProps(dynamicProps, propsName) {\n const { dataSet, name, record } = this;\n const dynamicPropsComputingChains = getIf(this, 'dynamicPropsComputingChains', []);\n if (dynamicPropsComputingChains.includes(propsName)) {\n warning(false, `Cycle dynamicProps execution of field<${name}>. [${dynamicPropsComputingChains.join(' -> ')} -> ${propsName}]`);\n }\n else if (dataSet) {\n dynamicPropsComputingChains.push(propsName);\n try {\n return dynamicProps({ dataSet, record, name });\n }\n catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(e);\n }\n }\n finally {\n dynamicPropsComputingChains.pop();\n }\n }\n }\n}\nField.defaultProps = {\n type: FieldType.auto,\n required: false,\n readOnly: false,\n disabled: false,\n group: false,\n textField: defaultTextField,\n valueField: defaultValueField,\n trueValue: true,\n falseValue: false,\n trim: FieldTrim.both,\n};\n__decorate([\n observable\n], Field.prototype, \"validator\", void 0);\n__decorate([\n observable\n], Field.prototype, \"pending\", void 0);\n__decorate([\n observable\n], Field.prototype, \"props\", void 0);\n__decorate([\n observable\n], Field.prototype, \"dirtyProps\", void 0);\n__decorate([\n computed\n], Field.prototype, \"options\", null);\n__decorate([\n action\n], Field.prototype, \"set\", null);\n__decorate([\n action\n], Field.prototype, \"reset\", null);\n__decorate([\n action\n], Field.prototype, \"commit\", null);\n__decorate([\n action\n], Field.prototype, \"setLovPara\", null);\n__decorate([\n action\n], Field.prototype, \"checkValidity\", null);\n__decorate([\n action\n], Field.prototype, \"fetchLookup\", null);\n","import { __decorate } from \"tslib\";\nimport { action, computed, isArrayLike, isObservableArray, isObservableObject, observable, runInAction, toJS } from 'mobx';\nimport merge from 'lodash/merge';\nimport isObject from 'lodash/isObject';\nimport pick from 'lodash/pick';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport omit from 'lodash/omit';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport DataSet, { addRecordField } from './DataSet';\nimport { axiosConfigAdapter, checkFieldType, childrenInfoForDelete, findBindField, findBindFields, findBindTargetFields, generateData, generateJSONData, generateResponseData, getChainFieldName, getIf, getRecordValue, getSortedFields, getUniqueKeysAndPrimaryKey, isDirtyRecord, processToJSON, processValue, useCascade, useDirtyField, useNormal, useSelected, } from './utils';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport { BooleanValue, DataSetEvents, DataSetSelection, FieldIgnore, FieldType, RecordStatus } from './enum';\nimport isSame from '../_util/isSame';\nimport { treeReduce } from '../_util/treeUtils';\n/**\n * 记录ID生成器\n */\nconst IDGen = (function* (start) {\n while (true) {\n yield ++start;\n }\n})(1000);\nconst EXPANDED_KEY = '__EXPANDED_KEY__'; // TODO:Symbol\nconst SELECTABLE_KEY = '__SELECTABLE_KEY__'; // TODO:Symbol\nconst SELECT_KEY = '__SELECT_KEY__'; // TODO:Symbol\nconst UNSELECT_KEY = '__UNSELECT_KEY__'; // TODO:Symbol\nexport default class Record {\n constructor(data = {}, dataSet, status = RecordStatus.add) {\n runInAction(() => {\n const initData = isObservableObject(data) ? toJS(data) : data;\n this.fields = observable.map();\n this.status = status;\n this.selectable = true;\n this.isSelected = false;\n this.id = IDGen.next().value;\n this.data = initData;\n if (dataSet) {\n this.dataSet = dataSet;\n const { fields } = dataSet;\n if (fields) {\n this.initFields(fields);\n }\n }\n this.processData(initData);\n });\n }\n get pristineData() {\n const { dirtyData } = this;\n const data = toJS(this.data);\n if (dirtyData) {\n [...dirtyData.entries()].forEach(([key, value]) => ObjectChainValue.set(data, key, value));\n }\n return data;\n }\n set pristineData(data) {\n runInAction(() => {\n const { dirtyData } = this;\n if (dirtyData) {\n const dirtyKeys = [...dirtyData.keys()];\n const newData = {};\n if (dirtyKeys.length) {\n dirtyKeys.forEach((key) => {\n const item = ObjectChainValue.get(this.data, key);\n ObjectChainValue.set(newData, key, item);\n const newItem = ObjectChainValue.get(data, key);\n if (isSame(item, newItem)) {\n dirtyData.delete(key);\n }\n else {\n dirtyData.set(key, newItem);\n }\n });\n }\n this.data = merge({}, data, newData);\n }\n else {\n this.data = data;\n }\n });\n }\n get selectable() {\n return this.getState(SELECTABLE_KEY);\n }\n set selectable(selectable) {\n runInAction(() => {\n if (!selectable) {\n this.isSelected = false;\n }\n this.setState(SELECTABLE_KEY, selectable);\n });\n }\n get isDataSetInAllPageSelection() {\n const { dataSet } = this;\n if (dataSet) {\n return dataSet.isAllPageSelection;\n }\n return false;\n }\n get isSelected() {\n if (this.isDataSetInAllPageSelection) {\n return !this.getState(UNSELECT_KEY);\n }\n return this.getState(SELECT_KEY);\n }\n set isSelected(isSelected) {\n if (this.isDataSetInAllPageSelection) {\n this.setState(UNSELECT_KEY, !isSelected);\n }\n else {\n this.setState(SELECT_KEY, isSelected);\n }\n }\n get key() {\n if (!this.isNew) {\n const { dataSet } = this;\n if (dataSet) {\n const { primaryKey } = dataSet.props;\n if (primaryKey) {\n const key = this.get(primaryKey);\n if (isString(key) || isNumber(key)) {\n return key;\n }\n }\n }\n }\n return this.id;\n }\n get index() {\n const { dataSet } = this;\n if (dataSet) {\n return dataSet.indexOf(this);\n }\n return -1;\n }\n get indexInParent() {\n const { parent, dataSet } = this;\n if (parent && parent.children) {\n return parent.children.indexOf(this);\n }\n if (dataSet) {\n return dataSet.treeRecords.indexOf(this);\n }\n return -1;\n }\n get isRemoved() {\n return this.status === RecordStatus.delete;\n }\n get isNew() {\n return this.status === RecordStatus.add;\n }\n get isSelectionIndeterminate() {\n const { dataSet } = this;\n if (dataSet && dataSet.selection === DataSetSelection.multiple) {\n const { children } = this;\n if (children) {\n let checkedLength = 0;\n return (children.some(record => {\n if (record.isSelectionIndeterminate) {\n return true;\n }\n if (record.isSelected) {\n checkedLength += 1;\n }\n return false;\n }) ||\n (checkedLength > 0 && checkedLength !== children.length));\n }\n }\n return false;\n }\n get isIndeterminate() {\n const { dataSet } = this;\n if (dataSet) {\n const { checkField } = dataSet.props;\n if (checkField) {\n const field = this.getField(checkField);\n const trueValue = field ? field.get(BooleanValue.trueValue) : true;\n const { children } = this;\n if (children) {\n let checkedLength = 0;\n return (children.some(record => {\n if (record.isIndeterminate) {\n return true;\n }\n if (record.get(checkField) === trueValue) {\n checkedLength += 1;\n }\n return false;\n }) ||\n (checkedLength > 0 && checkedLength !== children.length));\n }\n }\n }\n return false;\n }\n get isExpanded() {\n const { dataSet } = this;\n if (dataSet) {\n const { expandField } = dataSet.props;\n if (expandField) {\n const expanded = this.get(expandField);\n const field = this.getField(expandField);\n return expanded === (field ? field.get(BooleanValue.trueValue) : true);\n }\n }\n return this.getState(EXPANDED_KEY);\n }\n set isExpanded(expand) {\n const { dataSet } = this;\n if (dataSet) {\n const { expandField } = dataSet.props;\n if (expandField) {\n const field = this.getField(expandField);\n this.set(expandField, field\n ? expand\n ? field.get(BooleanValue.trueValue)\n : field.get(BooleanValue.falseValue)\n : expand);\n }\n else {\n this.setState(EXPANDED_KEY, expand);\n }\n }\n }\n get previousRecord() {\n const { parent, dataSet } = this;\n let children;\n if (parent) {\n children = parent.children;\n }\n else if (dataSet) {\n children = dataSet.treeData;\n }\n if (children) {\n return children[children.indexOf(this) - 1];\n }\n return undefined;\n }\n get nextRecord() {\n const { parent, dataSet } = this;\n let children;\n if (parent) {\n children = parent.children;\n }\n else if (dataSet) {\n children = dataSet.treeData;\n }\n if (children) {\n return children[children.indexOf(this) + 1];\n }\n return undefined;\n }\n get records() {\n const { dataSet } = this;\n if (dataSet) {\n const { cascadeParent } = this;\n if (cascadeParent && !cascadeParent.isCurrent) {\n return cascadeParent.getCascadeRecordsIncludeDelete(dataSet.parentName) || [];\n }\n return dataSet.records;\n }\n return [];\n }\n get children() {\n const { dataSet } = this;\n if (dataSet) {\n const { parentField, idField, childrenField } = dataSet.props;\n if (childrenField) {\n return this.$children;\n }\n if (parentField && idField) {\n const children = this.records.filter(record => {\n const childParentId = record.get(parentField);\n const id = this.get(idField);\n return !isNil(childParentId) && !isNil(id) && childParentId === id;\n });\n return children.length > 0 ? children : undefined;\n }\n }\n return undefined;\n }\n set children(children) {\n const { dataSet } = this;\n if (dataSet) {\n const { childrenField } = dataSet.props;\n if (childrenField) {\n this.$children = children;\n }\n else {\n throw new Error('Setter of record.children only support in `childrenField` mode.');\n }\n }\n }\n get parent() {\n const { dataSet } = this;\n if (dataSet) {\n const { parentField, idField, childrenField } = dataSet.props;\n if (childrenField) {\n return this.$parent;\n }\n if (parentField && idField) {\n return this.records.find(record => {\n const parentId = this.get(parentField);\n const id = record.get(idField);\n return !isNil(parentId) && !isNil(id) && parentId === id;\n });\n }\n }\n return undefined;\n }\n set parent(parent) {\n const { dataSet } = this;\n if (dataSet) {\n const { childrenField } = dataSet.props;\n if (childrenField) {\n this.$parent = parent;\n }\n else {\n throw new Error('Setter of record.parent only support in `childrenField` mode.');\n }\n }\n }\n get parents() {\n const { parent } = this;\n if (parent) {\n return [parent, ...parent.parents];\n }\n return [];\n }\n get path() {\n return [...this.parents, this];\n }\n get level() {\n const { parent } = this;\n if (parent) {\n return parent.level + 1;\n }\n return 0;\n }\n get dirty() {\n const { status } = this;\n if (status === RecordStatus.update) {\n return true;\n }\n const { dirtyData } = this;\n if (dirtyData && dirtyData.size > 0) {\n return true;\n }\n const { dataSet } = this;\n if (dataSet) {\n const { children } = dataSet;\n return Object.keys(children).some(key => (this.getCascadeRecordsIncludeDelete(key) || []).some(isDirtyRecord));\n }\n return false;\n }\n get cascadeParent() {\n const { dataSet } = this;\n if (dataSet) {\n const { parent, parentName } = dataSet;\n if (parent && parentName) {\n return parent.cascadeRecords.find(record => (record.getCascadeRecordsIncludeDelete(parentName) || []).indexOf(this) !== -1);\n }\n }\n return undefined;\n }\n /**\n * 转换成普通数据\n * 一般用于父级联数据源中的json类型字段\n * 禁止通过此方法获取某一个或几个字段值\n */\n toData(needIgnore, noCascade, isCascadeSelect, all = true) {\n const { status, dataSet, fields } = this;\n const dataToJSON = dataSet && dataSet.dataToJSON;\n const cascade = noCascade === undefined && dataToJSON ? useCascade(dataToJSON) : !noCascade;\n const normal = all || (dataToJSON && useNormal(dataToJSON));\n let dirty = status !== RecordStatus.sync;\n const childrenKeys = cascade && dataSet ? Object.keys(dataSet.children) : undefined;\n const jsonFieldKeys = childrenKeys && [...fields.entries()].reduce((fieldKeys, [key, field]) => {\n if (field.type === FieldType.json && childrenKeys.some(childKey => key === childKey || childKey.startsWith(`${key}.`))) {\n fieldKeys.push(key);\n }\n return fieldKeys;\n }, []);\n const json = this.normalizeData(needIgnore, jsonFieldKeys);\n if (cascade && this.normalizeCascadeData(json, normal, isCascadeSelect)) {\n dirty = true;\n }\n if (jsonFieldKeys) {\n jsonFieldKeys.forEach(key => ObjectChainValue.set(json, key, JSON.stringify(ObjectChainValue.get(json, key)), fields));\n }\n return {\n ...json,\n __dirty: dirty,\n };\n }\n /**\n * 转换成用于提交的数据\n */\n toJSONData(noCascade, isCascadeSelect) {\n const { status } = this;\n return {\n ...this.toData(true, noCascade, isCascadeSelect, false),\n __id: this.id,\n [getConfig('statusKey')]: getConfig('status')[status === RecordStatus.sync ? RecordStatus.update : status],\n };\n }\n validate(all, noCascade) {\n const { dataSet } = this;\n this.validating = true;\n const promises = [];\n if (all || this.status !== RecordStatus.sync) {\n [...this.fields.values()].forEach(field => promises.push(field.checkValidity(false)));\n }\n if (!noCascade && dataSet) {\n const childrenKeys = Object.keys(dataSet.children);\n if (childrenKeys.length) {\n const { dataSetSnapshot, isCurrent } = this;\n childrenKeys.forEach((key) => {\n const { children } = dataSet;\n const snapshot = dataSetSnapshot && dataSetSnapshot[key];\n const ds = children[key];\n const child = isCurrent ? ds : snapshot && new DataSet().restore(snapshot);\n if (child) {\n promises.push(child.validate());\n }\n else {\n const { dataToJSON } = ds;\n const cascade = noCascade === undefined && dataToJSON ? useCascade(dataToJSON) : !noCascade;\n ((useSelected(dataToJSON) ? this.getCascadeSelectedRecords(key) : this.getCascadeRecords(key)) || []).forEach(record => promises.push(record.validate(false, !cascade)));\n }\n });\n }\n }\n return Promise.all(promises)\n .then((results) => {\n const valid = results.every(result => result);\n this.reportValidity(valid);\n delete this.validating;\n return valid;\n }).catch((error) => {\n delete this.validating;\n throw error;\n });\n }\n reportValidity(result) {\n const { dataSet } = this;\n if (dataSet && !dataSet.validating) {\n const prepareForReport = getIf(this, 'prepareForReport', {});\n if (!result) {\n prepareForReport.result = result;\n }\n if (prepareForReport.timeout) {\n window.clearTimeout(prepareForReport.timeout);\n }\n prepareForReport.timeout = window.setTimeout(() => {\n dataSet.reportValidity(prepareForReport.result || true);\n delete this.prepareForReport;\n }, 200);\n }\n }\n ;\n getValidationErrors() {\n return [...this.fields.values()].reduce((results, field) => {\n if (!field.valid) {\n results.push({\n field,\n errors: field.getValidationErrorValues(),\n });\n }\n return results;\n }, []);\n }\n getField(fieldName) {\n if (fieldName) {\n return this.fields.get(fieldName);\n }\n }\n getCascadeRecordsIncludeDelete(fieldName) {\n const { dataSet } = this;\n if (fieldName && dataSet) {\n const childDataSet = dataSet.children[fieldName];\n if (childDataSet) {\n if (this.isCurrent) {\n return childDataSet.records.slice();\n }\n const { dataSetSnapshot } = this;\n const snapshot = dataSetSnapshot && dataSetSnapshot[fieldName];\n if (snapshot) {\n return snapshot.records;\n }\n const cascadeRecordsMap = getIf(this, 'cascadeRecordsMap', {});\n const cascadeRecords = cascadeRecordsMap[fieldName];\n if (cascadeRecords) {\n return cascadeRecords;\n }\n const data = this.get(fieldName);\n const cascading = getIf(this, 'cascading', {});\n if (!cascading[fieldName] && isObservableArray(data)) {\n cascading[fieldName] = true;\n const records = childDataSet.processData(data, this.isNew ? RecordStatus.add : RecordStatus.sync);\n delete cascading[fieldName];\n cascadeRecordsMap[fieldName] = records;\n return records;\n }\n }\n }\n }\n getCascadeRecords(fieldName) {\n const records = this.getCascadeRecordsIncludeDelete(fieldName);\n if (records) {\n return records.filter(r => !r.isRemoved);\n }\n }\n getCascadeSelectedRecordsIncludeDelete(fieldName) {\n const records = this.getCascadeRecordsIncludeDelete(fieldName);\n if (records) {\n return records.filter(r => r.isSelected);\n }\n }\n getCascadeSelectedRecords(fieldName) {\n const records = this.getCascadeRecordsIncludeDelete(fieldName);\n if (records) {\n return records.filter(r => !r.isRemoved && r.isSelected);\n }\n }\n get(fieldName) {\n return getRecordValue(this, (child, checkField) => child.get(checkField), fieldName);\n }\n set(item, value) {\n if (isString(item)) {\n const oldName = item;\n const fieldName = getChainFieldName(this, oldName);\n const field = this.getField(oldName) || this.getField(fieldName) || findBindField(oldName, fieldName, this) || addRecordField(this, oldName);\n checkFieldType(value, field);\n const oldValue = toJS(this.get(fieldName));\n const newValue = processValue(value, field);\n const newValueForCompare = processToJSON(newValue, field);\n if (!isSame(processToJSON(oldValue, field), newValueForCompare)) {\n const { fields } = this;\n ObjectChainValue.set(this.data, fieldName, newValue, fields);\n const dirtyData = getIf(this, 'dirtyData', () => observable.map());\n if (!(dirtyData.has(fieldName))) {\n dirtyData.set(fieldName, oldValue);\n if (this.status === RecordStatus.sync) {\n this.status = RecordStatus.update;\n }\n }\n else if (isSame(processToJSON(dirtyData.get(fieldName), field), newValueForCompare)) {\n dirtyData.delete(fieldName);\n if (this.status === RecordStatus.update && dirtyData.size === 0 && [...fields.values()].every(f => !f.dirty)) {\n this.status = RecordStatus.sync;\n }\n }\n const { dataSet } = this;\n if (dataSet) {\n dataSet.fireEvent(DataSetEvents.update, {\n dataSet,\n record: this,\n name: oldName,\n value: newValue,\n oldValue,\n });\n const { checkField } = dataSet.props;\n if (checkField && fieldName === getChainFieldName(this, checkField)) {\n const { children } = this;\n if (children) {\n children.forEach(record => record.set(fieldName, value));\n }\n }\n }\n }\n const { fields } = this;\n [field, ...findBindFields(field, fields, true), ...findBindTargetFields(field, fields, true)].forEach((oneField) => (oneField.checkValidity(false)));\n }\n else if (isPlainObject(item)) {\n Object.keys(item).forEach(key => this.set(key, item[key]));\n }\n return this;\n }\n getPristineValue(fieldName) {\n if (fieldName) {\n const chainFieldName = getChainFieldName(this, fieldName);\n const { dirtyData } = this;\n if (dirtyData && dirtyData.has(chainFieldName)) {\n return dirtyData.get(chainFieldName);\n }\n return this.get(chainFieldName);\n }\n }\n init(item, value) {\n const { fields, data, dirtyData } = this;\n if (isString(item)) {\n const oldName = item;\n const fieldName = getChainFieldName(this, oldName);\n const field = this.getField(oldName) || this.getField(fieldName) || findBindField(oldName, fieldName, this) || addRecordField(this, fieldName);\n const newValue = processValue(value, field);\n if (dirtyData) {\n dirtyData.delete(fieldName);\n }\n ObjectChainValue.set(data, fieldName, newValue, fields);\n field.commit();\n }\n else if (isPlainObject(item)) {\n Object.keys(item).forEach(key => this.init(key, item[key]));\n }\n return this;\n }\n clone() {\n const { dataSet } = this;\n const cloneData = this.toData();\n if (dataSet) {\n const { primaryKey } = dataSet.props;\n if (primaryKey) {\n delete cloneData[primaryKey];\n }\n return new Record(cloneData, dataSet);\n }\n return new Record(cloneData);\n }\n ready() {\n return Promise.resolve(true);\n // return Promise.all([...this.fields.values()].map(field => field.ready()));\n }\n async tls(name) {\n const tlsKey = getConfig('tlsKey');\n const { dataSet } = this;\n if (dataSet && name) {\n const tlsData = this.get(tlsKey) || {};\n if (!(name in tlsData)) {\n const { axios, lang } = dataSet;\n const { primaryKey } = dataSet.props;\n const newConfig = axiosConfigAdapter('tls', dataSet, {}, primaryKey && { key: this.get(primaryKey) }, { name, record: this });\n if (newConfig.url && !this.isNew) {\n const result = await axios(newConfig);\n if (result) {\n const dataKey = getConfig('dataKey');\n this.commitTls(generateResponseData(result, dataKey)[0], name);\n }\n }\n else {\n this.commitTls([...this.fields.entries()].reduce((data, [key, field]) => {\n if (field.type === FieldType.intl) {\n data[key] = {\n [lang]: this.get(key),\n };\n }\n return data;\n }, {}), name);\n }\n }\n }\n }\n reset() {\n const { status, fields, dataSet, dirty, isRemoved } = this;\n [...fields.values()].forEach(field => field.commit());\n if (status === RecordStatus.update || isRemoved) {\n this.status = RecordStatus.sync;\n }\n if (isRemoved || dirty) {\n this.data = toJS(this.pristineData);\n this.dirtyData = undefined;\n this.memo = undefined;\n if (dataSet && !dataSet.resetInBatch) {\n dataSet.fireEvent(DataSetEvents.reset, { records: [this], dataSet });\n }\n }\n return this;\n }\n save() {\n this.memo = toJS(this.data);\n return this;\n }\n restore() {\n const { memo } = this;\n if (memo) {\n this.set(memo);\n this.memo = undefined;\n }\n return this;\n }\n clear() {\n return this.set([...this.fields.keys()].reduce((obj, key) => {\n obj[key] = null;\n return obj;\n }, {}));\n }\n commit(data, dataSet) {\n if (dataSet) {\n const { records } = this;\n if (this.isRemoved) {\n const index = records.indexOf(this);\n if (index !== -1) {\n if (dataSet.records === records) {\n dataSet.totalCount -= 1;\n }\n records.splice(index, 1);\n }\n return this;\n }\n if (this.isNew) {\n const index = records.indexOf(this);\n if (index !== -1 && dataSet.records === records) {\n dataSet.totalCount += 1;\n }\n }\n if (data) {\n this.data = data;\n this.processData(data, true);\n const { children } = dataSet;\n const keys = Object.keys(children);\n if (keys.length) {\n const { isCurrent } = this;\n const tmpDs = new DataSet();\n const dataSetSnapshot = getIf(this, 'dataSetSnapshot', {});\n keys.forEach(key => {\n const snapshot = dataSetSnapshot[key];\n const ds = children[key];\n const child = isCurrent\n ? ds\n : snapshot && tmpDs.restore(snapshot);\n if (child) {\n dataSetSnapshot[key] = child.commitData(data[key] || []).snapshot();\n }\n else {\n const cascadeRecords = this.getCascadeRecordsIncludeDelete(key);\n if (cascadeRecords) {\n cascadeRecords.forEach(r => r.commit(omit(r.toData(), ['__dirty']), ds));\n }\n }\n });\n }\n }\n }\n this.dirtyData = undefined;\n [...this.fields.values()].forEach(field => field.commit());\n this.status = RecordStatus.sync;\n return this;\n }\n setState(item, value) {\n const state = getIf(this, 'state', () => observable.map());\n if (isString(item)) {\n state.set(item, value);\n }\n else if (isPlainObject(item)) {\n state.merge(item);\n }\n return this;\n }\n getState(key) {\n const { state } = this;\n return state && state.get(key);\n }\n treeReduce(fn, initialValue) {\n return treeReduce([this], fn, initialValue);\n }\n commitTls(data = {}, name) {\n const tlsKey = getConfig('tlsKey');\n if (!(name in data)) {\n data[name] = {};\n }\n Object.keys(data).forEach((key) => {\n const value = data[key];\n const field = this.getField(key);\n if (field) {\n const transformResponse = field.get('transformResponse');\n if (transformResponse) {\n const originValue = { ...value };\n Object.keys(value).forEach((language) => {\n value[language] = transformResponse(value[language], originValue);\n });\n }\n }\n ObjectChainValue.set(this.data, `${tlsKey}.${key}`, value);\n });\n }\n initFields(fields) {\n [...fields.keys()].forEach((key) => addRecordField(this, key));\n }\n addField(name, fieldProps = {}) {\n const old = this.fields.get(name);\n const field = addRecordField(this, name, fieldProps);\n if (!old) {\n const data = toJS(this.data);\n const newData = { ...data };\n this.processFieldValue(name, field, this.fields, newData, data);\n }\n return field;\n }\n processFieldValue(fieldName, field, fields, newData, data, needMerge) {\n let value = ObjectChainValue.get(newData, fieldName);\n const chainFieldName = getChainFieldName(this, fieldName);\n const transformResponse = field.get('transformResponse');\n if (chainFieldName !== fieldName) {\n const bindValue = ObjectChainValue.get(newData, chainFieldName);\n if (isNil(value) && !isNil(bindValue)) {\n value = bindValue;\n }\n }\n if (transformResponse) {\n value = transformResponse(value, data);\n }\n value = processValue(value, field, !needMerge && this.isNew);\n if (value === null) {\n value = undefined;\n }\n if (needMerge && isObject(value)) {\n const oldValue = ObjectChainValue.get(this.data, chainFieldName);\n if (isObject(oldValue)) {\n value = merge(oldValue, value);\n }\n }\n ObjectChainValue.set(newData, chainFieldName, value, fields);\n ObjectChainValue.set(this.data, chainFieldName, value, fields);\n }\n processData(data = {}, needMerge) {\n const newData = { ...data };\n const { fields } = this;\n getSortedFields(fields).forEach(([fieldName, field]) => this.processFieldValue(fieldName, field, fields, newData, data, needMerge));\n }\n normalizeData(needIgnore, jsonFields) {\n const { fields, dataSet } = this;\n const dataToJSON = dataSet && dataSet.dataToJSON;\n const onlyDirtyField = needIgnore && dataToJSON ? useDirtyField(dataToJSON) : false;\n const neverKeys = onlyDirtyField ? getUniqueKeysAndPrimaryKey(dataSet) : [];\n const json = onlyDirtyField ? pick(this.data, neverKeys) : toJS(this.data);\n const fieldIgnore = onlyDirtyField ? FieldIgnore.clean : undefined;\n const objectFieldsList = [];\n const normalFields = [];\n const ignoreFieldNames = new Set();\n [...fields.entries()].forEach(([key, field]) => {\n if (field && (!jsonFields || !jsonFields.includes(key))) {\n const ignore = field.get('ignore') || fieldIgnore;\n if (needIgnore &&\n !neverKeys.includes(key) &&\n (ignore === FieldIgnore.always || (ignore === FieldIgnore.clean && !field.dirty))) {\n ignoreFieldNames.add(key);\n }\n else {\n const type = field.get('type');\n if (type === FieldType.object) {\n const level = key.split('.').length - 1;\n objectFieldsList[level] = (objectFieldsList[level] || []).concat(field);\n }\n else {\n normalFields.push(field);\n }\n }\n }\n });\n [...objectFieldsList, normalFields].forEach(items => {\n if (items) {\n items.forEach(field => {\n const { name } = field;\n let value = ObjectChainValue.get(onlyDirtyField ? { ...this.data, ...json } : json, name);\n const bind = field.get('bind');\n const transformRequest = field.get('transformRequest');\n if (bind) {\n value = this.get(getChainFieldName(this, name));\n }\n const old = value;\n value = processToJSON(value, field);\n if (transformRequest) {\n // compatible old logic\n value = isString(field.get('multiple')) && isArrayLike(old) ?\n transformRequest(value, this) :\n processToJSON(transformRequest(old, this), field);\n }\n if (value !== undefined) {\n ObjectChainValue.set(json, name, value, fields);\n }\n else {\n ignoreFieldNames.add(name);\n }\n });\n }\n });\n [...ignoreFieldNames].forEach(key => ObjectChainValue.remove(json, key));\n return json;\n }\n normalizeCascadeData(json, normal, isSelect) {\n const { dataSetSnapshot, dataSet, fields, isRemoved } = this;\n if (dataSet) {\n let dirty = false;\n const { children } = dataSet;\n if (isRemoved) {\n childrenInfoForDelete(json, children);\n }\n else {\n const keys = Object.keys(children);\n if (keys.length) {\n const { isCurrent } = this;\n keys.forEach(name => {\n const snapshot = dataSetSnapshot && dataSetSnapshot[name];\n const child = (!isCurrent && snapshot && new DataSet().restore(snapshot)) || children[name];\n if (child) {\n const { dataToJSON } = child;\n const records = this.getCascadeRecordsIncludeDelete(name);\n const selected = isSelect || useSelected(dataToJSON) ? this.getCascadeSelectedRecordsIncludeDelete(name) : records;\n const jsonArray = normal || useNormal(dataToJSON)\n ? records && generateData(records)\n : selected && generateJSONData(child, selected);\n if (jsonArray) {\n if (jsonArray.dirty) {\n dirty = true;\n }\n ObjectChainValue.set(json, name, jsonArray.data, fields);\n }\n }\n });\n }\n }\n return dirty;\n }\n }\n}\n__decorate([\n observable\n], Record.prototype, \"fields\", void 0);\n__decorate([\n observable\n], Record.prototype, \"data\", void 0);\n__decorate([\n observable\n], Record.prototype, \"dirtyData\", void 0);\n__decorate([\n computed\n], Record.prototype, \"pristineData\", null);\n__decorate([\n observable\n], Record.prototype, \"status\", void 0);\n__decorate([\n observable\n], Record.prototype, \"isCurrent\", void 0);\n__decorate([\n observable\n], Record.prototype, \"isCached\", void 0);\n__decorate([\n observable\n], Record.prototype, \"editing\", void 0);\n__decorate([\n observable\n], Record.prototype, \"pending\", void 0);\n__decorate([\n observable\n], Record.prototype, \"childrenLoaded\", void 0);\n__decorate([\n observable\n], Record.prototype, \"state\", void 0);\n__decorate([\n computed\n], Record.prototype, \"key\", null);\n__decorate([\n computed\n], Record.prototype, \"index\", null);\n__decorate([\n computed\n], Record.prototype, \"indexInParent\", null);\n__decorate([\n computed\n], Record.prototype, \"isSelectionIndeterminate\", null);\n__decorate([\n computed\n], Record.prototype, \"isIndeterminate\", null);\n__decorate([\n computed\n], Record.prototype, \"isExpanded\", null);\n__decorate([\n computed\n], Record.prototype, \"previousRecord\", null);\n__decorate([\n computed\n], Record.prototype, \"nextRecord\", null);\n__decorate([\n computed\n], Record.prototype, \"records\", null);\n__decorate([\n computed\n], Record.prototype, \"children\", null);\n__decorate([\n computed\n], Record.prototype, \"parent\", null);\n__decorate([\n computed\n], Record.prototype, \"parents\", null);\n__decorate([\n computed\n], Record.prototype, \"path\", null);\n__decorate([\n computed\n], Record.prototype, \"dirty\", null);\n__decorate([\n computed\n], Record.prototype, \"cascadeParent\", null);\n__decorate([\n action\n], Record.prototype, \"set\", null);\n__decorate([\n action\n], Record.prototype, \"init\", null);\n__decorate([\n action\n], Record.prototype, \"tls\", null);\n__decorate([\n action\n], Record.prototype, \"reset\", null);\n__decorate([\n action\n], Record.prototype, \"save\", null);\n__decorate([\n action\n], Record.prototype, \"restore\", null);\n__decorate([\n action\n], Record.prototype, \"clear\", null);\n__decorate([\n action\n], Record.prototype, \"commit\", null);\n__decorate([\n action\n], Record.prototype, \"setState\", null);\n__decorate([\n action\n], Record.prototype, \"commitTls\", null);\n__decorate([\n action\n], Record.prototype, \"addField\", null);\n","import { __decorate } from \"tslib\";\nimport { computed, observable, runInAction } from 'mobx';\nexport default class Transport {\n constructor(props = {}, dataSet) {\n runInAction(() => {\n this.props = props;\n this.dataSet = dataSet;\n });\n }\n set create(create) {\n runInAction(() => {\n this.props.create = create;\n });\n }\n get create() {\n return this.props.create;\n }\n set read(read) {\n runInAction(() => {\n this.props.read = read;\n });\n }\n get read() {\n return this.props.read || this.dataSet.queryUrl;\n }\n set update(update) {\n runInAction(() => {\n this.props.update = update;\n });\n }\n get update() {\n return this.props.update;\n }\n set destroy(destroy) {\n runInAction(() => {\n this.props.destroy = destroy;\n });\n }\n get destroy() {\n return this.props.destroy;\n }\n set validate(validate) {\n runInAction(() => {\n this.props.validate = validate;\n });\n }\n get validate() {\n return this.props.validate || this.dataSet.validateUrl;\n }\n set submit(submit) {\n runInAction(() => {\n this.props.submit = submit;\n });\n }\n get submit() {\n return this.props.submit || this.dataSet.submitUrl;\n }\n set exports(exports) {\n runInAction(() => {\n this.props.exports = exports;\n });\n }\n get exports() {\n return this.props.exports || this.dataSet.exportUrl;\n }\n set tls(tls) {\n runInAction(() => {\n this.props.tls = tls;\n });\n }\n get tls() {\n return this.props.tls || this.dataSet.tlsUrl;\n }\n set adapter(adapter) {\n runInAction(() => {\n this.props.adapter = adapter;\n });\n }\n get adapter() {\n return this.props.adapter;\n }\n}\n__decorate([\n observable\n], Transport.prototype, \"props\", void 0);\n__decorate([\n computed\n], Transport.prototype, \"create\", null);\n__decorate([\n computed\n], Transport.prototype, \"read\", null);\n__decorate([\n computed\n], Transport.prototype, \"update\", null);\n__decorate([\n computed\n], Transport.prototype, \"destroy\", null);\n__decorate([\n computed\n], Transport.prototype, \"validate\", null);\n__decorate([\n computed\n], Transport.prototype, \"submit\", null);\n__decorate([\n computed\n], Transport.prototype, \"exports\", null);\n__decorate([\n computed\n], Transport.prototype, \"tls\", null);\n__decorate([\n computed\n], Transport.prototype, \"adapter\", null);\n","export var DataSetEvents;\n(function (DataSetEvents) {\n DataSetEvents[\"query\"] = \"query\";\n DataSetEvents[\"beforeLoad\"] = \"beforeLoad\";\n DataSetEvents[\"beforeAppend\"] = \"beforeAppend\";\n DataSetEvents[\"load\"] = \"load\";\n DataSetEvents[\"append\"] = \"append\";\n DataSetEvents[\"loadFailed\"] = \"loadFailed\";\n DataSetEvents[\"submit\"] = \"submit\";\n DataSetEvents[\"submitSuccess\"] = \"submitSuccess\";\n DataSetEvents[\"submitFailed\"] = \"submitFailed\";\n DataSetEvents[\"select\"] = \"select\";\n DataSetEvents[\"unSelect\"] = \"unSelect\";\n DataSetEvents[\"selectAll\"] = \"selectAll\";\n DataSetEvents[\"unSelectAll\"] = \"unSelectAll\";\n DataSetEvents[\"batchSelect\"] = \"batchSelect\";\n DataSetEvents[\"batchUnSelect\"] = \"batchUnSelect\";\n DataSetEvents[\"indexChange\"] = \"indexChange\";\n DataSetEvents[\"update\"] = \"update\";\n DataSetEvents[\"fieldChange\"] = \"fieldChange\";\n DataSetEvents[\"export\"] = \"export\";\n DataSetEvents[\"create\"] = \"create\";\n DataSetEvents[\"beforeRemove\"] = \"beforeRemove\";\n DataSetEvents[\"remove\"] = \"remove\";\n DataSetEvents[\"beforeDelete\"] = \"beforeDelete\";\n DataSetEvents[\"reset\"] = \"reset\";\n DataSetEvents[\"validate\"] = \"validate\";\n})(DataSetEvents || (DataSetEvents = {}));\nexport var ExportMode;\n(function (ExportMode) {\n ExportMode[\"server\"] = \"server\";\n ExportMode[\"client\"] = \"client\";\n})(ExportMode || (ExportMode = {}));\nexport var DataSetSelection;\n(function (DataSetSelection) {\n DataSetSelection[\"single\"] = \"single\";\n DataSetSelection[\"multiple\"] = \"multiple\";\n})(DataSetSelection || (DataSetSelection = {}));\nexport var DataSetStatus;\n(function (DataSetStatus) {\n DataSetStatus[\"loading\"] = \"loading\";\n DataSetStatus[\"submitting\"] = \"submitting\";\n DataSetStatus[\"ready\"] = \"ready\";\n})(DataSetStatus || (DataSetStatus = {}));\nexport var DataSetExportStatus;\n(function (DataSetExportStatus) {\n DataSetExportStatus[\"exporting\"] = \"exporting\";\n DataSetExportStatus[\"success\"] = \"success\";\n DataSetExportStatus[\"progressing\"] = \"progressing\";\n DataSetExportStatus[\"start\"] = \"start\";\n DataSetExportStatus[\"failed\"] = \"failed\";\n})(DataSetExportStatus || (DataSetExportStatus = {}));\nexport var RecordStatus;\n(function (RecordStatus) {\n RecordStatus[\"delete\"] = \"delete\";\n RecordStatus[\"update\"] = \"update\";\n RecordStatus[\"add\"] = \"add\";\n RecordStatus[\"sync\"] = \"sync\";\n})(RecordStatus || (RecordStatus = {}));\nexport var FieldType;\n(function (FieldType) {\n FieldType[\"auto\"] = \"auto\";\n FieldType[\"boolean\"] = \"boolean\";\n FieldType[\"number\"] = \"number\";\n FieldType[\"currency\"] = \"currency\";\n FieldType[\"string\"] = \"string\";\n FieldType[\"date\"] = \"date\";\n FieldType[\"dateTime\"] = \"dateTime\";\n FieldType[\"week\"] = \"week\";\n FieldType[\"month\"] = \"month\";\n FieldType[\"year\"] = \"year\";\n FieldType[\"time\"] = \"time\";\n FieldType[\"object\"] = \"object\";\n FieldType[\"intl\"] = \"intl\";\n FieldType[\"email\"] = \"email\";\n FieldType[\"url\"] = \"url\";\n FieldType[\"color\"] = \"color\";\n FieldType[\"json\"] = \"json\";\n FieldType[\"attachment\"] = \"attachment\";\n FieldType[\"reactNode\"] = \"reactNode\";\n})(FieldType || (FieldType = {}));\nexport var SortOrder;\n(function (SortOrder) {\n SortOrder[\"asc\"] = \"asc\";\n SortOrder[\"desc\"] = \"desc\";\n})(SortOrder || (SortOrder = {}));\nexport var BooleanValue;\n(function (BooleanValue) {\n BooleanValue[\"trueValue\"] = \"trueValue\";\n BooleanValue[\"falseValue\"] = \"falseValue\";\n})(BooleanValue || (BooleanValue = {}));\nexport var FieldIgnore;\n(function (FieldIgnore) {\n FieldIgnore[\"always\"] = \"always\";\n FieldIgnore[\"clean\"] = \"clean\";\n FieldIgnore[\"never\"] = \"never\";\n})(FieldIgnore || (FieldIgnore = {}));\nexport var FieldTrim;\n(function (FieldTrim) {\n FieldTrim[\"both\"] = \"both\";\n FieldTrim[\"left\"] = \"left\";\n FieldTrim[\"right\"] = \"right\";\n FieldTrim[\"none\"] = \"none\";\n})(FieldTrim || (FieldTrim = {}));\nexport var FieldFormat;\n(function (FieldFormat) {\n FieldFormat[\"uppercase\"] = \"uppercase\";\n FieldFormat[\"lowercase\"] = \"lowercase\";\n FieldFormat[\"capitalize\"] = \"capitalize\";\n})(FieldFormat || (FieldFormat = {}));\nexport var DataToJSON;\n(function (DataToJSON) {\n DataToJSON[\"dirty\"] = \"dirty\";\n DataToJSON[\"selected\"] = \"selected\";\n DataToJSON[\"all\"] = \"all\";\n DataToJSON[\"normal\"] = \"normal\";\n DataToJSON[\"dirty-field\"] = \"dirty-field\";\n DataToJSON[\"dirty-self\"] = \"dirty-self\";\n DataToJSON[\"selected-self\"] = \"selected-self\";\n DataToJSON[\"all-self\"] = \"all-self\";\n DataToJSON[\"normal-self\"] = \"normal-self\";\n DataToJSON[\"dirty-field-self\"] = \"dirty-field-self\";\n})(DataToJSON || (DataToJSON = {}));\nexport var CheckedStrategy;\n(function (CheckedStrategy) {\n CheckedStrategy[\"SHOW_ALL\"] = \"SHOW_ALL\";\n CheckedStrategy[\"SHOW_PARENT\"] = \"SHOW_PARENT\";\n CheckedStrategy[\"SHOW_CHILD\"] = \"SHOW_CHILD\";\n})(CheckedStrategy || (CheckedStrategy = {}));\n","import DataSet from './DataSet';\nexport default DataSet;\n","export { DataSetEvents, ExportMode, DataSetSelection, DataSetStatus, RecordStatus, FieldType, SortOrder, BooleanValue, FieldIgnore, FieldTrim, FieldFormat, DataToJSON, DataSetExportStatus, } from './enum';\nexport { RecordValidationErrors, ValidationErrors, DataSetChildren, Events, DataSetProps, Group, } from './DataSet';\nexport { DataSetComponentProps, } from './DataSetComponent';\nexport { FeedBack } from './FeedBack';\nexport { Fields, DynamicPropsArguments, FieldProps, HighlightProps, } from './Field';\nexport { SubmitTypes, TransportTypes, TransportAdapter, TransportHookProps, TransportHook, TransportType, TransportProps, } from './Transport';\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n// style dependencies\nimport '../../modal-container/style';\nimport '../../message/style';\n","import queryString from 'querystringify';\nimport moment, { isDate, isMoment } from 'moment';\nimport { isArrayLike } from 'mobx';\nimport isBoolean from 'lodash/isBoolean';\nimport isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport isNil from 'lodash/isNil';\nimport _isEmpty from 'lodash/isEmpty';\n// import XLSX from 'xlsx';\nimport { BooleanValue, DataToJSON, FieldType, RecordStatus, SortOrder } from './enum';\nimport isEmpty from '../_util/isEmpty';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport localeContext, { $l } from '../locale-context';\nimport formatString from '../formatter/formatString';\nimport { parseNumber } from '../number-field/utils';\nimport { treeReduce } from '../_util/treeUtils';\nexport const defaultTextField = 'meaning';\nexport const defaultValueField = 'value';\nexport function useNormal(dataToJSON) {\n return [DataToJSON.normal, DataToJSON['normal-self']].includes(dataToJSON);\n}\nexport function useAll(dataToJSON) {\n return [DataToJSON.all, DataToJSON['all-self']].includes(dataToJSON);\n}\nexport function useSelected(dataToJSON) {\n return [DataToJSON.selected, DataToJSON['selected-self']].includes(dataToJSON);\n}\nexport function useCascade(dataToJSON) {\n return [DataToJSON.dirty, DataToJSON['dirty-field'], DataToJSON.selected, DataToJSON.all, DataToJSON.normal].includes(dataToJSON);\n}\nexport function useDirty(dataToJSON) {\n return [DataToJSON.dirty, DataToJSON['dirty-self']].includes(dataToJSON);\n}\nexport function useDirtyField(dataToJSON) {\n return [DataToJSON['dirty-field'], DataToJSON['dirty-field-self']].includes(dataToJSON);\n}\nexport function append(url, suffix) {\n if (suffix) {\n return url + queryString.stringify(suffix, url.indexOf('?') === -1);\n }\n return url;\n}\nexport function getOrderFields(fields) {\n return [...fields.values()].filter(({ order }) => order);\n}\nfunction processOneToJSON(value, field, checkRange = true) {\n if (!isEmpty(value)) {\n const range = field.get('range');\n if (range && checkRange) {\n if (isArrayLike(range)) {\n if (isObject(value)) {\n const [start, end] = range;\n value = {\n [start]: processOneToJSON(value[start], field, false),\n [end]: processOneToJSON(value[end], field, false),\n };\n }\n }\n else if (isArrayLike(value)) {\n value = [\n processOneToJSON(value[0], field, false),\n processOneToJSON(value[1], field, false),\n ];\n }\n }\n else {\n if (isDate(value)) {\n value = moment(value);\n }\n if (isMoment(value)) {\n const { jsonDate } = getConfig('formatter');\n value = jsonDate ? value.format(jsonDate) : +value;\n }\n if (field.type === FieldType.json) {\n value = JSON.stringify(value);\n }\n }\n }\n return value;\n}\nexport function processToJSON(value, field) {\n if (!isEmpty(value)) {\n const multiple = field.get('multiple');\n const range = field.get('range');\n if (isArrayLike(value) && (multiple || !range)) {\n value = value.map(v => processOneToJSON(v, field));\n if (isString(multiple)) {\n return value.join(multiple);\n }\n return value;\n }\n return processOneToJSON(value, field);\n }\n return value;\n}\nexport function arrayMove(array, from, to) {\n const startIndex = to < 0 ? array.length + to : to;\n const item = array.splice(from, 1)[0];\n array.splice(startIndex, 0, item);\n}\nfunction processOne(value, field, checkRange = true) {\n if (!isEmpty(value)) {\n const range = field.get('range');\n if (range && checkRange) {\n if (isArrayLike(range)) {\n if (isObject(value)) {\n const [start, end] = range;\n value[start] = processOne(value[start], field, false);\n value[end] = processOne(value[end], field, false);\n }\n }\n else if (isArrayLike(value)) {\n value[0] = processOne(value[0], field, false);\n value[1] = processOne(value[1], field, false);\n }\n }\n else if (value instanceof Date) {\n value = moment(value);\n }\n else if (!isObject(value)) {\n value = formatString(value, {\n trim: field.get('trim'),\n format: field.get('format'),\n });\n switch (field.type) {\n case FieldType.boolean: {\n const trueValue = field.get(BooleanValue.trueValue);\n const falseValue = field.get(BooleanValue.falseValue);\n if (value !== trueValue) {\n value = falseValue;\n }\n break;\n }\n case FieldType.number:\n case FieldType.currency:\n if (!isNaN(value)) {\n value = parseNumber(value, field.get('precision'));\n }\n else {\n value = undefined;\n }\n break;\n case FieldType.string:\n case FieldType.intl:\n case FieldType.email:\n case FieldType.url:\n value = String(value);\n break;\n case FieldType.date:\n case FieldType.dateTime:\n case FieldType.time:\n case FieldType.week:\n case FieldType.month:\n case FieldType.year: {\n const { jsonDate } = getConfig('formatter');\n value = jsonDate ? moment(value, jsonDate) : moment(value);\n break;\n }\n case FieldType.json:\n value = JSON.parse(value);\n break;\n default:\n }\n }\n }\n return value;\n}\nexport function processValue(value, field, isCreated) {\n if (field) {\n const multiple = field.get('multiple');\n const range = field.get('range');\n if (multiple && field.type !== FieldType.attachment) {\n if (isEmpty(value)) {\n if (isCreated) {\n // for defaultValue\n value = undefined;\n }\n else {\n value = [];\n }\n }\n else if (!isArray(value)) {\n if (isString(multiple) && isString(value)) {\n value = value.split(multiple);\n }\n else {\n value = [value];\n }\n }\n }\n if (isArray(value) && (multiple || !range)) {\n return value.map(item => processOne(item, field));\n }\n return processOne(value, field);\n }\n return value;\n}\n// 处理单个range\nconst processRangeToText = (resultValue, field) => {\n return resultValue.map((item) => {\n const valueRange = isMoment(item)\n ? item.format()\n : isObject(item)\n ? item[field.get('textField')]\n : item.toString();\n return valueRange;\n }).join(`~`);\n};\nexport function processExportValue(value, field) {\n if (field) {\n const multiple = field.get('multiple');\n const range = field.get('range');\n if (multiple) {\n if (isEmpty(value)) {\n value = [];\n }\n else if (!isArray(value)) {\n if (isString(multiple) && isString(value)) {\n value = value.split(multiple);\n }\n else {\n value = [value];\n }\n }\n }\n if (isArray(value) && (multiple || !range)) {\n if (field && !_isEmpty(field.lookup)) {\n return value.map(item => field.getText(processOne(item, field))).join(',');\n }\n return value.map(item => {\n const itemValue = processOne(item, field);\n if (field && field.get('textField') && itemValue && isObject(itemValue)) {\n return itemValue[field.get('textField')];\n }\n return itemValue;\n }).join(',');\n }\n if (isArray(value) && multiple && range) {\n if (field && !_isEmpty(field.lookup)) {\n return value.map(item => field.getText(processRangeToText(processOne(item, field), field))).join(',');\n }\n return value.map(item => {\n return processRangeToText(processOne(item, field), field);\n }).join(',');\n }\n if (field && !_isEmpty(field.lookup)) {\n return field.getText(processOne(value, field));\n }\n const resultValue = processOne(value, field);\n if (isMoment(resultValue)) {\n return resultValue.format();\n }\n if (field && field.get('textField') && resultValue && isObject(resultValue)) {\n if (range && isArrayLike(resultValue)) {\n return processRangeToText(resultValue, field);\n }\n return resultValue[field.get('textField')];\n }\n return resultValue;\n }\n return value;\n}\n/**\n * 实现如果名字是带有属性含义`.`找到能够导出的值\n * @param dataItem 一行数据\n * @param name 对应的fieldname\n * @param isBind 是否是从绑定获取值\n */\nexport function getSplitValue(dataItem, name, isBind = true) {\n const nameArray = name.split('.');\n if (nameArray.length > 1) {\n let levelValue = dataItem;\n for (let i = 0; i < nameArray.length; i++) {\n if (!isObject(levelValue)) {\n break;\n }\n if (isBind || i !== 0) {\n levelValue = levelValue[nameArray[i]];\n }\n }\n return levelValue;\n }\n if (isBind) {\n return dataItem ? dataItem[name] : undefined;\n }\n return dataItem;\n}\nexport function childrenInfoForDelete(json, children) {\n return Object.keys(children).reduce((data, name) => {\n const child = children[name];\n if (child) {\n data[name] = [childrenInfoForDelete({}, child.children)];\n }\n return data;\n }, json);\n}\nexport function sortTree(children, orderField) {\n if (orderField && children.length > 0) {\n const { name, order } = orderField;\n const m = Number.MIN_SAFE_INTEGER;\n children.sort((record1, record2) => {\n const a = record1.get(name) || m;\n const b = record2.get(name) || m;\n if (isString(a) || isString(b)) {\n return order === SortOrder.asc\n ? String(a).localeCompare(String(b))\n : String(b).localeCompare(String(a));\n }\n return order === SortOrder.asc ? a - b : b - a;\n });\n }\n return children;\n}\n// 获取单个页面能够展示的数据\nexport function sliceTree(idField, parentField, allData, pageSize) {\n if (allData.length) {\n const rootMap = new Map();\n const itemMap = new Map();\n allData.forEach((item) => {\n const id = item[idField];\n if (!isNil(id)) {\n const node = {\n item,\n children: [],\n };\n itemMap.set(id, node);\n rootMap.set(id, node);\n }\n });\n [...itemMap.entries()].forEach(([key, node]) => {\n const parent = itemMap.get(node.item[parentField]);\n if (parent) {\n parent.children.push(node);\n rootMap.delete(key);\n }\n });\n return treeReduce([...rootMap.values()].slice(0, pageSize), (previousValue, node) => previousValue.concat(node.item), []);\n }\n return [];\n}\nexport function checkParentByInsert({ parent }) {\n if (parent && !parent.current) {\n throw new Error($l('DataSet', 'cannot_add_record_when_head_no_current'));\n }\n}\nfunction getValueType(value) {\n return isBoolean(value)\n ? FieldType.boolean\n : isNumber(value)\n ? FieldType.number\n : isString(value)\n ? FieldType.string\n : isMoment(value)\n ? FieldType.date\n : isObject(value)\n ? FieldType.object\n : FieldType.auto;\n}\nexport function getBaseType(type) {\n switch (type) {\n case FieldType.number:\n case FieldType.currency:\n return FieldType.number;\n case FieldType.dateTime:\n case FieldType.time:\n case FieldType.week:\n case FieldType.month:\n case FieldType.year:\n return FieldType.date;\n case FieldType.intl:\n case FieldType.url:\n case FieldType.email:\n return FieldType.string;\n default:\n return type;\n }\n}\nexport function checkFieldType(value, field) {\n if (process.env.NODE_ENV !== 'production' && !isEmpty(value)) {\n const fieldType = getBaseType(field.type);\n if (fieldType !== FieldType.auto) {\n if (isArrayLike(value)) {\n return value.every(item => checkFieldType(item, field));\n }\n const valueType = field.type === FieldType.boolean &&\n [field.get(BooleanValue.trueValue), field.get(BooleanValue.falseValue)].includes(value)\n ? FieldType.boolean\n : getValueType(value);\n if (fieldType !== FieldType.reactNode &&\n fieldType !== valueType) {\n warning(false, `Value type error: The value<${value}>'s type is ${valueType}, but the field<${field.name}>'s type is ${fieldType}.`);\n return false;\n }\n }\n }\n return true;\n}\nlet iframe;\n/**\n * 目前定义为服务端请求的方法\n * @param url 导出地址\n * @param data 导出传递参数\n * @param method 默认post请求\n */\nexport function doExport(url, data, method = 'post') {\n if (!iframe) {\n iframe = document.createElement('iframe');\n iframe.id = '_export_window';\n iframe.name = '_export_window';\n iframe.style.cssText =\n 'position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;display:none';\n document.body.appendChild(iframe);\n }\n const form = document.createElement('form');\n form.target = '_export_window';\n form.method = method;\n form.action = url;\n const s = document.createElement('input');\n s.id = '_request_data';\n s.type = 'hidden';\n s.name = '_request_data';\n s.value = JSON.stringify(data);\n form.appendChild(s);\n document.body.appendChild(form);\n form.submit();\n document.body.removeChild(form);\n}\nfunction throwCycleBindingFields(map = new Map()) {\n const keys = [...map.keys()];\n throw new Error(`DataSet: Cycle binding fields[${[...keys].join(' -> ')} -> ${keys[0]}].`);\n}\nfunction getChainFieldNamePrivate(record, fieldName, linkedMap = new Map(), init = true) {\n const field = record.getField(fieldName);\n if (field) {\n const bind = field.get('bind');\n if (bind) {\n if (linkedMap.has(fieldName)) {\n throwCycleBindingFields(linkedMap);\n }\n linkedMap.set(fieldName, field);\n const names = bind.split('.');\n if (names.length > 0) {\n if (names.length === 1) {\n return getChainFieldNamePrivate(record, bind, linkedMap);\n }\n return names.reduce((chainFieldName, name) => [getChainFieldNamePrivate(record, chainFieldName, linkedMap, false), name].join('.'));\n }\n }\n }\n else if (init && fieldName.indexOf('.') > -1) {\n return fieldName.split('.').reduce((chainFieldName, name) => [getChainFieldNamePrivate(record, chainFieldName, linkedMap, false), name].join('.'));\n }\n return fieldName;\n}\nexport function getChainFieldName(record, fieldName) {\n return getChainFieldNamePrivate(record, fieldName);\n}\nexport function findBindTargetFields(myField, fields, deep, bindFields = new Map()) {\n const bind = myField.get('bind');\n if (bind) {\n [...fields.entries()].some(([fieldName, field]) => {\n if (field !== myField) {\n if ((bind === fieldName || bind.startsWith(`${fieldName}.`))) {\n if (bindFields.has(fieldName)) {\n throwCycleBindingFields(bindFields);\n }\n bindFields.set(fieldName, field);\n if (deep) {\n findBindTargetFields(field, fields, deep, bindFields);\n }\n return true;\n }\n }\n return false;\n });\n }\n return [...bindFields.values()];\n}\nexport function findBindFields(myField, fields, deep, bindFields = new Map()) {\n const { name } = myField;\n [...fields.entries()].forEach(([fieldName, field]) => {\n if (field !== myField) {\n const bind = field.get('bind');\n if (bind && (bind === name || bind.startsWith(`${name}.`))) {\n if (bindFields.has(fieldName)) {\n throwCycleBindingFields(bindFields);\n }\n bindFields.set(fieldName, field);\n if (deep) {\n findBindFields(field, fields, deep, bindFields);\n }\n }\n }\n });\n return [...bindFields.values()];\n}\nexport function findBindField(myField, chainFieldName, record) {\n return [...record.fields.values()].find((field) => {\n const fieldName = field.name;\n if (fieldName !== myField) {\n const bind = field.get('bind');\n if (bind) {\n return chainFieldName === getChainFieldName(record, fieldName);\n }\n }\n return false;\n });\n}\nfunction numberSorter(a, b) {\n return a - b;\n}\nfunction stringSorter(a, b) {\n return String(a || '').localeCompare(String(b || ''));\n}\nexport function getFieldSorter(field) {\n const { name } = field;\n switch (field.type) {\n case FieldType.number:\n case FieldType.currency:\n case FieldType.date:\n case FieldType.dateTime:\n case FieldType.week:\n case FieldType.month:\n case FieldType.year:\n case FieldType.time:\n return field.order === SortOrder.asc\n ? (a, b) => numberSorter(a.get(name), b.get(name))\n : (a, b) => numberSorter(b.get(name), a.get(name));\n default:\n return field.order === SortOrder.asc\n ? (a, b) => stringSorter(a.get(name), b.get(name))\n : (a, b) => stringSorter(b.get(name), a.get(name));\n }\n}\nexport function generateRecordJSONData(array, record, dataToJSON) {\n const normal = useNormal(dataToJSON);\n const json = normal\n ? !record.isRemoved && record.toData()\n : record.toJSONData();\n if (json && (normal || useAll(dataToJSON) || (!useDirty(dataToJSON) && !useDirtyField(dataToJSON)) || json.__dirty)) {\n delete json.__dirty;\n array.push(json);\n }\n}\nexport function prepareSubmitData(records, dataToJSON) {\n const created = [];\n const updated = [];\n const destroyed = [];\n function storeWith(status) {\n switch (status) {\n case RecordStatus.add:\n return created;\n case RecordStatus.delete:\n return destroyed;\n default:\n return updated;\n }\n }\n records.forEach(record => generateRecordJSONData(storeWith(record.status), record, dataToJSON));\n return [created, updated, destroyed];\n}\nfunction defaultAxiosConfigAdapter(config) {\n return config;\n}\nfunction generateConfig(config, dataSet, data, params, options) {\n if (isString(config)) {\n return {\n url: config,\n };\n }\n if (typeof config === 'function') {\n return config({ ...options, data, dataSet, params });\n }\n return config;\n}\nexport function axiosConfigAdapter(type, dataSet, data, params, options) {\n const newConfig = {\n data,\n params,\n method: 'post',\n };\n const { [type]: globalConfig, adapter: globalAdapter = defaultAxiosConfigAdapter } = getConfig('transport') || {};\n const { [type]: config, adapter } = dataSet.transport;\n if (globalConfig) {\n Object.assign(newConfig, generateConfig(globalConfig, dataSet, data, params, options));\n }\n if (config) {\n Object.assign(newConfig, generateConfig(config, dataSet, data, params, options));\n }\n if (newConfig.data && newConfig.method && newConfig.method.toLowerCase() === 'get') {\n newConfig.params = {\n ...newConfig.params,\n ...newConfig.data,\n };\n }\n return (adapter || globalAdapter)(newConfig, type) || newConfig;\n}\n// 查询顶层父亲节点\nexport function findRootParent(children) {\n if (children.parent) {\n return findRootParent(children.parent);\n }\n return children;\n}\nexport function prepareForSubmit(type, data, configs, dataSet) {\n if (data.length) {\n const newConfig = axiosConfigAdapter(type, dataSet, data);\n if (newConfig.url) {\n configs.push(newConfig);\n }\n else {\n return data;\n }\n }\n return [];\n}\nexport function generateResponseData(item, dataKey) {\n if (item) {\n if (isArray(item)) {\n return item;\n }\n if (isObject(item)) {\n if (dataKey) {\n const result = ObjectChainValue.get(item, dataKey);\n if (result === undefined) {\n return [item];\n }\n if (isArray(result)) {\n return result;\n }\n if (isObject(result)) {\n return [result];\n }\n }\n else {\n return [item];\n }\n }\n }\n return [];\n}\nexport function getRecordValue(record, cb, fieldName) {\n if (fieldName) {\n if (isArrayLike(fieldName)) {\n return fieldName.reduce((value, key) => {\n value[key] = getRecordValue(record, cb, key);\n return value;\n }, {});\n }\n const chainFieldName = getChainFieldName(record, fieldName);\n const { dataSet } = record;\n if (dataSet) {\n const { checkField } = dataSet.props;\n if (checkField && chainFieldName === getChainFieldName(record, checkField)) {\n const field = record.getField(checkField);\n const trueValue = field ? field.get(BooleanValue.trueValue) : true;\n const falseValue = field ? field.get(BooleanValue.falseValue) : false;\n const { children } = record;\n if (children) {\n return children.every(child => cb(child, checkField) === trueValue)\n ? trueValue\n : falseValue;\n }\n }\n }\n return ObjectChainValue.get(record.data, chainFieldName);\n }\n}\nexport function processIntlField(name, fieldProps, callback, dataSet) {\n if (fieldProps.type === FieldType.intl) {\n const { transformRequest } = fieldProps;\n const tlsKey = getConfig('tlsKey');\n const { supports } = localeContext;\n const languages = Object.keys(supports);\n languages.forEach(language => callback(`${tlsKey}.${name}.${language}`, {\n type: FieldType.string,\n label: `${supports[language]}`,\n transformRequest,\n computedProps: {\n bind: ({ record }) => {\n if (record) {\n const tls = record.get(tlsKey) || {};\n if (name in tls && (dataSet ? dataSet.lang : localeContext.locale.lang) === language) {\n return name;\n }\n }\n },\n },\n }));\n }\n return callback(name, fieldProps);\n}\nexport function findBindFieldBy(myField, fields, prop) {\n const value = myField.get(prop);\n const myName = myField.name;\n return [...fields.values()].find(field => {\n const bind = field.get('bind');\n return bind && bind === `${myName}.${value}`;\n });\n}\nexport function getLimit(limit, record) {\n if (isString(limit) && record.getField(limit)) {\n return record.get(limit);\n }\n return limit;\n}\nexport function adapterDataToJSON(isSelected, noCascade) {\n if (isSelected) {\n if (noCascade) {\n return DataToJSON['selected-self'];\n }\n return DataToJSON.selected;\n }\n if (noCascade) {\n return DataToJSON['dirty-self'];\n }\n return undefined;\n}\nexport function generateData(records) {\n let dirty = false;\n const data = records.reduce((list, record) => {\n if (record.isRemoved) {\n dirty = true;\n }\n else {\n const d = record.toData();\n if (d.__dirty) {\n dirty = true;\n }\n delete d.__dirty;\n list.push(d);\n }\n return list;\n }, []);\n return {\n dirty,\n data,\n };\n}\nexport function generateJSONData(ds, records) {\n const { dataToJSON } = ds;\n const data = [];\n records.forEach(record => generateRecordJSONData(data, record, dataToJSON));\n return {\n dirty: data.length > 0,\n data,\n };\n}\nexport function getUniqueFieldNames(dataSet) {\n const keys = [];\n [...dataSet.fields.entries()].forEach(([key, field]) => {\n if (field.get('unique')) {\n keys.push(key);\n }\n });\n return keys;\n}\nexport function getUniqueKeysAndPrimaryKey(dataSet) {\n if (dataSet) {\n const keys = getUniqueFieldNames(dataSet);\n const { primaryKey } = dataSet.props;\n if (primaryKey) {\n keys.push(primaryKey);\n }\n return keys;\n }\n return [];\n}\nexport function isDirtyRecord(record) {\n return record.status !== RecordStatus.sync || record.dirty;\n}\nexport function getSpliceRecord(records, inserts, fromRecord) {\n if (fromRecord) {\n if (inserts.includes(fromRecord)) {\n return getSpliceRecord(records, inserts, records[records.indexOf(fromRecord) + 1]);\n }\n return fromRecord;\n }\n}\n// bugs in react native\nexport function fixAxiosConfig(config) {\n const { method } = config;\n if (method && method.toLowerCase() === 'get') {\n delete config.data;\n }\n return config;\n}\nconst EMPTY_GROUP_KEY = '__empty_group__';\nexport function normalizeGroups(groups, records) {\n const optGroups = [];\n const restRecords = [];\n records.forEach((record) => {\n let previousGroup;\n groups.every((key) => {\n const label = record.get(key);\n if (label !== undefined) {\n if (!previousGroup) {\n previousGroup = optGroups.find(item => item.value === label);\n if (!previousGroup) {\n previousGroup = {\n name: key,\n value: label,\n records: [],\n subGroups: [],\n };\n optGroups.push(previousGroup);\n }\n }\n else {\n const { subGroups } = previousGroup;\n previousGroup = subGroups.find(item => item.value === label);\n if (!previousGroup) {\n previousGroup = {\n name: key,\n value: label,\n records: [],\n subGroups: [],\n };\n subGroups.push(previousGroup);\n }\n }\n return true;\n }\n return false;\n });\n if (previousGroup) {\n const { records: groupRecords } = previousGroup;\n groupRecords.push(record);\n }\n else {\n restRecords.push(record);\n }\n });\n if (restRecords.length) {\n optGroups.push({\n name: EMPTY_GROUP_KEY,\n value: undefined,\n records: restRecords,\n subGroups: [],\n });\n }\n return optGroups;\n}\n/**\n *\n * @param data 导出需要导出的数据\n * @param excelname 导出表单的名字\n */\nexport function exportExcel(data, excelName) {\n import('xlsx').then(XLSX => {\n const ws = XLSX.utils.json_to_sheet(data, { skipHeader: true }); /* 新建空workbook,然后加入worksheet */\n const wb = XLSX.utils.book_new(); /* 新建book */\n XLSX.utils.book_append_sheet(wb, ws); /* 生成xlsx文件(book,sheet数据,sheet命名) */\n XLSX.writeFile(wb, `${excelName}.xlsx`); /* 写文件(book,xlsx文件名称) */\n });\n}\nexport function getSortedFields(fields) {\n const normalFields = [];\n const objectBindFields = [];\n const bindFields = [];\n const transformResponseField = [];\n const dynamicFields = [];\n const dynamicObjectBindFields = [];\n const dynamicBindFields = [];\n [...fields.entries()].forEach((entry) => {\n const [, field] = entry;\n const dynamicProps = field.get('computedProps') || field.get('dynamicProps');\n if (dynamicProps) {\n if (dynamicProps.bind) {\n if (field.type === FieldType.object) {\n dynamicObjectBindFields.push(entry);\n }\n else {\n dynamicBindFields.push(entry);\n }\n }\n else {\n dynamicFields.push(entry);\n }\n }\n else {\n const bind = field.get('bind');\n if (bind) {\n const targetNames = bind.split('.');\n targetNames.pop();\n if (targetNames.some((targetName) => {\n const target = fields.get(targetName);\n return target && (target.get('computedProps') || target.get('dynamicProps'));\n })) {\n if (field.type === FieldType.object) {\n dynamicObjectBindFields.push(entry);\n }\n else {\n dynamicBindFields.push(entry);\n }\n }\n else if (field.get('transformResponse')) {\n transformResponseField.push(entry);\n }\n else if (field.type === FieldType.object) {\n objectBindFields.push(entry);\n }\n else {\n bindFields.push(entry);\n }\n }\n else {\n normalFields.push(entry);\n }\n }\n });\n return [\n ...normalFields,\n ...objectBindFields,\n ...bindFields,\n ...transformResponseField,\n ...dynamicFields,\n ...dynamicObjectBindFields,\n ...dynamicBindFields,\n ];\n}\nexport async function concurrentPromise(promiseLoaders, cancelFnc) {\n const promiseLoadersLength = promiseLoaders.length;\n let fail = false;\n return new Promise((resolve, reject) => {\n const resulet = Array(promiseLoadersLength).fill(null);\n // 依次执行promise\n // 最大并发数\n const maxConcurrent = Math.min(5, promiseLoadersLength);\n let currentPromiseIndex = 0;\n const execPromise = async (getPromise, index) => {\n if (fail) {\n return;\n }\n if (cancelFnc(resulet.filter(Boolean).length)) {\n fail = true;\n reject();\n return;\n }\n let res;\n try {\n res = await getPromise();\n }\n catch (error) {\n fail = true;\n reject(error);\n return;\n }\n resulet[index] = res;\n // 判断是否完结\n if (currentPromiseIndex === promiseLoadersLength - 1 && resulet.every(Boolean)) {\n resolve(resulet);\n return;\n }\n // 执行下一个promise\n if (currentPromiseIndex < promiseLoadersLength - 1) {\n ++currentPromiseIndex;\n execPromise(promiseLoaders[currentPromiseIndex]?.getPromise, currentPromiseIndex);\n }\n };\n // 初始化执行\n for (let i = 0; i < maxConcurrent; i++) {\n execPromise(promiseLoaders[i]?.getPromise, i);\n }\n currentPromiseIndex = maxConcurrent - 1;\n });\n}\nexport function treeSelect(dataSet, record, selected) {\n dataSet.select(record);\n if (record.isSelected) {\n selected.push(record);\n const { children } = record;\n if (children) {\n children.forEach(child => treeSelect(dataSet, child, selected));\n }\n }\n}\nexport function treeUnSelect(dataSet, record, unSelected) {\n dataSet.unSelect(record);\n if (!record.isSelected) {\n unSelected.push(record);\n const { children } = record;\n if (children) {\n children.forEach(child => treeUnSelect(dataSet, child, unSelected));\n }\n }\n}\nexport function treeSelectParent(dataSet, record, selected) {\n const { parent } = record;\n if (parent && !parent.isSelected) {\n dataSet.select(parent);\n selected.push(parent);\n treeSelectParent(dataSet, parent, selected);\n }\n}\nexport function treeUnSelectParent(dataSet, record, unSelected) {\n const { parent } = record;\n if (parent && parent.isSelected) {\n const { children } = parent;\n if (children && children.every(child => !child.isSelected)) {\n dataSet.unSelect(parent);\n unSelected.push(parent);\n treeUnSelectParent(dataSet, parent, unSelected);\n }\n }\n}\nexport function getIf(target, propName, defaultValue) {\n const value = target[propName];\n if (value === undefined) {\n target[propName] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n return target[propName];\n }\n return value;\n}\n","import { __decorate } from \"tslib\";\nimport React, { createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport moment, { isMoment } from 'moment';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport omit from 'lodash/omit';\nimport noop from 'lodash/noop';\nimport { observer } from 'mobx-react';\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport TriggerField from '../trigger-field/TriggerField';\nimport DaysView from './DaysView';\nimport DateTimesView from './DateTimesView';\nimport WeeksView from './WeeksView';\nimport TimesView from './TimesView';\nimport MonthsView from './MonthsView';\nimport YearsView from './YearsView';\nimport DecadeYearsView from './DecadeYearsView';\nimport autobind from '../_util/autobind';\nimport { ViewMode } from './enum';\nimport { stopEvent } from '../_util/EventManager';\nimport { $l } from '../locale-context';\nimport isSame from '../_util/isSame';\nimport ObserverTextField from '../text-field/TextField';\nconst viewComponents = {\n [ViewMode.decade]: DecadeYearsView,\n [ViewMode.year]: YearsView,\n [ViewMode.month]: MonthsView,\n [ViewMode.date]: DaysView,\n [ViewMode.dateTime]: DateTimesView,\n [ViewMode.week]: WeeksView,\n [ViewMode.time]: TimesView,\n};\nlet DatePicker = class DatePicker extends TriggerField {\n get value() {\n const { value } = this.observableProps;\n const { range } = this;\n if (isArrayLike(value)) {\n return value.map(item => {\n if (isArrayLike(item)) {\n return item.map(this.checkMoment, this);\n }\n return this.checkMoment(item);\n });\n }\n if (isArrayLike(range)) {\n if (isPlainObject(value)) {\n const [start, end] = range;\n return {\n [start]: this.checkMoment(value[start]),\n [end]: this.checkMoment(value[end]),\n };\n }\n }\n return this.checkMoment(value);\n }\n set value(value) {\n runInAction(() => {\n this.observableProps.value = value;\n });\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('DatePicker', label ? 'value_missing' : 'value_missing_no_label', {\n label,\n }),\n };\n }\n get min() {\n return this.getLimit('min');\n }\n get max() {\n return this.getLimit('max');\n }\n savePopupRangeEditor(node) {\n this.popupRangeEditor = node;\n if (node && this.popup) {\n raf(() => {\n node.focus();\n });\n }\n }\n isEditable() {\n return super.isEditable() && !this.isEditableLike() && this.getViewMode() !== ViewMode.week;\n }\n isEditableLike() {\n return this.popup && this.observableProps.editorInPopup;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'mode',\n 'filter',\n 'cellRenderer',\n 'maxLength',\n 'minLength',\n 'timeZone',\n 'editorInPopup',\n ]);\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n editorInPopup: props.editorInPopup,\n };\n }\n defaultRenderer(props) {\n const renderedText = super.defaultRenderer(props);\n const mode = this.getDefaultViewMode();\n const { value } = props;\n if (value && [ViewMode.time, ViewMode.dateTime].includes(mode)) {\n const { timeZone = getConfig('formatter').timeZone } = this.props;\n if (timeZone) {\n const renderedTimeZone = typeof timeZone === 'function' ? timeZone(value) : value.format(timeZone);\n if (isString(renderedTimeZone)) {\n return `${renderedText}${renderedTimeZone}`;\n }\n return [renderedText, renderedTimeZone];\n }\n }\n return renderedText;\n }\n getDefaultTime() {\n const createDefaultTime = () => moment('00:00:00', 'HH:mm:ss');\n const { defaultTime = createDefaultTime() } = this.props;\n if (isArrayLike(defaultTime)) {\n return [defaultTime[0] || createDefaultTime(), defaultTime[1] || createDefaultTime()];\n }\n return [defaultTime, defaultTime];\n }\n getDefaultViewMode() {\n const { mode } = this.props;\n if (mode === ViewMode.decade || mode === undefined) {\n return ViewMode.date;\n }\n return mode;\n }\n getPopupEditor() {\n const { editorInPopup } = this.observableProps;\n if (editorInPopup) {\n const { prefixCls, range, text } = this;\n const className = `${prefixCls}-popup-editor`;\n const [startPlaceholder, endPlaceHolder = startPlaceholder] = this.getPlaceholders();\n if (range) {\n const { rangeTarget } = this;\n const [startValue = '', endValue = ''] = this.processRangeValue(this.rangeValue);\n const startText = this.getText(startValue);\n const endText = this.getText(endValue);\n return (React.createElement(\"span\", { key: \"popup-editor\", className: classNames(className, `${prefixCls}-range-text`) },\n React.createElement(\"input\", { className: `${prefixCls}-range-start`, onChange: this.handleChange, onFocus: this.handleRangeStart, value: rangeTarget === 0 && text !== undefined ? text : startText, placeholder: startPlaceholder, ref: rangeTarget === 0 ? this.savePopupRangeEditor : undefined }),\n React.createElement(\"span\", { className: `${prefixCls}-range-split` }, \"~\"),\n React.createElement(\"input\", { className: `${prefixCls}-range-end`, onChange: this.handleChange, onFocus: this.handleRangeEnd, value: rangeTarget === 1 && text !== undefined ? text : endText, placeholder: endPlaceHolder, ref: rangeTarget === 1 ? this.savePopupRangeEditor : undefined })));\n }\n return (React.createElement(ObserverTextField, { key: \"popup-editor\", value: this.getTextNode(), onInput: this.handleChange, border: false, className: className, placeholder: startPlaceholder }));\n }\n }\n getPopupContent() {\n const mode = this.getViewMode();\n const date = this.getSelectedDate();\n return (React.createElement(React.Fragment, null,\n this.getPopupEditor(),\n createElement(viewComponents[mode], {\n ref: node => (this.view = node),\n date,\n mode: this.getDefaultViewMode(),\n disabledNow: !this.isValidNowDate(date),\n renderer: this.getCellRenderer(mode),\n onSelect: this.handleSelect,\n onSelectedDateChange: this.handleSelectedDateChange,\n onViewModeChange: this.handelViewModeChange,\n isValidDate: this.isValidDate,\n format: this.getDateFormat(),\n step: this.getProp('step') || {},\n renderExtraFooter: this.getProp('renderExtraFooter'),\n extraFooterPlacement: this.getProp('extraFooterPlacement') || 'bottom',\n })));\n }\n getCellRenderer(mode) {\n const { cellRenderer = noop } = this.props;\n return cellRenderer(mode);\n }\n getTriggerIconFont() {\n return 'date_range';\n }\n getFieldType() {\n return viewComponents[this.getDefaultViewMode()].type;\n }\n getViewMode() {\n const { mode = this.getDefaultViewMode() } = this;\n return mode;\n }\n toMoment(item, field = this.field, noCheck = false) {\n if (isNil(item)) {\n return undefined;\n }\n if (isMoment(item)) {\n return item;\n }\n warning(noCheck, `DatePicker: The value of DatePicker is not moment.`);\n const format = this.getDateFormat(field);\n if (item instanceof Date) {\n item = moment(item).format(format);\n }\n const { range, rangeTarget } = this;\n const date = moment(item, format);\n if (date.isValid()) {\n const { unusedTokens } = date.parsingFlags();\n if (unusedTokens.includes('HH') && unusedTokens.includes('mm') && unusedTokens.includes('ss')) {\n const defaultTime = this.getDefaultTime()[range && rangeTarget !== undefined ? rangeTarget : 0];\n date.hour(defaultTime.hour());\n date.minute(defaultTime.minute());\n date.second(defaultTime.second());\n }\n }\n return date;\n }\n checkMoment(item) {\n return this.toMoment(item);\n }\n compare(oldValue, newValue) {\n return isSame(this.momentToTimestamp(oldValue), this.momentToTimestamp(newValue));\n }\n setText(text) {\n super.setText(text);\n if (text) {\n const date = this.toMoment(text);\n if (date && date.isValid()) {\n this.changeSelectedDate(date);\n }\n }\n }\n afterSetValue() {\n super.afterSetValue();\n this.setText(undefined);\n }\n momentToTimestamp(value) {\n if (isMoment(value)) {\n return moment(value).valueOf();\n }\n return value;\n }\n // processValue(value: any): ReactNode {\n // return super.processValue(this.checkMoment(value));\n // }\n getSelectedDate() {\n const { range, multiple, rangeTarget, rangeValue } = this;\n const selectedDate = this.selectedDate ||\n (range && !multiple && rangeTarget !== undefined && rangeValue && rangeValue[rangeTarget]) ||\n (!multiple && this.getValue());\n if (isMoment(selectedDate) && selectedDate.isValid()) {\n return selectedDate.clone();\n }\n return this.getValidDate(this.getDefaultTime()[range && rangeTarget !== undefined ? rangeTarget : 0]);\n }\n getLimit(minOrMax) {\n const limit = this.getProp(minOrMax);\n if (!isNil(limit)) {\n const { record } = this;\n if (record && isString(limit)) {\n const field = record.getField(limit);\n if (field) {\n const value = record.get(limit);\n if (value) {\n const momentValue = this.toMoment(value, field, true);\n if (momentValue) {\n return this.getLimitWithType(momentValue.clone(), minOrMax);\n }\n }\n return undefined;\n }\n }\n return this.getLimitWithType(moment(limit), minOrMax);\n }\n }\n getLimitWithType(limit, minOrMax) {\n if (minOrMax === 'min') {\n return limit.startOf('d');\n }\n return limit.endOf('d');\n }\n getPopupStyleFromAlign() {\n return undefined;\n }\n handleSelectedDateChange(selectedDate, mode) {\n if (this.isUnderRange(selectedDate, mode)) {\n this.changeSelectedDate(selectedDate);\n }\n }\n handelViewModeChange(mode) {\n runInAction(() => {\n this.mode = mode;\n });\n }\n handlePopupAnimateAppear() {\n }\n handlePopupAnimateEnd(key, exists) {\n if (key === 'align') {\n if (exists) {\n const { popupRangeEditor } = this;\n if (popupRangeEditor) {\n raf(() => {\n popupRangeEditor.focus();\n });\n }\n }\n else {\n runInAction(() => {\n this.selectedDate = undefined;\n this.mode = undefined;\n });\n }\n }\n }\n handleSelect(date, expand) {\n if (this.multiple && this.isSelected(date)) {\n this.unChoose(date);\n }\n else {\n this.choose(date, expand);\n }\n }\n handleKeyDown(e) {\n if (!this.disabled && !this.readOnly) {\n const el = this.popup ? this.view || this : this;\n switch (e.keyCode) {\n case KeyCode.RIGHT:\n el.handleKeyDownRight(e);\n break;\n case KeyCode.LEFT:\n el.handleKeyDownLeft(e);\n break;\n case KeyCode.DOWN:\n el.handleKeyDownDown(e);\n break;\n case KeyCode.UP:\n el.handleKeyDownUp(e);\n break;\n case KeyCode.END:\n el.handleKeyDownEnd(e);\n break;\n case KeyCode.HOME:\n el.handleKeyDownHome(e);\n break;\n case KeyCode.PAGE_UP:\n el.handleKeyDownPageUp(e);\n break;\n case KeyCode.PAGE_DOWN:\n el.handleKeyDownPageDown(e);\n break;\n case KeyCode.ENTER:\n el.handleKeyDownEnter(e);\n break;\n case KeyCode.TAB:\n this.handleKeyDownTab();\n break;\n case KeyCode.ESC:\n this.handleKeyDownEsc(e);\n break;\n case KeyCode.SPACE:\n this.handleKeyDownSpace(e);\n break;\n default:\n }\n }\n super.handleKeyDown(e);\n }\n handleKeyDownHome(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().startOf('M'));\n }\n }\n handleKeyDownEnd(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().endOf('M'));\n }\n }\n handleKeyDownLeft(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().subtract(1, 'd'));\n }\n }\n handleKeyDownRight(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().add(1, 'd'));\n }\n }\n handleKeyDownUp(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().subtract(1, 'w'));\n }\n }\n handleKeyDownDown(e) {\n if (this.multiple) {\n this.expand();\n }\n else if (!this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().add(1, 'w'));\n }\n }\n handleKeyDownPageUp(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().subtract(1, e.altKey ? 'y' : 'M'));\n }\n }\n handleKeyDownPageDown(e) {\n if (!this.multiple && !this.editable) {\n stopEvent(e);\n this.choose(this.getSelectedDate().add(1, e.altKey ? 'y' : 'M'));\n }\n }\n handleKeyDownEnter(_e) {\n if (!this.multiple && !this.editable) {\n this.choose(this.getSelectedDate());\n }\n }\n handleKeyDownEsc(e) {\n if (this.popup) {\n e.preventDefault();\n this.collapse();\n }\n }\n handleKeyDownTab() {\n // this.collapse();\n }\n handleKeyDownSpace(e) {\n if (!this.isEditable()) {\n e.preventDefault();\n }\n if (!this.popup) {\n this.expand();\n }\n }\n handleEnterDown(e) {\n super.handleEnterDown(e);\n if (this.multiple && this.range) {\n this.setRangeTarget(0);\n this.beginRange();\n this.expand();\n }\n }\n syncValueOnBlur(value) {\n if (value) {\n this.prepareSetValue(this.checkMoment(value));\n }\n else if (!this.multiple) {\n this.prepareSetValue(this.emptyValue);\n }\n }\n getValueKey(v) {\n if (isArrayLike(v)) {\n return v.map(this.getValueKey, this).join(',');\n }\n if (isMoment(v)) {\n return v.format();\n }\n return v;\n }\n changeSelectedDate(selectedDate) {\n this.selectedDate = this.getValidDate(selectedDate);\n }\n isSelected(date) {\n return this.getValues().some(value => date.isSame(value));\n }\n unChoose(date) {\n this.removeValue(date, -1);\n }\n /**\n *\n * @param date 返回的时间\n * @param expand 是否保持时间选择器的展开\n */\n choose(date, expand) {\n date = this.getValidDate(date);\n this.prepareSetValue(date);\n this.changeSelectedDate(date);\n const { range, rangeTarget } = this;\n if (range ? rangeTarget === 1 : !this.multiple) {\n if (!expand) {\n this.collapse();\n }\n }\n if (range && rangeTarget === 0 && this.popup && !expand) {\n this.setRangeTarget(1);\n }\n }\n setRangeTarget(target) {\n if (this.isFocused && (target !== undefined && target !== this.rangeTarget)) {\n this.expand();\n }\n this.selectedDate = undefined;\n super.setRangeTarget(target);\n }\n getValidDate(date) {\n const { min, max } = this;\n if (min && date.isSameOrBefore(min)) {\n date = min;\n }\n else if (max && date.isSameOrAfter(max)) {\n date = max;\n }\n return date;\n }\n isLowerRange(m1, m2) {\n return m1.isBefore(m2);\n }\n isUnderRange(date, mode) {\n const { min, max } = this;\n if (min || max) {\n let start = (min || date).clone();\n let end = (max || date).clone();\n switch (mode || this.getViewMode()) {\n case ViewMode.month:\n start = start.startOf('M');\n end = end.endOf('M');\n break;\n case ViewMode.year:\n start = start.startOf('y');\n end = end.endOf('y');\n break;\n case ViewMode.decade:\n start = start\n .startOf('y')\n .subtract(start.year() % 10, 'y')\n .startOf('d');\n end = end\n .endOf('y')\n .add(9 - (end.year() % 10), 'y')\n .endOf('d');\n break;\n case ViewMode.dateTime:\n start = start.startOf('d');\n end = end.endOf('d');\n break;\n default:\n }\n return date.isBetween(start, end, undefined, '[]');\n }\n return true;\n }\n isValidDate(currentDate, selected) {\n const { filter } = this.props;\n const isValid = this.isUnderRange(currentDate);\n if (isValid && filter) {\n return filter(currentDate, selected, this.getViewMode());\n }\n return isValid;\n }\n isValidNowDate(selected) {\n const { filter } = this.props;\n const isValid = this.isUnderRange(moment());\n if (isValid && filter) {\n return filter(moment(), selected);\n }\n return isValid;\n }\n getValidatorProps() {\n const { min, max } = this;\n return omit({\n ...super.getValidatorProps(),\n min,\n max,\n format: this.getDateFormat(),\n }, [\n 'maxLength',\n 'minLength',\n ]);\n }\n renderLengthInfo() {\n return undefined;\n }\n};\nDatePicker.displayName = 'DatePicker';\nDatePicker.propTypes = {\n /**\n * 日期格式,如 `YYYY-MM-DD HH:mm:ss`\n */\n format: PropTypes.string,\n /**\n * 显示模式date|dateTime|time|year|month|week\n */\n mode: PropTypes.string,\n /**\n * 单元格渲染\n */\n cellRenderer: PropTypes.func,\n /**\n * 日期过滤\n */\n filter: PropTypes.func,\n /**\n * 最小日期\n */\n min: PropTypes.any,\n /**\n * 最大日期\n */\n max: PropTypes.any,\n /**\n * 时间步距\n */\n step: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number,\n }),\n /**\n * 时区显示\n */\n timeZone: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n /**\n * 编辑器在下拉框中显示\n */\n editorInPopup: PropTypes.bool,\n ...TriggerField.propTypes,\n};\nDatePicker.defaultProps = {\n ...TriggerField.defaultProps,\n suffixCls: 'calendar-picker',\n mode: ViewMode.date,\n};\n__decorate([\n computed\n], DatePicker.prototype, \"value\", null);\n__decorate([\n computed\n], DatePicker.prototype, \"min\", null);\n__decorate([\n computed\n], DatePicker.prototype, \"max\", null);\n__decorate([\n observable\n], DatePicker.prototype, \"selectedDate\", void 0);\n__decorate([\n observable\n], DatePicker.prototype, \"mode\", void 0);\n__decorate([\n autobind\n], DatePicker.prototype, \"savePopupRangeEditor\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"defaultRenderer\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"compare\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"handleSelectedDateChange\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"handelViewModeChange\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"handlePopupAnimateEnd\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"handleSelect\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"handleKeyDown\", null);\n__decorate([\n action\n], DatePicker.prototype, \"handleEnterDown\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"getValueKey\", null);\n__decorate([\n action\n], DatePicker.prototype, \"changeSelectedDate\", null);\n__decorate([\n action\n], DatePicker.prototype, \"setRangeTarget\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"isUnderRange\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"isValidDate\", null);\n__decorate([\n autobind\n], DatePicker.prototype, \"isValidNowDate\", null);\nDatePicker = __decorate([\n observer\n], DatePicker);\nexport default DatePicker;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport moment from 'moment';\nimport noop from 'lodash/noop';\nimport classNames from 'classnames';\nimport DaysView from './DaysView';\nimport TimesView from './TimesView';\nimport autobind from '../_util/autobind';\nimport { ViewMode } from './enum';\nimport { FieldType } from '../data-set/enum';\nimport { $l } from '../locale-context';\nimport { getDateFormatByFieldType } from '../field/utils';\nexport default class DateTimesView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-datetime`;\n }\n handleTimeSelect() {\n this.changeViewMode(ViewMode.time);\n }\n handleKeyDownRight(e) {\n if (e.altKey) {\n this.changeViewMode(ViewMode.time);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().add(1, 'd'));\n }\n }\n getFirstDay(date) {\n const firstDay = date.clone().subtract(1, 'M');\n const hour = firstDay.hour();\n const minute = firstDay.minute();\n const second = firstDay.second();\n firstDay.date(firstDay.daysInMonth()).startOf('w');\n firstDay.hour(hour);\n firstDay.minute(minute);\n firstDay.second(second);\n return firstDay;\n }\n choose(date, expand = true) {\n const { onSelect = noop } = this.props;\n onSelect(date, expand);\n }\n renderFooter() {\n const { prefixCls, props: { date, disabledNow }, } = this;\n const footerProps = {\n className: classNames(`${prefixCls}-footer-now-btn`, {\n [`${prefixCls}-now-disabled`]: disabledNow,\n }),\n onClick: !disabledNow ? this.choose.bind(this, moment(), false) : noop,\n };\n return (React.createElement(\"div\", { className: `${prefixCls}-footer` },\n React.createElement(\"a\", Object.assign({}, footerProps), $l('DatePicker', 'now')),\n React.createElement(\"a\", { className: `${prefixCls}-footer-view-select`, onClick: this.handleTimeSelect }, date.format(getDateFormatByFieldType(TimesView.type)))));\n }\n}\nDateTimesView.displayName = 'DateTimesView';\nDateTimesView.type = FieldType.dateTime;\n__decorate([\n autobind\n], DateTimesView.prototype, \"handleTimeSelect\", null);\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport ViewComponent from '../core/ViewComponent';\nimport autobind from '../_util/autobind';\nimport Icon from '../icon';\nimport { ViewMode } from './enum';\nimport { FieldType } from '../data-set/enum';\nimport { $l } from '../locale-context';\nimport { stopEvent } from '../_util/EventManager';\nexport function alwaysValidDate() {\n return true;\n}\nexport default class DaysView extends ViewComponent {\n getViewClassName() {\n return '';\n }\n render() {\n const { prefixCls, props: { className, extraFooterPlacement }, } = this;\n const classString = classNames(`${prefixCls}-view`, className, this.getViewClassName());\n return (React.createElement(\"div\", { className: classString },\n this.renderHeader(),\n this.renderBody(),\n extraFooterPlacement === 'top' && this.customFooter,\n this.renderFooter(),\n extraFooterPlacement === 'bottom' && this.customFooter));\n }\n handlePrevYearClick() {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'y'), ViewMode.year);\n }\n handlePrevMonthClick() {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'), ViewMode.month);\n }\n handleMonthSelect() {\n this.changeViewMode(ViewMode.month);\n }\n handleYearSelect() {\n this.changeViewMode(ViewMode.year);\n }\n handleNextYearClick() {\n this.changeSelectedDate(this.getCloneDate().add(1, 'y'), ViewMode.year);\n }\n handleNextMonthClick() {\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'), ViewMode.month);\n }\n handleKeyDownHome(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().startOf('M'));\n }\n handleKeyDownEnd(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().endOf('M'));\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (e.altKey) {\n this.changeViewMode(ViewMode.month);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'd'));\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (!e.altKey) {\n this.changeSelectedDate(this.getCloneDate().add(1, 'd'));\n }\n }\n handleKeyDownUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'w'));\n }\n handleKeyDownDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(1, 'w'));\n }\n handleKeyDownPageUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(1, e.altKey ? 'y' : 'M'));\n }\n handleKeyDownPageDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(1, e.altKey ? 'y' : 'M'));\n }\n handleKeyDownEnter(e) {\n e.preventDefault();\n this.choose(this.props.date);\n }\n handleCellClick(date) {\n this.choose(date);\n }\n choose(date) {\n const { onSelect = noop } = this.props;\n onSelect(date);\n }\n changeSelectedDate(selectedDate, mode) {\n const { onSelectedDateChange = noop } = this.props;\n onSelectedDateChange(selectedDate, mode);\n }\n changeViewMode(mode) {\n const { onViewModeChange = noop } = this.props;\n onViewModeChange(mode);\n }\n renderHeader() {\n const { prefixCls, props: { date }, } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"a\", { className: `${prefixCls}-prev-year`, onClick: this.handlePrevYearClick },\n React.createElement(Icon, { type: \"first_page\" })),\n React.createElement(\"a\", { className: `${prefixCls}-prev-month`, onClick: this.handlePrevMonthClick },\n React.createElement(Icon, { type: \"navigate_before\" })),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleMonthSelect }, date.localeData().monthsShort(date)),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleYearSelect }, date.year()),\n React.createElement(\"a\", { className: `${prefixCls}-next-year` },\n React.createElement(Icon, { type: \"last_page\", onClick: this.handleNextYearClick })),\n React.createElement(\"a\", { className: `${prefixCls}-next-month`, onClick: this.handleNextMonthClick },\n React.createElement(Icon, { type: \"navigate_next\" }))));\n }\n renderBody() {\n return React.createElement(\"div\", { className: `${this.prefixCls}-body` }, this.renderPanel());\n }\n renderPanel() {\n return (React.createElement(\"table\", { className: this.getPanelClass(), cellSpacing: 0 },\n this.renderPanelHead(),\n React.createElement(\"tbody\", null, this.renderPanelBody())));\n }\n renderPanelHead() {\n return (React.createElement(\"thead\", null,\n React.createElement(\"tr\", null, this.getDaysOfWeek())));\n }\n get customFooter() {\n const { prefixCls, props: { renderExtraFooter }, } = this;\n return renderExtraFooter ? (React.createElement(\"div\", { className: `${prefixCls}-footer-extra` }, renderExtraFooter())) : null;\n }\n renderFooter() {\n const { prefixCls, props: { disabledNow }, } = this;\n const footerProps = {\n className: classNames({\n [`${prefixCls}-now-disabled`]: disabledNow,\n }),\n onClick: !disabledNow ? this.choose.bind(this, moment(), false) : noop,\n };\n return (React.createElement(\"div\", { className: `${prefixCls}-footer` },\n React.createElement(\"a\", Object.assign({}, footerProps), $l('DatePicker', 'today'))));\n }\n renderCell(props) {\n return React.createElement(\"td\", Object.assign({}, props));\n }\n renderInner(text) {\n const { prefixCls } = this;\n return React.createElement(\"div\", { className: `${prefixCls}-cell-inner` }, text);\n }\n getFirstDay(date) {\n const firstDay = date.clone().subtract(1, 'M');\n return firstDay.date(firstDay.daysInMonth()).startOf('w');\n }\n renderPanelBody() {\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\n const selected = date.clone();\n const prevMonth = this.getFirstDay(date);\n const currentYear = date.year();\n const currentMonth = date.month();\n const lastDay = prevMonth.clone().add(42, 'd');\n const rows = [];\n let cells = [];\n while (prevMonth.isBefore(lastDay)) {\n const currentDate = prevMonth.clone();\n const isDisabled = !isValidDate(currentDate, selected);\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-old`]: prevMonth.year() < currentYear ||\n (prevMonth.year() === currentYear && prevMonth.month() < currentMonth),\n [`${prefixCls}-new`]: prevMonth.year() > currentYear ||\n (prevMonth.year() === currentYear && prevMonth.month() > currentMonth),\n [`${prefixCls}-selected`]: prevMonth.isSame(selected, 'd'),\n [`${prefixCls}-today`]: prevMonth.isSame(moment(), 'd'),\n [`${prefixCls}-disabled`]: isDisabled,\n });\n const text = String(currentDate.date());\n const dayProps = {\n key: prevMonth.format('M_D'),\n className,\n children: this.renderInner(text),\n };\n if (!isDisabled) {\n dayProps.onClick = this.handleCellClick.bind(this, currentDate);\n }\n cells.push(renderer(dayProps, text, currentDate, selected));\n if (cells.length === 7) {\n rows.push(React.createElement(\"tr\", { key: prevMonth.format('M_D') }, cells));\n cells = [];\n }\n prevMonth.add(1, 'd');\n }\n return rows;\n }\n getPanelClass() {\n return `${this.prefixCls}-day-panel`;\n }\n getDaysOfWeek() {\n const locale = this.props.date.localeData();\n const days = locale.weekdaysMin();\n const first = locale.firstDayOfWeek();\n const dow = [];\n let i = 0;\n days.forEach(day => {\n dow[(7 + i++ - first) % 7] = (React.createElement(\"th\", { key: day, title: day }, day));\n });\n return dow;\n }\n getCloneDate() {\n return this.props.date.clone();\n }\n}\nDaysView.displayName = 'DaysView';\nDaysView.propTypes = {\n date: PropTypes.object,\n renderer: PropTypes.func,\n isValidDate: PropTypes.func,\n onSelect: PropTypes.func,\n onSelectedDateChange: PropTypes.func,\n onViewModeChange: PropTypes.func,\n ...ViewComponent.propTypes,\n};\nDaysView.defaultProps = {\n suffixCls: 'calendar',\n extraFooterPlacement: 'bottom',\n};\nDaysView.type = FieldType.date;\n__decorate([\n autobind\n], DaysView.prototype, \"handlePrevYearClick\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"handlePrevMonthClick\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"handleMonthSelect\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"handleYearSelect\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"handleNextYearClick\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"handleNextMonthClick\", null);\n__decorate([\n autobind\n], DaysView.prototype, \"renderCell\", null);\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport autobind from '../_util/autobind';\nimport Icon from '../icon';\nimport DaysView, { alwaysValidDate } from './DaysView';\nimport { ViewMode } from './enum';\nimport { stopEvent } from '../_util/EventManager';\nexport default class DecadeYearsView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-decade-year`;\n }\n handlePrevYearClick() {\n this.changeSelectedDate(this.getCloneDate().subtract(100, 'y'));\n }\n handleNextYearClick() {\n this.changeSelectedDate(this.getCloneDate().add(100, 'y'));\n }\n handleKeyDownHome(e) {\n stopEvent(e);\n const date = this.getCloneDate();\n this.changeSelectedDate(date.subtract(date.year() % 100, 'y'));\n }\n handleKeyDownEnd(e) {\n stopEvent(e);\n const date = this.getCloneDate();\n this.changeSelectedDate(date.add(90 - (date.year() % 100), 'y'));\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (!e.altKey) {\n this.changeSelectedDate(this.getCloneDate().subtract(10, 'y'));\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (e.altKey) {\n this.changeViewMode(ViewMode.year);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().add(10, 'y'));\n }\n }\n handleKeyDownUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(30, 'y'));\n }\n handleKeyDownDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(30, 'y'));\n }\n handleKeyDownPageUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(100, 'y'));\n }\n handleKeyDownPageDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(100, 'y'));\n }\n renderHeader() {\n const { prefixCls, props: { date }, } = this;\n const year = date.year() % 100;\n const from = date.clone().subtract(year, 'y');\n const to = from.clone().add(99, 'y');\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"a\", { className: `${prefixCls}-prev-year`, onClick: this.handlePrevYearClick },\n React.createElement(Icon, { type: \"first_page\" })),\n React.createElement(\"span\", { className: `${prefixCls}-view-select` },\n from.year(),\n \" - \",\n to.year()),\n React.createElement(\"a\", { className: `${prefixCls}-next-year` },\n React.createElement(Icon, { type: \"last_page\", onClick: this.handleNextYearClick }))));\n }\n renderPanelHead() {\n return undefined;\n }\n renderPanelBody() {\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\n const selected = date.clone().subtract(date.year() % 10, 'y');\n const from = date\n .clone()\n .startOf('y')\n .subtract(date.year() % 100, 'y');\n const to = from.clone().add(100, 'y');\n const prevYear = from.clone().subtract(10, 'y');\n const lastYear = to.clone().add(10, 'y');\n const rows = [];\n let cells = [];\n while (prevYear.isBefore(lastYear)) {\n const currentYear = prevYear.clone();\n const isDisabled = !isValidDate(currentYear, selected);\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-old`]: currentYear.isBefore(from, 'y'),\n [`${prefixCls}-new`]: currentYear.isSame(to, 'y'),\n [`${prefixCls}-selected`]: prevYear.isSame(selected, 'y'),\n [`${prefixCls}-disabled`]: isDisabled,\n });\n const text = `${prevYear.year()}-${prevYear\n .clone()\n .add(9, 'y')\n .year()}`;\n const decadeProps = {\n key: text,\n className,\n };\n if (!isDisabled) {\n decadeProps.onClick = this.handleCellClick.bind(this, currentYear);\n decadeProps.children = this.renderInner(text);\n }\n cells.push(renderer(decadeProps, text, currentYear, selected));\n if (cells.length === 3) {\n rows.push(React.createElement(\"tr\", { key: text }, cells));\n cells = [];\n }\n prevYear.add(10, 'y');\n }\n return rows;\n }\n renderFooter() {\n return undefined;\n }\n getPanelClass() {\n return `${this.prefixCls}-year-panel`;\n }\n choose(date) {\n this.changeSelectedDate(date);\n this.changeViewMode(ViewMode.year);\n }\n}\nDecadeYearsView.displayName = 'DecadeYearView';\n__decorate([\n autobind\n], DecadeYearsView.prototype, \"handlePrevYearClick\", null);\n__decorate([\n autobind\n], DecadeYearsView.prototype, \"handleNextYearClick\", null);\n","import React from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport DaysView, { alwaysValidDate } from './DaysView';\nimport { ViewMode } from './enum';\nimport { FieldType } from '../data-set/enum';\nimport { stopEvent } from '../_util/EventManager';\nexport default class MonthsView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-month`;\n }\n handleKeyDownHome(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().startOf('y'));\n }\n handleKeyDownEnd(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().endOf('y'));\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (e.altKey) {\n this.changeViewMode(ViewMode.year);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'));\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (e.altKey) {\n const { mode } = this.props;\n if (mode !== ViewMode.month) {\n this.changeViewMode(mode);\n }\n }\n else {\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'));\n }\n }\n handleKeyDownUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(3, 'M'));\n }\n handleKeyDownDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(3, 'M'));\n }\n handleKeyDownPageUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(e.altKey ? 10 : 1, 'y'));\n }\n handleKeyDownPageDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(e.altKey ? 10 : 1, 'y'));\n }\n renderHeader() {\n const { prefixCls, props: { date }, } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"a\", { className: `${prefixCls}-prev-year`, onClick: this.handlePrevYearClick },\n React.createElement(Icon, { type: \"first_page\" })),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleYearSelect }, date.year()),\n React.createElement(\"a\", { className: `${prefixCls}-next-year` },\n React.createElement(Icon, { type: \"last_page\", onClick: this.handleNextYearClick }))));\n }\n renderPanelHead() {\n return undefined;\n }\n renderPanelBody() {\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\n const selected = date.clone();\n const prevMonth = date.clone().startOf('y');\n const lastMonth = prevMonth.clone().add(12, 'M');\n const rows = [];\n let cells = [];\n while (prevMonth.isBefore(lastMonth)) {\n const currentMonth = prevMonth.clone();\n const isDisabled = !isValidDate(currentMonth, selected);\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-selected`]: prevMonth.isSame(selected, 'M'),\n [`${prefixCls}-disabled`]: isDisabled,\n });\n const text = prevMonth.localeData().monthsShort(prevMonth);\n const monthProps = {\n key: text,\n className,\n children: this.renderInner(text),\n };\n if (!isDisabled) {\n monthProps.onClick = this.handleCellClick.bind(this, currentMonth);\n }\n cells.push(renderer(monthProps, text, currentMonth, selected));\n if (cells.length === 3) {\n rows.push(React.createElement(\"tr\", { key: text }, cells));\n cells = [];\n }\n prevMonth.add(1, 'M');\n }\n return rows;\n }\n renderFooter() {\n return undefined;\n }\n getPanelClass() {\n return `${this.prefixCls}-month-panel`;\n }\n choose(date) {\n const { mode } = this.props;\n if (mode !== ViewMode.month) {\n this.changeSelectedDate(date);\n this.changeViewMode(mode);\n }\n else {\n super.choose(date);\n }\n }\n}\nMonthsView.displayName = 'MonthsView';\nMonthsView.type = FieldType.month;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { action, computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport autobind from '../_util/autobind';\nimport { TimeUnit, ViewMode } from './enum';\nimport DaysView, { alwaysValidDate } from './DaysView';\nimport { FieldType } from '../data-set/enum';\nimport { $l } from '../locale-context';\nimport { stopEvent } from '../_util/EventManager';\nconst stepMapping = {\n [TimeUnit.hour]: 'hour',\n [TimeUnit.minute]: 'minute',\n [TimeUnit.second]: 'second',\n};\nlet TimesView = class TimesView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-time`;\n }\n get showHour() {\n const { format } = this.observableProps;\n return format.indexOf('H') > -1 || format.indexOf('h') > -1 || format.indexOf('k') > -1;\n }\n get showMinute() {\n const { format } = this.observableProps;\n return format.indexOf('m') > -1;\n }\n get showSecond() {\n const { format } = this.observableProps;\n return format.indexOf('s') > -1;\n }\n get use12Hours() {\n const { format } = this.observableProps;\n return format.indexOf('h') > -1 || format.indexOf('a') > -1 || format.indexOf('A') > -1;\n }\n get timeUnitQueue() {\n const { showHour, showMinute, showSecond, use12Hours } = this;\n const queue = [];\n if (showHour) {\n queue.push(TimeUnit.hour);\n }\n if (showMinute) {\n queue.push(TimeUnit.minute);\n }\n if (showSecond) {\n queue.push(TimeUnit.second);\n }\n if (use12Hours) {\n queue.push(TimeUnit.a);\n }\n return queue;\n }\n get barStyle() {\n return {\n width: `${100 / this.timeUnitQueue.length}%`,\n };\n }\n get activeStyle() {\n const { timeUnitQueue } = this;\n const width = 100 / timeUnitQueue.length;\n return {\n width: `${width}%`,\n left: `${timeUnitQueue.indexOf(this.getCurrentUnit()) * width}%`,\n };\n }\n savePanel(node) {\n this.panel = node;\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n format: props.format,\n };\n }\n componentDidMount() {\n super.componentDidMount();\n if (this.panel) {\n // 兼容Firefox wheel为通用事件\n this.panel.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n componentWillUnmount() {\n if (this.panel) {\n this.panel.removeEventListener('wheel', this.handleWheel);\n }\n }\n handleDateTimeSelect() {\n this.changeViewMode(ViewMode.dateTime);\n }\n handleKeyDownHome(e) {\n this.handleKeyDownPageUp(e);\n }\n handleKeyDownEnd(e) {\n this.handleKeyDownPageDown(e);\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (e.altKey) {\n if (this.props.mode !== ViewMode.time) {\n this.changeViewMode(ViewMode.dateTime);\n }\n }\n else {\n this.changeUnit(this.getPrevUnit());\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (!e.altKey) {\n this.changeUnit(this.getNextUnit());\n }\n }\n handleKeyDownUp(e) {\n stopEvent(e);\n const unit = this.getCurrentUnit();\n if (unit === TimeUnit.a) {\n this.changeSelectedDate(this.getCloneDate().subtract(12, TimeUnit.hour));\n }\n else {\n const { step } = this.props;\n const unitStep = step[stepMapping[unit]] || 1;\n const date = this.getCloneDate();\n const parentUnit = unit === TimeUnit.second ? TimeUnit.minute : unit === TimeUnit.minute ? TimeUnit.hour : null;\n if (parentUnit) {\n const parentStep = step[stepMapping[parentUnit]];\n if (parentStep) {\n const preValue = date.get(parentUnit);\n date.subtract(unitStep, unit);\n if (preValue !== date.get(parentUnit)) {\n date.subtract(parentStep - 1, parentUnit);\n }\n this.changeSelectedDate(date);\n return;\n }\n }\n this.changeSelectedDate(date.subtract(unitStep, unit));\n }\n }\n handleKeyDownDown(e) {\n stopEvent(e);\n const unit = this.getCurrentUnit();\n if (unit === TimeUnit.a) {\n this.changeSelectedDate(this.getCloneDate().add(12, TimeUnit.hour));\n }\n else {\n const { step } = this.props;\n const unitStep = step[stepMapping[unit]] || 1;\n const date = this.getCloneDate();\n const parentUnit = unit === TimeUnit.second ? TimeUnit.minute : unit === TimeUnit.minute ? TimeUnit.hour : null;\n if (parentUnit) {\n const parentStep = step[stepMapping[parentUnit]];\n if (parentStep) {\n const preValue = date.get(parentUnit);\n date.add(unitStep, unit);\n if (preValue !== date.get(parentUnit)) {\n date.add(parentStep - 1, parentUnit);\n }\n this.changeSelectedDate(date);\n return;\n }\n }\n this.changeSelectedDate(date.add(unitStep, unit));\n }\n }\n handleKeyDownPageUp(e) {\n stopEvent(e);\n const unit = this.getCurrentUnit();\n if (unit === TimeUnit.a) {\n this.changeSelectedDate(this.getCloneDate().set(TimeUnit.hour, 0));\n }\n else {\n this.changeSelectedDate(this.getCloneDate().set(unit, 0));\n }\n }\n handleKeyDownPageDown(e) {\n stopEvent(e);\n const unit = this.getCurrentUnit();\n if (unit === TimeUnit.a) {\n this.changeSelectedDate(this.getCloneDate().set(TimeUnit.hour, 12));\n }\n else {\n const { step } = this.props;\n const unitStep = step[stepMapping[unit]] || 1;\n const size = unit === TimeUnit.hour ? this.use12Hours ? 12 : 24 : 60;\n this.changeSelectedDate(this.getCloneDate().set(unit, size - unitStep));\n }\n }\n handleTimeCellClick(date, unit) {\n this.changeUnit(unit);\n this.changeSelectedDate(date);\n }\n handleWheel(e) {\n e.preventDefault();\n if (e.deltaY > 0) {\n this.handleKeyDownDown(e);\n }\n else if (e.deltaY < 0) {\n this.handleKeyDownUp(e);\n }\n }\n renderHeader() {\n const { prefixCls, props: { date, mode }, observableProps: { format }, } = this;\n if (mode === ViewMode.time) {\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"span\", { className: `${prefixCls}-view-select` }, date.format(format))));\n }\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleMonthSelect }, date.localeData().monthsShort(date)),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleDateTimeSelect }, date.date()),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleYearSelect }, date.year())));\n }\n renderFooter() {\n const { prefixCls, props: { disabledNow } } = this;\n const footerProps = {\n className: classNames(`${prefixCls}-footer-now-btn`, {\n [`${prefixCls}-now-disabled`]: disabledNow,\n }),\n onClick: !disabledNow ? this.choose.bind(this, moment()) : noop,\n };\n return (React.createElement(\"div\", { className: `${prefixCls}-footer` },\n React.createElement(\"a\", Object.assign({}, footerProps), $l('DatePicker', 'now')),\n React.createElement(\"a\", { className: `${prefixCls}-footer-view-select`, onClick: this.choose.bind(this, this.props.date) }, $l('DatePicker', 'ok'))));\n }\n renderPanel() {\n const className = this.getPanelClass();\n return (React.createElement(\"div\", { ref: this.savePanel, className: className },\n React.createElement(\"div\", { className: `${className}-inner` }, this.renderPanelBody())));\n }\n renderPanelBody() {\n const { showHour, showMinute, showSecond, use12Hours, activeStyle } = this;\n return [\n showHour && this.getTimeBar(TimeUnit.hour),\n showMinute && this.getTimeBar(TimeUnit.minute),\n showSecond && this.getTimeBar(TimeUnit.second),\n use12Hours && this.getTimeBar(TimeUnit.a),\n React.createElement(\"div\", { key: \"active\", style: activeStyle, className: `${this.prefixCls}-time-focus-active` }),\n ];\n }\n renderCell(props) {\n return React.createElement(\"li\", Object.assign({}, props));\n }\n getTimeBar(unit) {\n const { prefixCls, use12Hours, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate, step }, observableProps: { format }, } = this;\n const isUpperCase = format.indexOf('A') > -1;\n const items = [];\n const selected = date.clone();\n const finalUnit = unit === TimeUnit.a ? TimeUnit.hour : unit;\n const selectedValue = selected.get(finalUnit);\n const size = unit === TimeUnit.a ? 13 : unit === TimeUnit.hour ? use12Hours ? 12 : 24 : 60;\n const begin = unit === TimeUnit.a ? selectedValue % 12 : unit === TimeUnit.hour && use12Hours && selectedValue > 11 ? 12 : 0;\n const pre = date.clone().set(finalUnit, begin);\n const last = pre.clone().add(size, finalUnit);\n while (pre.isBefore(last)) {\n const current = pre.clone();\n const isDisabled = !isValidDate(current, selected);\n const text = unit === TimeUnit.a ?\n current.format(isUpperCase ? 'A' : 'a') :\n String(pre.get(unit) - (use12Hours && finalUnit === TimeUnit.hour && pre.get(unit) > 11 ? 12 : 0) || (use12Hours && finalUnit === TimeUnit.hour ? 12 : 0));\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-selected`]: unit === TimeUnit.a ? current.get(TimeUnit.hour) === selectedValue : current.isSame(selected, finalUnit),\n [`${prefixCls}-disabled`]: isDisabled,\n });\n const props = {\n key: text,\n className,\n children: React.createElement(\"div\", { className: `${prefixCls}-cell-inner` }, text),\n };\n if (!isDisabled) {\n props.onClick = this.handleTimeCellClick.bind(this, current, unit);\n }\n items.push(renderer(props, text, current, selected));\n pre.add(unit === TimeUnit.a ? 12 : (step[stepMapping[unit]] || 1), finalUnit);\n }\n const top = unit === TimeUnit.a ?\n -Math.floor(selectedValue / 12) :\n (unit === TimeUnit.hour && use12Hours ?\n -selectedValue % 12 :\n -selectedValue) / (step[stepMapping[unit]] || 1);\n return (React.createElement(\"div\", { key: unit, className: `${prefixCls}-time-list`, onMouseEnter: this.changeUnit.bind(this, unit), style: this.barStyle },\n React.createElement(\"ul\", { style: { top: `${(top + 4.5) * 100}%` } }, items),\n React.createElement(\"div\", { className: `${prefixCls}-time-focus` })));\n }\n getPanelClass() {\n return `${this.prefixCls}-time-panel`;\n }\n getCurrentUnit() {\n const { currentUnit } = this;\n return currentUnit || this.timeUnitQueue[0];\n }\n getPrevUnit() {\n const { timeUnitQueue } = this;\n return timeUnitQueue[timeUnitQueue.indexOf(this.getCurrentUnit()) - 1];\n }\n getNextUnit() {\n const { timeUnitQueue } = this;\n return timeUnitQueue[timeUnitQueue.indexOf(this.getCurrentUnit()) + 1];\n }\n changeUnit(unit) {\n if (unit !== undefined && unit !== this.currentUnit) {\n this.currentUnit = unit;\n }\n }\n choose(date) {\n const { mode } = this.props;\n super.choose(date);\n if (mode !== ViewMode.time) {\n this.changeSelectedDate(date);\n this.changeViewMode(mode);\n }\n }\n};\nTimesView.displayName = 'TimesView';\nTimesView.type = FieldType.time;\n__decorate([\n observable\n], TimesView.prototype, \"currentUnit\", void 0);\n__decorate([\n computed\n], TimesView.prototype, \"showHour\", null);\n__decorate([\n computed\n], TimesView.prototype, \"showMinute\", null);\n__decorate([\n computed\n], TimesView.prototype, \"showSecond\", null);\n__decorate([\n computed\n], TimesView.prototype, \"use12Hours\", null);\n__decorate([\n computed\n], TimesView.prototype, \"timeUnitQueue\", null);\n__decorate([\n computed\n], TimesView.prototype, \"barStyle\", null);\n__decorate([\n computed\n], TimesView.prototype, \"activeStyle\", null);\n__decorate([\n autobind\n], TimesView.prototype, \"savePanel\", null);\n__decorate([\n autobind\n], TimesView.prototype, \"handleDateTimeSelect\", null);\n__decorate([\n autobind\n], TimesView.prototype, \"handleWheel\", null);\n__decorate([\n autobind\n], TimesView.prototype, \"renderCell\", null);\n__decorate([\n action\n], TimesView.prototype, \"changeUnit\", null);\nTimesView = __decorate([\n observer\n], TimesView);\nexport default TimesView;\n","import React from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport DaysView from './DaysView';\nimport { ViewMode } from './enum';\nimport { FieldType } from '../data-set/enum';\nimport { $l } from '../locale-context';\nimport { stopEvent } from '../_util/EventManager';\nexport default class WeeksView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-week`;\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (e.altKey) {\n this.changeViewMode(ViewMode.month);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'M'));\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (!e.altKey) {\n this.changeSelectedDate(this.getCloneDate().add(1, 'M'));\n }\n }\n renderPanelBody() {\n const { prefixCls, props: { date, renderer = this.renderCell }, } = this;\n const selected = date.clone();\n const firstDay = this.getFirstDay(date);\n const lastDay = firstDay.clone().add(42, 'd');\n const rows = [];\n let cells = [];\n while (firstDay.isBefore(lastDay)) {\n const currentDate = firstDay.clone();\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-selected`]: firstDay.isSame(selected, 'w'),\n });\n const text = String(currentDate.date());\n const dayProps = {\n key: firstDay.format('M_D'),\n className,\n children: this.renderInner(text),\n };\n if (cells.length === 0) {\n const weekProps = {\n key: firstDay.format('Wo'),\n className: `${className} ${prefixCls}-week-cell`,\n };\n cells.push(this.getWeekCell(weekProps, firstDay.week()));\n }\n cells.push(renderer(dayProps, text, currentDate, selected));\n if (cells.length === 8) {\n rows.push(React.createElement(\"tr\", { onClick: this.handleCellClick.bind(this, currentDate), key: firstDay.format('M_D') }, cells));\n cells = [];\n }\n firstDay.add(1, 'd');\n }\n return rows;\n }\n choose(date) {\n super.choose(date.startOf('W'));\n }\n getPanelClass() {\n return `${this.prefixCls}-week-panel`;\n }\n renderFooter() {\n const { prefixCls, props: { disabledNow } } = this;\n const footerProps = {\n className: classNames(`${prefixCls}-footer-now-btn`, {\n [`${prefixCls}-now-disabled`]: disabledNow,\n }),\n onClick: !disabledNow ? this.choose.bind(this, moment()) : noop,\n };\n return (React.createElement(\"div\", { className: `${prefixCls}-footer` },\n React.createElement(\"a\", Object.assign({}, footerProps), $l('DatePicker', 'this_week'))));\n }\n getWeekCell(props, text) {\n const { prefixCls } = this;\n return (React.createElement(\"td\", Object.assign({}, props),\n React.createElement(\"div\", { className: `${prefixCls}-cell-inner` },\n \"W\",\n text)));\n }\n getDaysOfWeek() {\n return [React.createElement(\"th\", { key: \"null\" }, \"\\u00A0\"), ...super.getDaysOfWeek()];\n }\n}\nWeeksView.displayName = 'WeeksView';\nWeeksView.type = FieldType.week;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport autobind from '../_util/autobind';\nimport Icon from '../icon';\nimport { ViewMode } from './enum';\nimport DaysView, { alwaysValidDate } from './DaysView';\nimport { FieldType } from '../data-set/enum';\nimport { stopEvent } from '../_util/EventManager';\nexport default class YearsView extends DaysView {\n getViewClassName() {\n const { prefixCls } = this;\n return `${prefixCls}-year`;\n }\n handlePrevYearClick() {\n this.changeSelectedDate(this.getCloneDate().subtract(10, 'y'));\n }\n handleYearSelect() {\n this.changeViewMode(ViewMode.decade);\n }\n handleNextYearClick() {\n this.changeSelectedDate(this.getCloneDate().add(10, 'y'));\n }\n handleKeyDownHome(e) {\n stopEvent(e);\n const date = this.getCloneDate();\n this.changeSelectedDate(date.subtract(date.year() % 10, 'y'));\n }\n handleKeyDownEnd(e) {\n stopEvent(e);\n const date = this.getCloneDate();\n this.changeSelectedDate(date.add(9 - (date.year() % 10), 'y'));\n }\n handleKeyDownLeft(e) {\n stopEvent(e);\n if (e.altKey) {\n this.changeViewMode(ViewMode.decade);\n }\n else {\n this.changeSelectedDate(this.getCloneDate().subtract(1, 'y'));\n }\n }\n handleKeyDownRight(e) {\n stopEvent(e);\n if (e.altKey) {\n if (this.props.mode !== ViewMode.year) {\n this.changeViewMode(ViewMode.month);\n }\n }\n else {\n this.changeSelectedDate(this.getCloneDate().add(1, 'y'));\n }\n }\n handleKeyDownUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(3, 'y'));\n }\n handleKeyDownDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(3, 'y'));\n }\n handleKeyDownPageUp(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().subtract(e.altKey ? 100 : 10, 'y'));\n }\n handleKeyDownPageDown(e) {\n stopEvent(e);\n this.changeSelectedDate(this.getCloneDate().add(e.altKey ? 100 : 10, 'y'));\n }\n renderHeader() {\n const { prefixCls, props: { date }, } = this;\n const year = date.year() % 10;\n const from = date.clone().subtract(year, 'y');\n const to = from.clone().add(9, 'y');\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"a\", { className: `${prefixCls}-prev-year`, onClick: this.handlePrevYearClick },\n React.createElement(Icon, { type: \"first_page\" })),\n React.createElement(\"a\", { className: `${prefixCls}-view-select`, onClick: this.handleYearSelect },\n from.year(),\n \" - \",\n to.year()),\n React.createElement(\"a\", { className: `${prefixCls}-next-year` },\n React.createElement(Icon, { type: \"last_page\", onClick: this.handleNextYearClick }))));\n }\n renderPanelHead() {\n return undefined;\n }\n renderPanelBody() {\n const { prefixCls, props: { date, renderer = this.renderCell, isValidDate = alwaysValidDate }, } = this;\n const selected = date.clone();\n const from = date\n .clone()\n .startOf('y')\n .subtract(date.year() % 10, 'y');\n const to = from.clone().add(10, 'y');\n const prevYear = from.clone().subtract(1, 'y');\n const lastYear = to.clone().add(1, 'y');\n const rows = [];\n let cells = [];\n while (prevYear.isBefore(lastYear)) {\n const currentYear = prevYear.clone();\n const isDisabled = !isValidDate(currentYear, selected);\n const className = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-old`]: currentYear.isBefore(from, 'y'),\n [`${prefixCls}-new`]: currentYear.isSame(to, 'y'),\n [`${prefixCls}-selected`]: prevYear.isSame(selected, 'y'),\n [`${prefixCls}-disabled`]: isDisabled,\n });\n const text = String(prevYear.year());\n const yearProps = {\n key: text,\n className,\n children: this.renderInner(text),\n };\n if (!isDisabled) {\n yearProps.onClick = this.handleCellClick.bind(this, currentYear);\n }\n cells.push(renderer(yearProps, text, currentYear, selected));\n if (cells.length === 3) {\n rows.push(React.createElement(\"tr\", { key: text }, cells));\n cells = [];\n }\n prevYear.add(1, 'y');\n }\n return rows;\n }\n renderFooter() {\n return undefined;\n }\n getPanelClass() {\n return `${this.prefixCls}-year-panel`;\n }\n choose(date) {\n const { mode } = this.props;\n if (mode !== ViewMode.year) {\n this.changeSelectedDate(date);\n this.changeViewMode(ViewMode.month);\n }\n else {\n super.choose(date);\n }\n }\n}\nYearsView.displayName = 'YearsView';\nYearsView.type = FieldType.year;\n__decorate([\n autobind\n], YearsView.prototype, \"handlePrevYearClick\", null);\n__decorate([\n autobind\n], YearsView.prototype, \"handleYearSelect\", null);\n__decorate([\n autobind\n], YearsView.prototype, \"handleNextYearClick\", null);\n","export var ViewMode;\n(function (ViewMode) {\n ViewMode[\"time\"] = \"time\";\n ViewMode[\"dateTime\"] = \"dateTime\";\n ViewMode[\"week\"] = \"week\";\n ViewMode[\"date\"] = \"date\";\n ViewMode[\"month\"] = \"month\";\n ViewMode[\"year\"] = \"year\";\n ViewMode[\"decade\"] = \"decade\";\n})(ViewMode || (ViewMode = {}));\nexport var TimeUnit;\n(function (TimeUnit) {\n TimeUnit[\"hour\"] = \"h\";\n TimeUnit[\"minute\"] = \"m\";\n TimeUnit[\"second\"] = \"s\";\n TimeUnit[\"a\"] = \"a\";\n})(TimeUnit || (TimeUnit = {}));\n","import DatePicker from './DatePicker';\nexport default DatePicker;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../trigger-field/style';\n","import DatePicker from '../date-picker/DatePicker';\nimport { ViewMode } from '../date-picker/enum';\nexport default class DateTimePicker extends DatePicker {\n getWrapperClassNames() {\n const { prefixCls } = this;\n return super.getWrapperClassNames(`${prefixCls}-date-time-picker-wrapper`);\n }\n getLimitWithType(limit, _minOrMax) {\n return limit;\n }\n}\nDateTimePicker.displayName = 'DateTimePicker';\nDateTimePicker.defaultProps = {\n ...DatePicker.defaultProps,\n mode: ViewMode.dateTime,\n};\n","import DateTimePicker from './DateTimePicker';\nexport default DateTimePicker;\n","// style dependencies\nimport '../../date-picker/style';\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, isValidElement, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport Trigger from 'choerodon-ui/lib/trigger/Trigger';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport { Placements } from './enum';\nimport builtinPlacements from './placements';\nimport autobind from '../_util/autobind';\nconst popupStyle = { whiteSpace: 'nowrap' };\nexport default class Dropdown extends PureComponent {\n constructor(props) {\n super(props);\n if ('hidden' in props) {\n this.state = {\n hidden: props.hidden,\n };\n }\n else if ('visible' in props) {\n this.state = {\n hidden: !props.visible,\n };\n }\n else if ('defaultHidden' in props) {\n this.state = {\n hidden: props.defaultHidden,\n };\n }\n else {\n this.state = {\n hidden: !props.defaultVisible,\n };\n }\n }\n get triggerAction() {\n const { trigger } = this.props;\n return trigger;\n }\n get transitionName() {\n const { placement } = this.props;\n let result = 'slide-up';\n if (placement && placement.startsWith('top')) {\n result = 'slide-down';\n }\n return result;\n }\n get prefixCls() {\n const { suffixCls, prefixCls } = this.props;\n return getProPrefixCls(suffixCls, prefixCls);\n }\n /**\n * 调用传入的onHiddenChange方法\n *\n * @param {boolean} hidden\n */\n handlePopupHiddenChange(hidden) {\n const { onHiddenChange, onVisibleChange, hidden: propsHidden, visible: propsVisible, } = this.props;\n if (propsHidden === undefined && propsVisible === undefined) {\n this.setState({\n hidden,\n });\n }\n if (onHiddenChange) {\n onHiddenChange(hidden);\n }\n if (onVisibleChange) {\n onVisibleChange(!hidden);\n }\n }\n handleClick(e) {\n const { onOverlayClick, hidden, visible } = this.props;\n const { onClick } = this.renderedContentProps || {};\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n if (onClick) {\n onClick(e);\n }\n if (hidden === undefined && visible === undefined) {\n this.setState({\n hidden: true,\n });\n }\n }\n getContent(...props) {\n const { overlay } = this.props;\n if (typeof overlay === 'function') {\n return overlay(...props);\n }\n return overlay;\n }\n renderPopupContent(...props) {\n const content = this.getContent(...props);\n if (isValidElement(content)) {\n this.renderedContentProps = content.props;\n return cloneElement(content, {\n onClick: this.handleClick,\n });\n }\n }\n componentWillReceiveProps({ hidden, visible }) {\n if (hidden !== undefined) {\n this.setState({\n hidden,\n });\n }\n else if (visible !== undefined) {\n this.setState({\n hidden: !visible,\n });\n }\n }\n render() {\n const { prefixCls, state: { hidden }, props: { children, placement, popupClassName, getPopupContainer, onHiddenBeforeChange }, } = this;\n return (React.createElement(Trigger, { prefixCls: prefixCls, action: this.triggerAction, builtinPlacements: builtinPlacements, popupPlacement: placement, popupContent: this.renderPopupContent, popupStyle: popupStyle, popupClassName: popupClassName, onPopupHiddenChange: this.handlePopupHiddenChange, onPopupHiddenBeforeChange: onHiddenBeforeChange, popupHidden: hidden, getPopupContainer: getPopupContainer }, children));\n }\n}\nDropdown.displayName = 'Dropdown';\nDropdown.propTypes = {\n trigger: PropTypes.arrayOf(PropTypes.oneOf([Action.focus, Action.hover, Action.click, Action.contextMenu])),\n overlay: PropTypes.any,\n placement: PropTypes.oneOf([\n Placements.bottomLeft,\n Placements.bottomCenter,\n Placements.bottomRight,\n Placements.topLeft,\n Placements.topCenter,\n Placements.topRight,\n ]),\n hidden: PropTypes.bool,\n visible: PropTypes.bool,\n onHiddenChange: PropTypes.func,\n onHiddenBeforeChange: PropTypes.func,\n onVisibleChange: PropTypes.func,\n onOverlayClick: PropTypes.func,\n suffixCls: PropTypes.string,\n prefixCls: PropTypes.string,\n defaultHidden: PropTypes.bool,\n defaultVisible: PropTypes.bool,\n popupClassName: PropTypes.string,\n};\nDropdown.defaultProps = {\n suffixCls: 'dropdown',\n placement: Placements.bottomLeft,\n trigger: [Action.hover, Action.focus],\n defaultHidden: true,\n};\n__decorate([\n autobind\n], Dropdown.prototype, \"handlePopupHiddenChange\", null);\n__decorate([\n autobind\n], Dropdown.prototype, \"handleClick\", null);\n__decorate([\n autobind\n], Dropdown.prototype, \"renderPopupContent\", null);\n","export var Placements;\n(function (Placements) {\n Placements[\"bottomLeft\"] = \"bottomLeft\";\n Placements[\"bottomCenter\"] = \"bottomCenter\";\n Placements[\"bottomRight\"] = \"bottomRight\";\n Placements[\"topLeft\"] = \"topLeft\";\n Placements[\"topCenter\"] = \"topCenter\";\n Placements[\"topRight\"] = \"topRight\";\n})(Placements || (Placements = {}));\n","import Dropdown from './Dropdown';\nexport default Dropdown;\n","const autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1,\n};\nconst targetOffset = [0, 0];\nexport const placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset,\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset,\n },\n};\nexport default placements;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport 'choerodon-ui/lib/trigger/style';\n","import { __decorate } from \"tslib\";\nimport { observer } from 'mobx-react';\nimport { TextField } from '../text-field/TextField';\nimport { $l } from '../locale-context';\nimport { FieldType } from '../data-set/enum';\nlet EmailField = class EmailField extends TextField {\n constructor() {\n super(...arguments);\n this.type = 'email';\n }\n getFieldType() {\n return FieldType.email;\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('EmailField', label ? 'value_missing' : 'value_missing_no_label', { label }),\n typeMismatch: $l('EmailField', 'type_mismatch'),\n };\n }\n};\nEmailField.displayName = 'EmailField';\nEmailField = __decorate([\n observer\n], EmailField);\nexport default EmailField;\n","import EmailField from './EmailField';\nexport default EmailField;\n","import '../../text-field/style';\n","import React, { memo, useCallback } from 'react';\nimport noop from 'lodash/noop';\nimport Icon from '../icon';\nimport { stopEvent, stopPropagation } from '../_util/EventManager';\nconst CloseButton = memo((props) => {\n const { onClose = noop, value, index } = props;\n const handleClick = useCallback((e) => {\n stopEvent(e);\n onClose(e, value, index);\n }, [onClose, value, index]);\n return (React.createElement(Icon, { type: \"cancel\", onClick: handleClick, onFocus: stopPropagation, onMouseDown: stopEvent, tabIndex: -1 }));\n});\nCloseButton.displayName = 'CloseButton';\nexport default CloseButton;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { action, computed, isArrayLike, observable, runInAction, toJS } from 'mobx';\nimport classNames from 'classnames';\nimport isPromise from 'is-promise';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport isLdEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\nimport defaultTo from 'lodash/defaultTo';\nimport uniqWith from 'lodash/uniqWith';\nimport isFunction from 'lodash/isFunction';\nimport { observer } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport autobind from '../_util/autobind';\nimport Validator from '../validator/Validator';\nimport FormContext from '../form/FormContext';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport isEmpty from '../_util/isEmpty';\nimport { FieldTrim, FieldType } from '../data-set/enum';\nimport { ShowHelp } from './enum';\nimport { FIELD_SUFFIX } from '../form/utils';\nimport { LabelLayout, ShowValidation } from '../form/enum';\nimport Animate from '../animate';\nimport { defaultRenderer, fromRangeValue, getDateFormatByField, getValueKey, isFieldValueEmpty, processValue, renderMultipleValues, renderRangeValue, renderValidationMessage, showValidationMessage, toMultipleValue, toRangeValue, transformHighlightProps, } from './utils';\nimport isSame from '../_util/isSame';\nimport formatString from '../formatter/formatString';\nimport { hide, show } from '../tooltip/singleton';\nimport isOverflow from '../overflow-tip/util';\nconst map = {};\nexport function getFieldsById(id) {\n if (!map[id]) {\n map[id] = [];\n }\n return map[id];\n}\nexport class FormField extends DataSetComponent {\n constructor() {\n super(...arguments);\n this.emptyValue = null;\n // 多选中出现了校验值的数量大于一那么输入框不需要存在校验信息展示\n this.multipleValidateMessageLength = 0;\n }\n get validator() {\n const { field } = this;\n if (field) {\n return field.validator;\n }\n return this.$validator;\n }\n get name() {\n return this.observableProps.name;\n }\n get value() {\n return this.observableProps.value;\n }\n set value(value) {\n runInAction(() => {\n this.observableProps.value = value;\n });\n }\n get labelLayout() {\n return this.props.labelLayout || this.context.labelLayout;\n }\n get labelTooltip() {\n return this.props.labelTooltip || this.context.labelTooltip || getTooltip('label');\n }\n get hasFloatLabel() {\n const { labelLayout } = this;\n return labelLayout === LabelLayout.float;\n }\n get isControlled() {\n return this.getControlled(this.props);\n }\n get pristine() {\n return this.observableProps.pristine;\n }\n get defaultValidationMessages() {\n return {};\n }\n get editable() {\n return this.isEditable();\n }\n get dataSet() {\n const { record } = this;\n if (record) {\n return record.dataSet;\n }\n const { observableProps } = this;\n if ('dataSet' in observableProps) {\n return observableProps.dataSet;\n }\n return observableProps.contextDataSet;\n }\n get record() {\n const { observableProps } = this;\n if ('record' in observableProps) {\n return observableProps.record;\n }\n const { dataSet, dataIndex } = observableProps;\n if (dataSet) {\n if (isNumber(dataIndex)) {\n return dataSet.get(dataIndex);\n }\n return dataSet.current;\n }\n if (isNumber(dataIndex)) {\n const { contextDataSet } = observableProps;\n if (contextDataSet) {\n return contextDataSet.get(dataIndex);\n }\n }\n return observableProps.contextRecord;\n }\n get dataIndex() {\n const { dataIndex, contextDataIndex } = this.observableProps;\n return defaultTo(dataIndex, contextDataIndex);\n }\n get field() {\n const { record, dataSet, name, observableProps } = this;\n const { displayName } = this.constructor;\n if (displayName !== 'Output' && !name) {\n warning(!observableProps.dataSet, `${displayName} with binding DataSet need property name.`);\n warning(!observableProps.record, `${displayName} with binding Record need property name.`);\n }\n if (name) {\n const recordField = record ? record.getField(name) : undefined;\n if (recordField) {\n return recordField;\n }\n if (dataSet) {\n return dataSet.getField(name);\n }\n }\n return undefined;\n }\n get isValid() {\n if (this.pristine) {\n return true;\n }\n const { field } = this;\n if (field) {\n return field.valid;\n }\n const { validator } = this;\n return validator ? validator.validity.valid : true;\n }\n get multiple() {\n return this.getProp('multiple');\n }\n /**\n * 获取字段货币属性\n */\n get currency() {\n return this.getProp('currency');\n }\n get trim() {\n return this.getProp('trim');\n }\n get format() {\n return this.getProp('format');\n }\n get range() {\n return this.getProp('range');\n }\n get readOnly() {\n return this.isReadOnly();\n }\n get highlight() {\n return this.getProp('highlight');\n }\n get showValidation() {\n const { showValidation = getConfig('showValidation') } = this.observableProps;\n return showValidation;\n }\n get highlightRenderer() {\n const { highlightRenderer = getConfig('highlightRenderer') } = this.observableProps;\n return highlightRenderer;\n }\n getControlled(props) {\n return props.value !== undefined;\n }\n defaultRenderer(renderProps) {\n return defaultRenderer(renderProps);\n }\n /**\n * 判断是否应该显示验证信息, 作为属性传给Tooltip\n *\n * @readonly\n * @type {(undefined | boolean)}\n * @memberof FormField\n */\n isValidationMessageHidden(message) {\n const { hidden, noValidate } = this.props;\n return !!(hidden || !message || this.pristine || (!this.record && noValidate));\n }\n isEmpty() {\n const value = this.getValue();\n return isFieldValueEmpty(value, this.range, this.multiple);\n }\n isReadOnly() {\n const { readOnly } = this.observableProps;\n if (readOnly || this.pristine) {\n return true;\n }\n const { field } = this;\n return field ? field.get('readOnly') : false;\n }\n isEditable() {\n return !this.disabled && !this.readOnly;\n }\n isEditableLike() {\n return false;\n }\n getObservablePropsExcludeOutput(props, context) {\n return {\n readOnly: context.readOnly || props.readOnly || (this.getControlled(props) && !props.onChange && !props.onInput),\n };\n }\n getObservableProps(props, context) {\n const observableProps = {\n ...super.getObservableProps(props, context),\n ...this.getObservablePropsExcludeOutput(props, context),\n label: props.label,\n name: props.name,\n contextDataSet: context.dataSet,\n contextRecord: context.record,\n dataIndex: props.dataIndex,\n contextDataIndex: context.dataIndex,\n value: 'value' in props ? props.value : this.observableProps ? this.observableProps.value : props.defaultValue,\n disabled: context.disabled || props.disabled,\n pristine: context.pristine || props.pristine,\n highlight: props.highlight,\n highlightRenderer: 'highlightRenderer' in props ? props.highlightRenderer : context.fieldHighlightRenderer,\n showValidation: 'showValidation' in props ? props.showValidation : context.showValidation,\n };\n if ('record' in props) {\n observableProps.record = props.record;\n }\n return observableProps;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'record',\n 'defaultValue',\n 'dataIndex',\n 'onEnterDown',\n 'onClear',\n 'onBeforeChange',\n 'readOnly',\n 'validator',\n 'validationRenderer',\n 'help',\n 'showHelp',\n 'renderer',\n 'maxTagPlaceholder',\n 'maxTagCount',\n 'maxTagTextLength',\n 'rowIndex',\n 'colIndex',\n 'labelLayout',\n '_inTable',\n 'labelWidth',\n 'pristine',\n 'range',\n 'trim',\n 'newLine',\n 'fieldClassName',\n 'preventRenderer',\n 'highlight',\n 'highlightRenderer',\n 'labelTooltip',\n 'isFlat',\n 'useColon',\n 'showValidation',\n ]);\n }\n getOtherPropsExcludeOutput(otherProps) {\n otherProps.onChange = !this.disabled && !this.readOnly ? this.handleChange : noop;\n otherProps.onKeyDown = this.handleKeyDown;\n otherProps.onCompositionStart = this.handleCompositionStart;\n otherProps.onCompositionEnd = this.handleChange;\n return otherProps;\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onMouseEnter = this.handleMouseEnter;\n otherProps.onMouseLeave = this.handleMouseLeave;\n return this.getOtherPropsExcludeOutput(otherProps);\n }\n getWrapperClassNamesExcludeOutput(prefixCls, empty) {\n return {\n [`${prefixCls}-empty`]: empty,\n [`${prefixCls}-readonly`]: this.readOnly,\n };\n }\n getWrapperClassNames(...args) {\n const { prefixCls } = this;\n const required = this.getProp('required');\n const empty = this.isEmpty();\n return super.getWrapperClassNames({\n [`${prefixCls}-highlight`]: this.highlight,\n [`${prefixCls}-invalid`]: !this.isValid,\n [`${prefixCls}-float-label`]: this.hasFloatLabel,\n [`${prefixCls}-required`]: required,\n [`${prefixCls}-required-colors`]: required && (empty || !getConfig('showRequiredColorsOnlyEmpty')),\n }, this.getWrapperClassNamesExcludeOutput(prefixCls, empty), ...args);\n }\n renderWrapper() {\n return undefined;\n }\n renderHelpMessage() {\n const { showHelp } = this.props;\n if (showHelp === ShowHelp.newLine) {\n const help = this.getProp('help');\n if (help) {\n return (React.createElement(\"div\", { key: \"help\", className: `${getProPrefixCls(FIELD_SUFFIX)}-help` }, help));\n }\n }\n }\n getLabel() {\n return toJS(this.getProp('label'));\n }\n renderFloatLabel() {\n if (this.hasFloatLabel) {\n const label = this.getLabel();\n if (label) {\n const { labelTooltip, floatLabelOffsetX } = this;\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\n const required = this.getProp('required');\n const classString = classNames(`${prefixCls}-label`, {\n [`${prefixCls}-required`]: required,\n [`${prefixCls}-readonly`]: this.readOnly,\n });\n const style = floatLabelOffsetX ? {\n marginLeft: floatLabelOffsetX,\n } : undefined;\n return (React.createElement(\"div\", { className: `${prefixCls}-label-wrapper`, style: style },\n React.createElement(\"div\", { className: classString, title: isString(label) && ![TextTooltip.always, TextTooltip.overflow].includes(labelTooltip) ? label : undefined, onMouseEnter: this.handleFloatLabelMouseEnter, onMouseLeave: this.handleFloatLabelMouseLeave }, label)));\n }\n }\n }\n componentDidMount() {\n super.componentDidMount();\n this.addToForm(this.props, this.context);\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n this.removeFromForm(this.props, this.context);\n this.addToForm(nextProps, nextContext);\n if (!this.record && this.props.value !== nextProps.value) {\n this.validate(nextProps.value);\n }\n }\n componentWillUnmount() {\n this.removeFromForm(this.props, this.context);\n if (this.tooltipShown) {\n hide();\n this.tooltipShown = false;\n }\n }\n addToForm(props, context) {\n const { form } = props;\n const { formNode } = context;\n if (form) {\n let fields = map[form];\n if (!fields) {\n fields = [];\n map[form] = fields;\n }\n fields.push(this);\n }\n else if (formNode) {\n formNode.addField(this);\n }\n }\n removeFromForm(props, context) {\n const { form } = props;\n const { formNode } = context;\n if (form) {\n const fields = map[form];\n if (fields) {\n const index = fields.indexOf(this);\n if (index !== -1) {\n fields.splice(index, 1);\n }\n }\n }\n else if (formNode) {\n formNode.removeField(this);\n }\n }\n renderValidationResult(validationResult) {\n const validationMessage = this.getValidationMessage(validationResult);\n const { labelLayout } = this.context;\n if (validationMessage) {\n const showIcon = !(labelLayout === LabelLayout.float || this.showValidation === ShowValidation.newLine);\n return renderValidationMessage(validationMessage, showIcon);\n }\n }\n getValidatorProps() {\n const { name, range, multiple, defaultValidationMessages } = this;\n const type = this.getFieldType();\n const required = this.getProp('required');\n const customValidator = this.getProp('validator');\n const label = this.getProp('label');\n return {\n type,\n required,\n customValidator,\n name,\n label,\n range,\n multiple,\n defaultValidationMessages,\n form: this.context.formNode,\n };\n }\n getValidationMessage(validationResult) {\n const { validator } = this;\n if (validator) {\n if (validationResult === undefined && validator) {\n validationResult = validator.currentValidationResult;\n }\n const { props: { validationRenderer }, } = this;\n if (validationResult) {\n if (validationRenderer) {\n const validationMessage = validationRenderer(validationResult, validator.props);\n if (validationMessage) {\n return validationMessage;\n }\n }\n return validationResult.validationMessage;\n }\n }\n }\n showTooltip(e) {\n if (!this.hasFloatLabel && this.showValidation === ShowValidation.tooltip) {\n const message = this.getTooltipValidationMessage();\n if (message) {\n showValidationMessage(e, message);\n return true;\n }\n }\n return false;\n }\n handleMouseEnter(e) {\n if (this.showTooltip(e)) {\n this.tooltipShown = true;\n }\n const { onMouseEnter = noop } = this.props;\n onMouseEnter(e);\n }\n handleMouseLeave(e) {\n if (this.tooltipShown) {\n hide();\n this.tooltipShown = false;\n }\n const { onMouseLeave = noop } = this.props;\n onMouseLeave(e);\n }\n handleFloatLabelMouseEnter(e) {\n const { labelTooltip } = this;\n const { currentTarget } = e;\n if (labelTooltip === TextTooltip.always || (labelTooltip === TextTooltip.overflow && isOverflow(currentTarget))) {\n show(currentTarget, {\n title: this.getLabel(),\n placement: 'top',\n theme: getTooltipTheme('label'),\n });\n }\n }\n handleFloatLabelMouseLeave() {\n hide();\n }\n handleFocus(e) {\n super.handleFocus(e);\n if (this.range && !this.rangeValue) {\n this.beginRange();\n }\n }\n handleBlur(e) {\n super.handleBlur(e);\n if (this.range && (this.editable || this.isEditableLike())) {\n this.endRange();\n }\n }\n handleCompositionStart() {\n this.lock = true;\n }\n handleChange(e) {\n delete this.lock;\n e.preventDefault();\n e.stopPropagation();\n }\n handleKeyDown(e) {\n const { onKeyDown = noop, onEnterDown = noop } = this.props;\n onKeyDown(e);\n if (!e.isDefaultPrevented()) {\n switch (e.keyCode) {\n case KeyCode.ENTER:\n this.handleEnterDown(e);\n onEnterDown(e);\n break;\n case KeyCode.ESC:\n this.blur();\n break;\n default:\n }\n }\n }\n handleEnterDown(e) {\n if (this.multiple) {\n if (this.range) {\n this.endRange();\n e.preventDefault();\n }\n else {\n const { value } = e.target;\n if (value !== '') {\n this.syncValueOnBlur(value);\n e.preventDefault();\n }\n }\n }\n else {\n this.blur();\n }\n }\n syncValueOnBlur(value) {\n this.prepareSetValue(value);\n }\n handleMutipleValueRemove(e, value, index) {\n this.removeValue(value, index);\n e.stopPropagation();\n }\n getDateFormat(field = this.field) {\n return getDateFormatByField(field, this.getFieldType(field));\n }\n processValue(value) {\n return processValue(value, this.getDateFormat());\n }\n getDataSetValue() {\n const { record, pristine, name } = this;\n if (record) {\n return pristine ? record.getPristineValue(name) : record.get(name);\n }\n }\n getTextNode(value = this.getValue()) {\n return this.getTextByValue(value);\n }\n getTextByValue(value) {\n const { preventRenderer } = this.props;\n const text = this.editable && (preventRenderer || this.isFocused)\n ? this.processValue(value)\n : this.processRenderer(value);\n return text;\n }\n getText(value) {\n return this.processValue(value);\n }\n processText(value) {\n return value;\n }\n processRenderer(value, repeat) {\n const { field, record, dataSet, props: { renderer = this.defaultRenderer, name, maxTagTextLength }, } = this;\n let processedValue;\n if (field && (field.lookup || field.get('options') || field.get('lovCode'))) {\n processedValue = field.getText(value);\n }\n // 值集中不存在 再去取直接返回的值\n const text = this.processText(isNil(processedValue) ? this.processValue(value) : processedValue);\n return renderer\n ? renderer({\n value,\n text,\n record,\n dataSet,\n name,\n repeat,\n maxTagTextLength,\n })\n : text;\n }\n processRangeValue(value) {\n if (value === undefined && !this.multiple) {\n value = toRangeValue(this.getValue(), this.range);\n }\n return value || [];\n }\n getOldValue() {\n return this.getValue();\n }\n getValue() {\n const { name } = this;\n if (this.dataSet && name) {\n return this.getDataSetValue();\n }\n return this.value;\n }\n getValues() {\n return toMultipleValue(this.getValue(), this.range);\n }\n addValue(...values) {\n if (this.multiple) {\n const oldValues = toMultipleValue(this.getValue(), false);\n if (values.length) {\n this.setValue(uniqWith([...oldValues, ...values], this.compare));\n }\n else if (!oldValues.length) {\n this.setValue(this.emptyValue);\n }\n }\n else {\n this.setValue(values.pop());\n }\n }\n isLowerRange(_value1, _value2) {\n return false;\n }\n prepareSetValue(...value) {\n const processV = this.getProp('processValue');\n const { range } = this;\n let values = value.filter(item => isNumber(item) || !isEmpty(item));\n if (range) {\n const { rangeTarget, rangeValue } = this;\n if (rangeTarget !== undefined && rangeValue) {\n const [start, end] = rangeValue;\n let newValue = values.pop();\n if (isFunction(processV)) {\n newValue = processV(newValue, rangeTarget);\n }\n rangeValue[rangeTarget] = newValue;\n if (rangeTarget === 0 && (newValue || isNumber(newValue)) && (end || isNumber(end)) && this.isLowerRange(end, newValue)) {\n rangeValue[rangeTarget] = end;\n rangeValue[1] = newValue;\n }\n if (rangeTarget === 1 && (newValue || isNumber(newValue)) && (start || isNumber(start)) && this.isLowerRange(newValue, start)) {\n rangeValue[rangeTarget] = start;\n rangeValue[0] = newValue;\n }\n }\n }\n else {\n if (isFunction(processV)) {\n values = values.map(v => processV(v, undefined));\n }\n this.addValue(...values);\n }\n }\n removeValues(values, index = 0) {\n let repeat;\n this.setValue(values.reduce((oldValues, value) => {\n repeat = 0;\n return oldValues.filter(v => {\n if (this.getValueKey(v) === this.getValueKey(value)) {\n if (index === -1 || repeat === index) {\n this.afterRemoveValue(value, repeat++);\n return false;\n }\n repeat++;\n }\n return true;\n });\n }, this.getValues()));\n }\n removeValue(value, index = 0) {\n this.removeValues([value], index);\n }\n afterRemoveValue(_value, _repeat) {\n }\n beginRange() {\n this.setRangeTarget(this.rangeTarget || 0);\n this.rangeValue = this.multiple\n ? [undefined, undefined]\n : toRangeValue(this.getValue(), this.range);\n }\n endRange() {\n if (this.rangeValue) {\n const values = this.rangeValue.slice();\n this.rangeValue = undefined;\n if (!this.multiple || !values.every(isNil)) {\n this.addValue(fromRangeValue(values, this.range));\n }\n }\n this.setRangeTarget(undefined);\n }\n setRangeTarget(target) {\n this.rangeTarget = target;\n }\n compare(oldValue, newValue) {\n return isSame(toJS(oldValue), toJS(newValue));\n }\n autoCreate() {\n const { record } = this;\n if (record) {\n return record;\n }\n const { dataSet, name, dataIndex } = this;\n if (dataSet && name) {\n return dataSet.create({}, dataIndex);\n }\n }\n setValue(value) {\n if (!this.readOnly) {\n if (this.multiple || this.range\n ? isArrayLike(value) && !value.length\n : isNil(value) || value === '') {\n value = this.emptyValue;\n }\n const { name, dataSet, trim, format, } = this;\n const { onChange = noop, onBeforeChange = noop } = this.props;\n const old = toJS(this.getOldValue());\n if (!dataSet || !name) {\n value = formatString(value, {\n trim,\n format,\n });\n }\n const updateAndValidate = () => {\n if (dataSet && name) {\n const record = this.autoCreate();\n if (record) {\n const { field } = this;\n if (field && !field.get('defaultValidationMessages')) {\n field.set('defaultValidationMessages', this.defaultValidationMessages);\n }\n record.set(name, value);\n }\n }\n else {\n this.validate(value, false);\n }\n };\n // 转成实际的数据再进行判断\n if (!this.compare(old, toJS(value))) {\n const { formNode } = this.context;\n const storedValue = this.value;\n const beforeChange = onBeforeChange(value, old, formNode);\n const resolveCallback = action(() => {\n updateAndValidate();\n onChange(value, old, formNode);\n this.afterSetValue();\n });\n if (isPromise(beforeChange)) {\n this.value = value;\n const rejectCallback = () => {\n this.value = storedValue;\n };\n beforeChange.then(result => result === false ? rejectCallback() : resolveCallback());\n }\n else if (beforeChange !== false) {\n resolveCallback();\n this.value = value;\n }\n }\n else {\n updateAndValidate();\n }\n }\n }\n afterSetValue() {\n }\n renderRangeValue(value, repeat) {\n return renderRangeValue(value, { repeat, processRenderer: this.processRenderer });\n }\n getValueKey(v) {\n return getValueKey(v);\n }\n isMultipleBlockDisabled(_v) {\n return this.disabled;\n }\n renderMultipleValues(readOnly) {\n const { prefixCls, range, disabled, validator, props: { maxTagCount, maxTagPlaceholder }, } = this;\n const values = renderMultipleValues(this.getValue(), {\n range,\n maxTagCount,\n maxTagPlaceholder,\n prefixCls,\n disabled,\n readOnly: this.readOnly || readOnly,\n validator,\n isMultipleBlockDisabled: this.isMultipleBlockDisabled,\n processRenderer: this.processRenderer,\n renderValidationResult: this.renderValidationResult,\n handleMutipleValueRemove: this.handleMutipleValueRemove,\n isValidationMessageHidden: this.isValidationMessageHidden,\n showValidationMessage,\n getKey: this.getValueKey,\n });\n this.multipleValidateMessageLength = values.multipleValidateMessageLength;\n return values.tags;\n }\n clear() {\n const { onClear = noop } = this.props;\n this.setValue(this.emptyValue);\n this.rangeValue = this.isFocused ? [undefined, undefined] : undefined;\n onClear();\n }\n async checkValidity() {\n const { name } = this;\n const valid = await this.validate();\n const { onInvalid = noop } = this.props;\n if (!valid) {\n const { validator } = this;\n if (validator) {\n const { validationResults, validity } = validator;\n onInvalid(validationResults, validity, name);\n }\n }\n return valid;\n }\n validate(value, report = true) {\n if (!this.props.noValidate) {\n if (value === undefined) {\n value = this.multiple ? this.getValues() : this.getValue();\n }\n let { validator } = this;\n if (validator) {\n validator.reset();\n }\n else {\n const { field } = this;\n if (field) {\n validator = new Validator(field);\n field.validator = validator;\n }\n else {\n validator = new Validator(undefined, this);\n this.$validator = validator;\n }\n }\n return validator.checkValidity(value).then((valid) => {\n if (report) {\n const { formNode } = this.context;\n if (formNode && !formNode.validating) {\n formNode.reportValidity(valid);\n }\n }\n return valid;\n });\n }\n return Promise.resolve(true);\n }\n isDisabled() {\n if (super.isDisabled()) {\n return true;\n }\n const { field } = this;\n if (field) {\n const disabled = field.get('disabled');\n if (disabled) {\n return true;\n }\n const cascadeMap = field.get('cascadeMap');\n const { record } = this;\n if (cascadeMap &&\n (!record || Object.keys(cascadeMap).some(cascade => {\n if (isObject(record.get(cascadeMap[cascade]))) {\n return isLdEmpty(record.get(cascadeMap[cascade]));\n }\n return isNil(record.get(cascadeMap[cascade]));\n }))) {\n return true;\n }\n }\n return false;\n }\n reset() {\n if (!this.isControlled && !this.dataSet) {\n this.setValue(this.props.defaultValue);\n }\n const { validator } = this;\n if (validator) {\n validator.reset();\n }\n }\n getFieldType(field = this.field) {\n return (field && field.get('type')) || FieldType.string;\n }\n getProp(propName) {\n const { field, observableProps } = this;\n return defaultTo(field && field.get(propName), propName in observableProps ? observableProps[propName] : this.props[propName]);\n }\n getTooltipValidationMessage() {\n const { _inTable } = this.props;\n if (!_inTable && !(!!(this.multiple && this.getValues().length) && !this.getProp('validator') || this.multipleValidateMessageLength > 0)) {\n const validationMessage = this.renderValidationResult();\n if (!this.isValidationMessageHidden(validationMessage)) {\n return validationMessage;\n }\n }\n }\n renderHighLight() {\n const wrapper = this.renderWrapper();\n const { highlight, dataSet, record, name } = this;\n if (highlight) {\n const hidden = !(this.hasFloatLabel || this.showValidation === ShowValidation.newLine || this.isValid);\n const highlightWrapper = this.highlightRenderer(transformHighlightProps(highlight, { dataSet, record, name, hidden }), wrapper);\n if (isValidElement(highlightWrapper)) {\n return highlightWrapper;\n }\n }\n return wrapper;\n }\n render() {\n const wrapper = this.renderHighLight();\n const help = this.renderHelpMessage();\n if (this.hasFloatLabel || this.showValidation === ShowValidation.newLine) {\n const message = this.renderValidationResult();\n return [\n isValidElement(wrapper) ? cloneElement(wrapper, { key: 'wrapper' }) : wrapper,\n message && (React.createElement(Animate, { transitionName: \"show-error\", component: \"\", transitionAppear: true, key: \"validation-message\" }, message)),\n help,\n ];\n }\n return (React.createElement(React.Fragment, null,\n wrapper,\n help));\n }\n forcePositionChanged() {\n }\n}\nFormField.contextType = FormContext;\nFormField.propTypes = {\n _inTable: PropTypes.bool,\n type: PropTypes.string,\n /**\n * 字段名\n */\n name: PropTypes.string,\n /**\n * <受控>当前值\n */\n value: PropTypes.any,\n /**\n * 默认值\n */\n defaultValue: PropTypes.any,\n /**\n * 是否必输\n */\n required: PropTypes.bool,\n /**\n * 是否只读\n */\n readOnly: PropTypes.bool,\n /**\n * 对照表单id\n */\n form: PropTypes.string,\n /**\n * 对照record在DataSet中的index\n * @default dataSet.currentIndex\n */\n dataIndex: PropTypes.number,\n /**\n * 是否是多值\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * 是否是范围值\n * @default false\n */\n range: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.string)]),\n /**\n * 表单下控件跨越的行数\n */\n rowSpan: PropTypes.number,\n /**\n * 另起新行\n */\n newLine: PropTypes.bool,\n /**\n * 表单下控件跨越的列数\n */\n colSpan: PropTypes.number,\n /**\n * 校验器\n * (value: any, name?: string, form?: ReactInstance) => string | boolean | Promise<string | boolean>\n */\n validator: PropTypes.func,\n /**\n * 校验失败回调\n * (validationMessage: ReactNode, validity: Validity, name?: string) => void\n */\n onInvalid: PropTypes.func,\n /**\n * 额外信息,常用作提示\n */\n help: PropTypes.string,\n /**\n * 显示提示信息的方式\n */\n showHelp: PropTypes.oneOf([ShowHelp.tooltip, ShowHelp.newLine, ShowHelp.none]),\n /**\n * 渲染器\n */\n renderer: PropTypes.func,\n /**\n * 校验信息渲染器\n */\n validationRenderer: PropTypes.func,\n /**\n * 多值标签超出最大数量时的占位描述\n */\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * 多值标签最大数量\n */\n maxTagCount: PropTypes.number,\n /**\n * 多值标签文案最大长度\n */\n maxTagTextLength: PropTypes.number,\n /**\n * 显示原始值\n */\n pristine: PropTypes.bool,\n /**\n * 字符串值是否去掉首尾空格\n * 可选值: both left right none\n * @default: both\n */\n trim: PropTypes.oneOf([FieldTrim.both, FieldTrim.left, FieldTrim.right, FieldTrim.none]),\n /**\n * 值变化前回调\n * (value: any, oldValue: any) => boolean\n */\n onBeforeChange: PropTypes.func,\n /**\n * 值变化回调\n * (value: any, oldValue: any, form?: ReactInstance) => void\n */\n onChange: PropTypes.func,\n /**\n * 输入回调\n */\n onInput: PropTypes.func,\n /**\n * 键盘回车回调\n */\n onEnterDown: PropTypes.func,\n /**\n * 键盘回车回调\n */\n fieldClassName: PropTypes.string,\n /**\n * 高亮\n */\n highlight: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),\n /**\n * 高亮渲染器\n */\n highlightRenderer: PropTypes.func,\n /**\n * 是否使用冒号\n */\n useColon: PropTypes.bool,\n /**\n * 校验信息提示方式\n */\n showValidation: PropTypes.string,\n ...DataSetComponent.propTypes,\n};\nFormField.defaultProps = {\n readOnly: false,\n disabled: false,\n noValidate: false,\n showHelp: 'newLine',\n trim: FieldTrim.both,\n};\n__decorate([\n observable\n], FormField.prototype, \"floatLabelOffsetX\", void 0);\n__decorate([\n observable\n], FormField.prototype, \"rangeTarget\", void 0);\n__decorate([\n observable\n], FormField.prototype, \"rangeValue\", void 0);\n__decorate([\n observable\n], FormField.prototype, \"$validator\", void 0);\n__decorate([\n computed\n], FormField.prototype, \"editable\", null);\n__decorate([\n computed\n], FormField.prototype, \"dataSet\", null);\n__decorate([\n computed\n], FormField.prototype, \"record\", null);\n__decorate([\n computed\n], FormField.prototype, \"dataIndex\", null);\n__decorate([\n computed\n], FormField.prototype, \"field\", null);\n__decorate([\n computed\n], FormField.prototype, \"isValid\", null);\n__decorate([\n computed\n], FormField.prototype, \"readOnly\", null);\n__decorate([\n computed\n], FormField.prototype, \"showValidation\", null);\n__decorate([\n computed\n], FormField.prototype, \"highlightRenderer\", null);\n__decorate([\n autobind\n], FormField.prototype, \"defaultRenderer\", null);\n__decorate([\n autobind\n], FormField.prototype, \"isValidationMessageHidden\", null);\n__decorate([\n autobind\n], FormField.prototype, \"renderValidationResult\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleMouseEnter\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleMouseLeave\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleFloatLabelMouseEnter\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleFocus\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleCompositionStart\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleChange\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], FormField.prototype, \"handleMutipleValueRemove\", null);\n__decorate([\n autobind\n], FormField.prototype, \"processRenderer\", null);\n__decorate([\n action\n], FormField.prototype, \"prepareSetValue\", null);\n__decorate([\n action\n], FormField.prototype, \"beginRange\", null);\n__decorate([\n action\n], FormField.prototype, \"endRange\", null);\n__decorate([\n action\n], FormField.prototype, \"setRangeTarget\", null);\n__decorate([\n autobind\n], FormField.prototype, \"compare\", null);\n__decorate([\n action\n], FormField.prototype, \"setValue\", null);\n__decorate([\n autobind\n], FormField.prototype, \"isMultipleBlockDisabled\", null);\n__decorate([\n action\n], FormField.prototype, \"clear\", null);\n__decorate([\n action\n], FormField.prototype, \"validate\", null);\n__decorate([\n autobind\n], FormField.prototype, \"reset\", null);\n__decorate([\n autobind\n], FormField.prototype, \"getTooltipValidationMessage\", null);\nlet ObserverFormField = class ObserverFormField extends FormField {\n};\nObserverFormField.defaultProps = FormField.defaultProps;\nObserverFormField = __decorate([\n observer\n], ObserverFormField);\nexport default ObserverFormField;\n","export var ShowHelp;\n(function (ShowHelp) {\n ShowHelp[\"tooltip\"] = \"tooltip\";\n ShowHelp[\"newLine\"] = \"newLine\";\n ShowHelp[\"none\"] = \"none\";\n})(ShowHelp || (ShowHelp = {}));\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport 'choerodon-ui/lib/grid/style';\nimport './index.less';\n// style dependencies\nimport '../../tooltip/style';\nimport '../../validator/style';\n","import React, { cloneElement, isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport defaultTo from 'lodash/defaultTo';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { get, isArrayLike, isObservableObject } from 'mobx';\nimport classNames from 'classnames';\nimport moment, { isMoment } from 'moment';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { FieldType, RecordStatus } from '../data-set/enum';\nimport formatCurrency from '../formatter/formatCurrency';\nimport formatNumber from '../formatter/formatNumber';\nimport { getPrecision } from '../number-field/utils';\nimport isEmpty from '../_util/isEmpty';\nimport CloseButton from './CloseButton';\nimport { hide, show } from '../tooltip/singleton';\nimport Icon from '../icon';\nimport { $l } from '../locale-context';\nimport isReactChildren from '../_util/isReactChildren';\nimport { defaultTextField, findBindFields } from '../data-set/utils';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport MultiLine from '../output/MultiLine';\nexport function toRangeValue(value, range) {\n if (isArrayLike(range)) {\n if (isObservableObject(value)) {\n return [get(value, range[0]), get(value, range[1])];\n }\n if (isObject(value)) {\n return [value[range[0]], value[range[1]]];\n }\n }\n else if (isArrayLike(value)) {\n return value.slice(0, 2);\n }\n return [undefined, undefined];\n}\nexport function fromRangeValue(value, range) {\n if (isArrayLike(range)) {\n const [start, end] = range;\n return {\n [start]: value[0],\n [end]: value[1],\n };\n }\n return value;\n}\nexport function toMultipleValue(value, range) {\n if (!isNil(value)) {\n const multipleValue = isArrayLike(value) ? value.slice() : [value];\n if (range) {\n return multipleValue.map(item => toRangeValue(item, range));\n }\n return multipleValue;\n }\n return [];\n}\nexport function getDateFormatByFieldType(type) {\n const formatter = getConfig('formatter');\n switch (type) {\n case FieldType.date:\n return formatter.date;\n case FieldType.dateTime:\n return formatter.dateTime;\n case FieldType.week:\n return formatter.week;\n case FieldType.month:\n return formatter.month;\n case FieldType.year:\n return formatter.year;\n case FieldType.time:\n return formatter.time;\n default:\n return formatter.date;\n }\n}\nexport function getDateFormatByField(field, type) {\n if (field) {\n return field.get('format') || getDateFormatByFieldType(type || field.type);\n }\n if (type) {\n return getDateFormatByFieldType(type);\n }\n return getConfig('formatter').jsonDate || moment.defaultFormat;\n}\nexport function transformHighlightProps(highlight, props) {\n if (isValidElement(highlight) || isString(highlight)) {\n return {\n ...props,\n content: highlight,\n };\n }\n if (isObject(highlight)) {\n return {\n ...props,\n ...highlight,\n };\n }\n return props;\n}\nexport function getCurrencyFormatter() {\n const currencyFormatter = getConfig('currencyFormatter');\n if (currencyFormatter !== undefined) {\n return currencyFormatter;\n }\n return formatCurrency;\n}\nexport function getNumberFormatter() {\n const numberFieldFormatter = getConfig('numberFieldFormatter');\n if (numberFieldFormatter !== undefined) {\n return numberFieldFormatter;\n }\n return formatNumber;\n}\nexport function getCurrencyFormatOptions(getProp, controlLang) {\n const precision = getProp('precision');\n const formatterOptions = getProp('formatterOptions') || {};\n const currencyFormatterOptions = getConfig('currencyFormatterOptions') || { options: {} };\n const lang = formatterOptions.lang || currencyFormatterOptions.lang || controlLang;\n const options = {};\n if (isNumber(precision)) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n }\n Object.assign(options, currencyFormatterOptions.options, formatterOptions.options);\n const numberGrouping = getProp('numberGrouping');\n const currency = getProp('currency');\n if (currency) {\n options.currency = currency;\n }\n if (numberGrouping === false) {\n options.useGrouping = false;\n }\n return {\n lang,\n options,\n };\n}\nexport function getNumberFormatOptions(getProp, getValue, value, controlLang) {\n const precision = getProp('precision');\n const precisionInValue = isNumber(precision) ? precision : getPrecision(isNil(value) ? getValue ? getValue() || 0 : 0 : value);\n const formatterOptions = getProp('formatterOptions') || {};\n const numberFieldFormatterOptions = getConfig('numberFieldFormatterOptions') || { options: {} };\n const lang = formatterOptions.lang || numberFieldFormatterOptions.lang || controlLang;\n const options = {\n maximumFractionDigits: precisionInValue,\n ...numberFieldFormatterOptions.options,\n ...formatterOptions.options,\n };\n const numberGrouping = getProp('numberGrouping');\n if (numberGrouping === false) {\n options.useGrouping = false;\n }\n return {\n lang,\n options,\n };\n}\nexport function processFieldValue(value, field, options, showValueIfNotFound) {\n const { getProp, getValue, lang } = options;\n const type = field && field.type;\n const currency = getProp('currency');\n if (currency || type === FieldType.currency) {\n const formatOptions = getCurrencyFormatOptions(getProp, lang);\n const formatter = getProp('formatter');\n return (formatter || getCurrencyFormatter())(value, formatOptions.lang, formatOptions.options);\n }\n if (type === FieldType.number) {\n const formatOptions = getNumberFormatOptions(getProp, getValue, value, lang);\n const formatter = getProp('formatter');\n return (formatter || getNumberFormatter())(value, formatOptions.lang, formatOptions.options);\n }\n if (field) {\n return field.getText(value, showValueIfNotFound);\n }\n return value;\n}\nexport function processValue(value, format) {\n if (!isNil(value)) {\n if (isMoment(value)) {\n if (value.isValid()) {\n return value.format(format);\n }\n if (getConfig('showInvalidDate')) {\n return $l('DatePicker', 'invalid_date');\n }\n return '';\n }\n if (isReactChildren(value)) {\n // For Select's Option and TreeSelect's TreeNode which type may be ReactElement\n // @ts-ignore\n return value;\n }\n return value.toString();\n }\n return '';\n}\nexport function isFieldValueEmpty(value, range, multiple, valueField, textField) {\n if (isEmpty(value)) {\n return true;\n }\n if (multiple) {\n return !isArrayLike(value) || value.length === 0;\n }\n if (range === true) {\n return isArrayLike(value) && value.every(v => isEmpty(v));\n }\n if (isArrayLike(range)) {\n return value && Object.values(value).every(v => isEmpty(v));\n }\n const isObjectEmpty = (v) => {\n if (valueField && textField) {\n if (isObservableObject(v)) {\n return isEmpty(get(v, valueField)) && isEmpty(get(v, textField));\n }\n if (isObject(v)) {\n return isEmpty(v[valueField]) && isEmpty(v[textField]);\n }\n }\n return false;\n };\n if (isArrayLike(value)) {\n return value.length ? value.every(v => {\n if (isEmpty(v)) {\n return true;\n }\n return isObjectEmpty(v);\n }) : true;\n }\n return isObjectEmpty(value);\n}\nexport function renderRangeValue(value, option) {\n const { repeat, processRenderer } = option;\n const rangeValue = (value || []).map((item) => processRenderer(item, repeat), []);\n if (rangeValue.some(v => !isEmpty(v))) {\n return (React.createElement(React.Fragment, null,\n rangeValue[0],\n \"~\",\n rangeValue[1]));\n }\n}\nexport function getValueKey(v) {\n if (isArrayLike(v)) {\n return v.join(',');\n }\n return v;\n}\nexport function renderMultipleValues(value, option) {\n const { range, maxTagPlaceholder, prefixCls, validator, disabled, readOnly, isMultipleBlockDisabled, processRenderer, renderValidationResult, handleMutipleValueRemove, getKey = getValueKey, isValidationMessageHidden, showValidationMessage: selfShowValidationMessage, } = option;\n const values = toMultipleValue(value, range);\n const valueLength = values.length;\n const { maxTagCount = valueLength } = option;\n const repeats = new Map();\n const blockClassName = classNames({\n [`${prefixCls}-multiple-block-disabled`]: disabled,\n }, `${prefixCls}-multiple-block`);\n let multipleValidateMessageLength = 0;\n const validationResults = validator && validator.validationResults;\n const tags = values.slice(0, maxTagCount).map((v, index) => {\n const key = getKey(v);\n const repeat = repeats.get(key) || 0;\n const text = range ? renderRangeValue(v, { repeat, processRenderer }) : processRenderer(v, repeat);\n repeats.set(key, repeat + 1);\n if (!isEmpty(text)) {\n const validationResult = validationResults && validationResults.find(error => error.value === v);\n const blockDisabled = isMultipleBlockDisabled ? isMultipleBlockDisabled(v) : disabled;\n const className = classNames({\n [`${prefixCls}-multiple-block-invalid`]: validationResult,\n [`${prefixCls}-multiple-block-disabled`]: blockDisabled,\n }, `${prefixCls}-multiple-block`);\n const validationMessage = validationResult && renderValidationResult(validationResult);\n if (validationMessage) {\n multipleValidateMessageLength++;\n }\n const closeBtn = !blockDisabled && !readOnly && (React.createElement(CloseButton, { onClose: handleMutipleValueRemove, value: v, index: repeat }));\n const inner = readOnly ? (React.createElement(\"span\", { key: String(index), className: className }, text)) : (React.createElement(\"li\", { key: String(index), className: className },\n React.createElement(\"div\", null, text),\n closeBtn));\n if (!isValidationMessageHidden(validationMessage)) {\n return cloneElement(inner, {\n onMouseEnter: (e) => selfShowValidationMessage(e, validationMessage),\n onMouseLeave: () => hide(),\n });\n }\n return inner;\n }\n return undefined;\n });\n if (valueLength > maxTagCount) {\n let content = `+ ${valueLength - maxTagCount} ...`;\n if (maxTagPlaceholder) {\n const omittedValues = values.slice(maxTagCount, valueLength);\n content =\n typeof maxTagPlaceholder === 'function'\n ? maxTagPlaceholder(omittedValues)\n : maxTagPlaceholder;\n }\n tags.push(React.createElement(\"li\", { key: \"maxTagPlaceholder\", className: blockClassName },\n React.createElement(\"div\", null, content)));\n }\n return { tags, multipleValidateMessageLength };\n}\nexport function renderMultiLine(options) {\n const { field, record, dataSet, name, prefixCls, renderer, renderValidationResult, isValidationMessageHidden, processValue: selfProcessValue, labelTooltip, tooltip, } = options;\n let multipleValidateMessageLength = 0;\n if (record) {\n const multiLineFields = findBindFields(field, record.fields);\n if (renderer) {\n return {\n lines: renderer({\n multiLineFields,\n record,\n dataSet,\n name,\n }),\n multipleValidateMessageLength,\n };\n }\n if (multiLineFields.length) {\n const lines = (multiLineFields.map(fieldItem => {\n if (fieldItem) {\n const { validator } = fieldItem;\n const required = defaultTo(fieldItem.get('required'), field.get('required'));\n const fieldName = fieldItem.get('name');\n const value = record.get(fieldName);\n const validationResult = validator && validator.validationResults.find(error => error.value === value);\n const validationMessage = validationResult && renderValidationResult(validationResult);\n const validationHidden = isValidationMessageHidden(validationMessage);\n let processedValue = '';\n if (fieldItem.get('lovCode')) {\n const fieldValue = fieldItem.getValue();\n if (isPlainObject(fieldValue)) {\n processedValue = ObjectChainValue.get(fieldValue, fieldItem.get('textField') || defaultTextField);\n }\n }\n const notEmpty = !isEmpty(value);\n // 值集中不存在 再去取直接返回的值\n const text = processedValue || selfProcessValue(value);\n multipleValidateMessageLength++;\n const validationInner = notEmpty ? text :\n validationHidden ? record.status === RecordStatus.add ? '' :\n React.createElement(\"span\", { className: `${prefixCls}-multi-value-invalid` }, text) : validationMessage;\n const label = fieldItem.get('label');\n return (React.createElement(MultiLine, { key: `${record.index}-multi-${fieldName}`, prefixCls: prefixCls, label: label, required: required, validationMessage: validationMessage, validationHidden: validationHidden, tooltip: tooltip, labelTooltip: labelTooltip }, validationInner));\n }\n return null;\n }));\n return {\n lines,\n multipleValidateMessageLength,\n };\n }\n }\n return { multipleValidateMessageLength };\n}\nexport function renderValidationMessage(validationMessage, showIcon) {\n if (validationMessage) {\n return (React.createElement(\"div\", { className: getProPrefixCls('validation-message') },\n showIcon && React.createElement(Icon, { type: \"error\" }),\n React.createElement(\"span\", null, validationMessage)));\n }\n}\nexport function defaultRenderer(renderOption) {\n const { text, repeat, maxTagTextLength } = renderOption;\n return repeat !== undefined &&\n maxTagTextLength &&\n isString(text) &&\n text.length > maxTagTextLength\n ? `${text.slice(0, maxTagTextLength)}...`\n : text;\n}\nexport function showValidationMessage(e, message) {\n show(e.currentTarget, {\n suffixCls: `form-tooltip ${getConfig('proPrefixCls')}-tooltip`,\n title: message,\n theme: getTooltipTheme('validation'),\n placement: 'bottomLeft',\n });\n}\n","import { __decorate } from \"tslib\";\nimport React, { Children, cloneElement, createElement, isValidElement, } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { action as mobxAction, computed, isArrayLike, observable, runInAction } from 'mobx';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nimport noop from 'lodash/noop';\nimport defaultTo from 'lodash/defaultTo';\nimport Responsive, { hasBreakPointMap } from 'choerodon-ui/lib/responsive/Responsive';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getTooltip } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport isFunction from 'lodash/isFunction';\nimport axios from '../axios';\nimport autobind from '../_util/autobind';\nimport isFragment from '../_util/isFragment';\nimport { getFieldsById } from '../field/FormField';\nimport FormContext from './FormContext';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport { FormLayout, LabelAlign, LabelLayout, ResponsiveKeys } from './enum';\nimport { defaultColumns, defaultExcludeUseColonTag, defaultLabelWidth, FIELD_SUFFIX, getProperty, hasParentElement, normalizeLabelWidth, } from './utils';\nimport FormVirtualGroup from './FormVirtualGroup';\nimport { DataSetEvents } from '../data-set/enum';\nimport Item from './Item';\nimport FormItemLabel from './FormItemLabel';\n/**\n * 表单name生成器\n */\nconst NameGen = (function* (start) {\n while (true) {\n start += 1;\n yield `form-${start}`;\n }\n})(0);\nconst labelWidthPropTypes = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf(['auto']),\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])])),\n]);\nconst labelAlignPropTypes = PropTypes.oneOf([LabelAlign.left, LabelAlign.center, LabelAlign.right]);\nconst labelLayoutPropTypes = PropTypes.oneOf([\n LabelLayout.horizontal,\n LabelLayout.vertical,\n LabelLayout.placeholder,\n LabelLayout.float,\n LabelLayout.none,\n]);\nlet Form = class Form extends DataSetComponent {\n constructor(props, context) {\n super(props, context);\n this.fields = [];\n this.name = NameGen.next().value;\n this.validating = false;\n this.prepareForReport = {};\n runInAction(() => {\n this.responsiveItems = [];\n });\n }\n get axios() {\n return this.observableProps.axios || getConfig('axios') || axios;\n }\n get dataSet() {\n const { record } = this;\n if (record) {\n return record.dataSet;\n }\n const { observableProps } = this;\n if ('dataSet' in observableProps) {\n return observableProps.dataSet;\n }\n return observableProps.contextDataSet;\n }\n get record() {\n const { observableProps } = this;\n if ('record' in observableProps) {\n return observableProps.record;\n }\n const { dataSet, dataIndex } = observableProps;\n if (dataSet) {\n if (isNumber(dataIndex)) {\n return dataSet.get(dataIndex);\n }\n return dataSet.current;\n }\n if (isNumber(dataIndex)) {\n const { contextDataSet } = observableProps;\n if (contextDataSet) {\n return contextDataSet.get(dataIndex);\n }\n }\n return observableProps.contextRecord;\n }\n get dataIndex() {\n const { dataIndex, contextDataIndex } = this.observableProps;\n return defaultTo(dataIndex, contextDataIndex);\n }\n get useColon() {\n const { useColon } = this.observableProps;\n if (useColon !== undefined) {\n return useColon;\n }\n const configUseColon = getConfig('useColon');\n if (configUseColon !== undefined) {\n return configUseColon;\n }\n return false;\n }\n get excludeUseColonTagList() {\n const { excludeUseColonTagList } = this.observableProps;\n if (excludeUseColonTagList !== undefined) {\n return excludeUseColonTagList;\n }\n const configExcludeUseColonTagList = getConfig('excludeUseColonTagList');\n if (configExcludeUseColonTagList !== undefined) {\n return configExcludeUseColonTagList;\n }\n return defaultExcludeUseColonTag;\n }\n get columns() {\n const { columns } = this.observableProps;\n if (isNumber(columns)) {\n return columns;\n }\n if (columns) {\n const responsiveColumns = this.responsiveItems[0];\n if (responsiveColumns) {\n return responsiveColumns;\n }\n }\n return defaultColumns;\n }\n get labelWidth() {\n const { labelWidth } = this.observableProps;\n if (labelWidth === 'auto') {\n return labelWidth;\n }\n if (isNumber(labelWidth) || (isArrayLike(labelWidth) && !hasBreakPointMap(labelWidth))) {\n return labelWidth;\n }\n if (labelWidth) {\n const responsiveWidth = this.responsiveItems[1];\n if (responsiveWidth !== undefined) {\n return responsiveWidth;\n }\n }\n return defaultLabelWidth;\n }\n get labelAlign() {\n const { labelAlign } = this.observableProps;\n const defaultLabelAlign = this.labelLayout === LabelLayout.vertical ? LabelAlign.left : LabelAlign.right;\n if (isString(labelAlign)) {\n return labelAlign;\n }\n if (labelAlign) {\n const responsiveAlign = this.responsiveItems[2];\n if (responsiveAlign) {\n return responsiveAlign;\n }\n }\n return defaultLabelAlign;\n }\n get labelLayout() {\n const { labelLayout } = this.observableProps;\n if (isString(labelLayout)) {\n return labelLayout;\n }\n if (labelLayout) {\n const responsiveLabelLayout = this.responsiveItems[3];\n if (responsiveLabelLayout) {\n return responsiveLabelLayout;\n }\n }\n return getConfig('labelLayout') || LabelLayout.horizontal;\n }\n get labelTooltip() {\n const { labelTooltip } = this.observableProps;\n if (labelTooltip) {\n return labelTooltip;\n }\n return getTooltip('label');\n }\n get readOnly() {\n return this.observableProps.readOnly;\n }\n get pristine() {\n return this.observableProps.pristine;\n }\n get fieldHighlightRenderer() {\n return this.observableProps.fieldHighlightRenderer;\n }\n get showValidation() {\n return this.observableProps.showValidation;\n }\n get separateSpacing() {\n const { separateSpacing } = this.observableProps;\n if (separateSpacing) {\n const { width = 0, height = 0 } = separateSpacing;\n if (width || height) {\n return {\n width,\n height,\n };\n }\n }\n return undefined;\n }\n isReadOnly() {\n return this.readOnly;\n }\n getObservableProps(props, context) {\n const observableProps = {\n ...super.getObservableProps(props, context),\n contextDataSet: context.dataSet,\n contextRecord: context.record,\n dataIndex: props.dataIndex,\n contextDataIndex: context.dataIndex,\n labelLayout: 'labelLayout' in props ? props.labelLayout : context.labelLayout,\n labelAlign: 'labelAlign' in props ? props.labelAlign : context.labelAlign,\n showValidation: 'showValidation' in props ? props.showValidation : context.showValidation,\n labelTooltip: 'labelTooltip' in props ? props.labelTooltip : context.labelTooltip,\n disabled: 'disabled' in props ? props.disabled : context.disabled,\n readOnly: 'readOnly' in props ? props.readOnly : context.readOnly,\n labelWidth: defaultTo(props.labelWidth, context.labelWidth),\n pristine: 'pristine' in props ? props.pristine : context.pristine,\n columns: props.columns,\n useColon: props.useColon,\n excludeUseColonTagList: props.excludeUseColonTagList,\n separateSpacing: props.separateSpacing,\n fieldHighlightRenderer: 'fieldHighlightRenderer' in props ? props.fieldHighlightRenderer : context.fieldHighlightRenderer,\n };\n if ('record' in props) {\n observableProps.record = props.record;\n }\n return observableProps;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'record',\n 'dataIndex',\n 'onSuccess',\n 'onError',\n 'processParams',\n 'labelWidth',\n 'labelAlign',\n 'labelLayout',\n 'labelTooltip',\n 'columns',\n 'pristine',\n 'axios',\n 'useColon',\n 'excludeUseColonTagList',\n 'separateSpacing',\n 'fieldHighlightRenderer',\n 'layout',\n 'showValidation',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onSubmit = this.handleSubmit;\n otherProps.onReset = this.handleReset;\n if (!otherProps.name) {\n otherProps.name = this.name;\n }\n return otherProps;\n }\n getHeader() {\n const { props: { header }, prefixCls, } = this;\n if (header) {\n return (React.createElement(\"div\", { key: \"form-header\", className: `${prefixCls}-header` }, header));\n }\n }\n getClassName(...props) {\n const { prefixCls, labelLayout } = this;\n return super.getClassName({\n ...props,\n [`${prefixCls}-float-label`]: labelLayout === LabelLayout.float,\n });\n }\n componentWillMount() {\n this.processDataSetListener(true);\n }\n componentDidMount() {\n this.componentDidMountOrUpdate();\n super.componentDidMount();\n }\n componentDidUpdate() {\n this.componentDidMountOrUpdate();\n }\n componentWillUnmount() {\n this.processDataSetListener(false);\n }\n componentDidMountOrUpdate() {\n const { formNode } = this.context;\n const { element } = this;\n if (formNode && element) {\n const isUnderForm = hasParentElement(element.parentElement, 'form');\n if (isUnderForm !== this.isUnderForm) {\n this.isUnderForm = isUnderForm;\n }\n }\n }\n processDataSetListener(flag) {\n const { dataSet } = this;\n if (dataSet) {\n const handler = flag ? dataSet.addEventListener : dataSet.removeEventListener;\n handler.call(dataSet, DataSetEvents.validate, this.handleDataSetValidate);\n }\n }\n // 处理校验失败定位\n async handleDataSetValidate({ result, dataSet }) {\n if (!await result) {\n const [firstInvalidRecord] = dataSet.getValidationErrors();\n if (firstInvalidRecord) {\n const { errors } = firstInvalidRecord;\n if (errors.length) {\n const [{ field: { name } }] = errors;\n const field = this.getFields().find(item => item.props.name === name);\n if (field) {\n field.focus();\n }\n }\n }\n }\n }\n rasterizedChildren() {\n const { dataSet, record, columns, labelLayout, labelAlign, labelTooltip, useColon, excludeUseColonTagList, readOnly: formReadOnly, props: { children }, } = this;\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\n const labelWidth = normalizeLabelWidth(this.labelWidth, columns);\n const rows = [];\n let cols = [];\n let rowIndex = 0;\n let colIndex = 0;\n const matrix = [[]];\n let noLabel = true;\n const childrenArray = [];\n const separateSpacingWidth = this.separateSpacing ? this.separateSpacing.width / 2 : 0;\n Children.forEach(children, (child) => {\n if (isValidElement(child)) {\n const setChild = (arr, outChild, groupProps = {}) => {\n const { type, props: outChildProps } = outChild;\n if (outChildProps.hidden)\n return null;\n if (type) {\n if (noLabel === true &&\n labelLayout === LabelLayout.horizontal &&\n getProperty(outChildProps, 'label', dataSet, record)) {\n noLabel = false;\n }\n const { children: outChildChildren, ...otherOutChildProps } = outChildProps;\n const isFragmentElement = isFragment(outChild);\n if (isFragmentElement || type.__PRO_FORM_VIRTUAL_GROUP) {\n Children.forEach(outChildChildren, (c) => {\n if (isValidElement(c)) {\n setChild(arr, c, isFragmentElement ? groupProps : { ...groupProps, ...otherOutChildProps });\n }\n });\n }\n else {\n arr.push(cloneElement(outChild, {\n ...groupProps,\n ...outChildProps,\n }));\n }\n }\n };\n setChild(childrenArray, child);\n }\n });\n function completeLine() {\n if (cols.length) {\n rows.push((React.createElement(\"tr\", { key: `row-${rowIndex}` }, cols)));\n cols = [];\n }\n rowIndex++;\n colIndex = 0;\n matrix[rowIndex] = matrix[rowIndex] || [];\n }\n for (let index = 0, len = childrenArray.length; index < len;) {\n const { props, key, type, ref } = childrenArray[index];\n const TagName = isFunction(type) ? type.displayName : type;\n const label = getProperty(props, 'label', dataSet, record);\n const fieldLabelWidth = getProperty(props, 'labelWidth', dataSet, record);\n const required = getProperty(props, 'required', dataSet, record);\n const readOnly = getProperty(props, 'readOnly', dataSet, record) || formReadOnly;\n const { rowSpan = 1, colSpan = 1, newLine, className, fieldClassName, useColon: fieldUseColon = useColon, ...otherProps } = props;\n let newColSpan = colSpan;\n const currentRow = matrix[rowIndex];\n if (newLine) {\n if (colIndex !== 0) {\n completeLine();\n continue;\n }\n }\n while (currentRow[colIndex]) {\n colIndex++;\n }\n if (colIndex >= columns) {\n completeLine();\n continue;\n }\n if (newColSpan + colIndex > columns) {\n newColSpan = columns - colIndex;\n }\n for (let i = colIndex, k = colIndex + newColSpan; i < k; i++) {\n if (currentRow[i]) {\n newColSpan = i - colIndex;\n break;\n }\n }\n for (let i = rowIndex; i < rowSpan + rowIndex; i++) {\n for (let j = colIndex, k = newColSpan + colIndex; j < k; j++) {\n if (!matrix[i]) {\n matrix[i] = [];\n }\n matrix[i][j] = true;\n }\n }\n const isOutput = labelLayout === LabelLayout.horizontal && type.displayName === 'Output';\n const labelClassName = classNames(`${prefixCls}-label`, `${prefixCls}-label-${labelAlign}`, fieldClassName, {\n [`${prefixCls}-required`]: required,\n [`${prefixCls}-readonly`]: readOnly,\n [`${prefixCls}-label-vertical`]: labelLayout === LabelLayout.vertical,\n [`${prefixCls}-label-output`]: isOutput,\n [`${prefixCls}-label-useColon`]: label && fieldUseColon && !excludeUseColonTagList.find(v => v === TagName),\n });\n const wrapperClassName = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-output`]: isOutput,\n });\n if (!noLabel && !type.__PRO_FORM_ITEM) {\n const columnLabelWidth = labelWidth[colIndex];\n if (!isNaN(fieldLabelWidth) && columnLabelWidth !== 'auto') {\n labelWidth[colIndex] = Math.max(columnLabelWidth, fieldLabelWidth);\n }\n const tooltip = 'labelTooltip' in props ? props.labelTooltip : labelTooltip;\n cols.push(React.createElement(FormItemLabel, { key: `row-${rowIndex}-col-${colIndex}-label`, className: labelClassName, rowSpan: rowSpan, paddingLeft: this.labelLayout === LabelLayout.horizontal && separateSpacingWidth ? pxToRem(separateSpacingWidth + 5) : undefined, tooltip: tooltip }, label));\n }\n const fieldElementProps = {\n ref,\n key,\n className: classNames(prefixCls, className),\n ...otherProps,\n };\n if (!isString(type)) {\n fieldElementProps.rowIndex = rowIndex;\n fieldElementProps.colIndex = colIndex;\n }\n cols.push(React.createElement(\"td\", { key: `row-${rowIndex}-col-${colIndex}-field`, colSpan: noLabel ? newColSpan : newColSpan * 2 - (type.__PRO_FORM_ITEM ? 0 : 1), rowSpan: rowSpan, className: fieldClassName, style: this.labelLayout === LabelLayout.horizontal\n && separateSpacingWidth\n ? { paddingRight: pxToRem(separateSpacingWidth + 5) } : undefined },\n labelLayout === LabelLayout.vertical && !!label && (React.createElement(\"label\", { className: labelClassName }, label)),\n React.createElement(\"div\", { className: wrapperClassName }, createElement(type, fieldElementProps))));\n if (index === len - 1) {\n completeLine();\n }\n else {\n colIndex++;\n }\n index++;\n }\n cols = [];\n const isAutoWidth = !noLabel && labelWidth.some(w => w === 'auto');\n if (!noLabel) {\n for (let i = 0; i < columns; i++) {\n const key = `label-${i}`;\n const columnLabelWidth = labelWidth[i % columns];\n if (columnLabelWidth === 'auto') {\n cols.push(React.createElement(\"col\", { key: key }));\n }\n else {\n cols.push(React.createElement(\"col\", { key: key, \n // 优化当使用separateSoacing label宽度太窄问题\n style: { width: pxToRem(labelLayout === LabelLayout.horizontal ? separateSpacingWidth + columnLabelWidth : columnLabelWidth) } }));\n }\n cols.push(React.createElement(\"col\", { key: `wrapper-${i}`, style: isAutoWidth ? { width: `${100 / columns}%` } : undefined }));\n }\n }\n else {\n for (let i = 0; i < columns; i++) {\n cols.push(React.createElement(\"col\", { key: `wrapper-${i}` }));\n }\n }\n let tableStyle;\n const { separateSpacing } = this;\n if (separateSpacing) {\n if (labelLayout === LabelLayout.horizontal) {\n tableStyle = {\n borderCollapse: 'separate',\n borderSpacing: `0rem ${pxToRem(separateSpacing.height)}`,\n };\n }\n else {\n tableStyle = {\n borderCollapse: 'separate',\n borderSpacing: `${pxToRem(separateSpacing.width)} ${pxToRem(separateSpacing.height)}`,\n };\n }\n }\n return (React.createElement(\"table\", { key: \"form-body\", style: tableStyle, className: `${isAutoWidth ? 'auto-width' : ''}` },\n cols.length ? React.createElement(\"colgroup\", null, cols) : undefined,\n React.createElement(\"tbody\", null, rows)));\n }\n render() {\n const { labelWidth, labelAlign, labelLayout, labelTooltip, pristine, dataSet, record, dataIndex, observableProps, disabled, readOnly, fieldHighlightRenderer, props, useColon, showValidation, } = this;\n const { formNode } = this.context;\n const value = {\n formNode: formNode || this,\n dataSet,\n dataIndex,\n record,\n labelWidth,\n labelAlign,\n labelLayout,\n labelTooltip,\n pristine,\n disabled,\n readOnly,\n fieldHighlightRenderer,\n useColon,\n showValidation,\n };\n const children = [\n this.getHeader(),\n props.layout === FormLayout.table ? this.rasterizedChildren() : props.children,\n ];\n return (React.createElement(Responsive, { items: [\n observableProps.columns,\n observableProps.labelWidth,\n observableProps.labelAlign,\n observableProps.labelLayout,\n ], onChange: this.handleResponsive },\n React.createElement(FormContext.Provider, { value: value }, this.isUnderForm ? children :\n formNode && this.isUnderForm === undefined ? (React.createElement(\"div\", Object.assign({}, this.getMergedProps()), children)) : (React.createElement(\"form\", Object.assign({}, this.getMergedProps(), { noValidate: true }), children)))));\n }\n handleResponsive(items) {\n this.responsiveItems = items;\n }\n async handleSubmit(e) {\n e.preventDefault();\n e.persist();\n if (await this.checkValidity()) {\n const { target, action, dataSet, method, processParams = noop, onSuccess = noop, onError = noop, onSubmit = noop, } = this.props;\n onSubmit(e);\n try {\n if (dataSet) {\n onSuccess(await dataSet.submit());\n }\n else if (action) {\n if (target && this.element) {\n this.element.submit();\n }\n else {\n onSuccess(await this.axios[method || 'get'](action, processParams(e)));\n }\n }\n }\n catch (error) {\n onError(error);\n }\n }\n }\n handleReset(e) {\n const { onReset = noop } = this.props;\n const { record } = this;\n onReset(e);\n if (!e.isDefaultPrevented()) {\n if (record) {\n record.reset();\n }\n else {\n this.getFields().forEach(field => field.reset());\n }\n }\n }\n reportValidity(result) {\n const { prepareForReport } = this;\n if (!result) {\n prepareForReport.result = result;\n }\n if (prepareForReport.timeout) {\n window.clearTimeout(prepareForReport.timeout);\n }\n prepareForReport.timeout = window.setTimeout(() => {\n if (!prepareForReport.result) {\n const field = this.getFields().find(one => !one.isValid);\n if (field) {\n field.focus();\n }\n }\n this.prepareForReport = {};\n }, 200);\n }\n checkValidity() {\n const { dataSet } = this;\n if (dataSet) {\n if (!dataSet.length) {\n dataSet.create();\n }\n return dataSet.validate();\n }\n this.validating = true;\n return Promise.all(this.getFields().map(field => field.checkValidity())).then((results) => {\n const valid = results.every(result => result);\n this.reportValidity(valid);\n this.validating = false;\n return valid;\n }).catch((error) => {\n this.validating = false;\n throw error;\n });\n }\n getFields() {\n const { id } = this.props;\n if (id) {\n return [].concat(this.fields, getFieldsById(id));\n }\n return this.fields;\n }\n getField(name) {\n return this.getFields().find(field => field.props.name === name);\n }\n addField(field) {\n this.fields.push(field);\n }\n removeField(field) {\n const index = this.fields.indexOf(field);\n if (index !== -1) {\n this.fields.splice(index, 1);\n }\n }\n};\nForm.displayName = 'Form';\nForm.FormVirtualGroup = FormVirtualGroup;\nForm.Item = Item;\nForm.propTypes = {\n /**\n * 表单提交请求地址\n */\n action: PropTypes.string,\n /**\n * 表单提交的HTTP Method\n * 可选值:POST | GET\n * @default POST\n */\n method: PropTypes.string,\n /**\n * 表单提交的目标\n * 当表单设置了设置target且没有dataSet时作浏览器默认提交,否则作Ajax提交\n */\n target: PropTypes.string,\n /**\n * Ajax提交时的参数回调\n */\n processParams: PropTypes.func,\n /**\n * 只读\n */\n readOnly: PropTypes.bool,\n /**\n * 内部控件的标签的宽度\n */\n labelWidth: PropTypes.oneOfType([\n labelWidthPropTypes,\n PropTypes.shape({\n [ResponsiveKeys.xs]: labelWidthPropTypes,\n [ResponsiveKeys.sm]: labelWidthPropTypes,\n [ResponsiveKeys.md]: labelWidthPropTypes,\n [ResponsiveKeys.lg]: labelWidthPropTypes,\n [ResponsiveKeys.xl]: labelWidthPropTypes,\n [ResponsiveKeys.xxl]: labelWidthPropTypes,\n }),\n ]),\n useColon: PropTypes.bool,\n excludeUseColonTagList: PropTypes.array,\n /**\n * 标签文字对齐方式\n * 可选值: 'left' | 'center' | 'right'\n */\n labelAlign: PropTypes.oneOfType([\n labelAlignPropTypes,\n PropTypes.shape({\n [ResponsiveKeys.xs]: labelAlignPropTypes,\n [ResponsiveKeys.sm]: labelAlignPropTypes,\n [ResponsiveKeys.md]: labelAlignPropTypes,\n [ResponsiveKeys.lg]: labelAlignPropTypes,\n [ResponsiveKeys.xl]: labelAlignPropTypes,\n [ResponsiveKeys.xxl]: labelAlignPropTypes,\n }),\n ]),\n /**\n * 标签位置\n * 可选值: 'horizontal' | 'vertical' | 'placeholder' | 'float' | 'none'\n */\n labelLayout: PropTypes.oneOfType([\n labelLayoutPropTypes,\n PropTypes.shape({\n [ResponsiveKeys.xs]: labelLayoutPropTypes,\n [ResponsiveKeys.sm]: labelLayoutPropTypes,\n [ResponsiveKeys.md]: labelLayoutPropTypes,\n [ResponsiveKeys.lg]: labelLayoutPropTypes,\n [ResponsiveKeys.xl]: labelLayoutPropTypes,\n [ResponsiveKeys.xxl]: labelLayoutPropTypes,\n }),\n ]),\n /**\n * 表单列数\n */\n columns: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n [ResponsiveKeys.xs]: PropTypes.number,\n [ResponsiveKeys.sm]: PropTypes.number,\n [ResponsiveKeys.md]: PropTypes.number,\n [ResponsiveKeys.lg]: PropTypes.number,\n [ResponsiveKeys.xl]: PropTypes.number,\n [ResponsiveKeys.xxl]: PropTypes.number,\n }),\n ]),\n pristine: PropTypes.bool,\n /**\n * 表单头\n */\n header: PropTypes.string,\n /**\n * 高亮渲染器\n */\n fieldHighlightRenderer: PropTypes.func,\n /**\n * 提交回调\n */\n onSubmit: PropTypes.func,\n /**\n * 重置回调\n */\n onReset: PropTypes.func,\n /**\n * 提交成功回调\n */\n onSuccess: PropTypes.func,\n /**\n * 提交失败回调\n */\n onError: PropTypes.func,\n separateSpacing: PropTypes.object,\n /**\n * 校验信息提示方式\n */\n showValidation: PropTypes.string,\n ...DataSetComponent.propTypes,\n};\nForm.defaultProps = {\n suffixCls: 'form',\n columns: defaultColumns,\n labelWidth: defaultLabelWidth,\n layout: FormLayout.table,\n};\nForm.contextType = FormContext;\n__decorate([\n observable\n], Form.prototype, \"responsiveItems\", void 0);\n__decorate([\n observable\n], Form.prototype, \"isUnderForm\", void 0);\n__decorate([\n computed\n], Form.prototype, \"axios\", null);\n__decorate([\n computed\n], Form.prototype, \"dataSet\", null);\n__decorate([\n computed\n], Form.prototype, \"record\", null);\n__decorate([\n computed\n], Form.prototype, \"dataIndex\", null);\n__decorate([\n computed\n], Form.prototype, \"useColon\", null);\n__decorate([\n computed\n], Form.prototype, \"excludeUseColonTagList\", null);\n__decorate([\n computed\n], Form.prototype, \"columns\", null);\n__decorate([\n computed\n], Form.prototype, \"labelWidth\", null);\n__decorate([\n computed\n], Form.prototype, \"labelAlign\", null);\n__decorate([\n computed\n], Form.prototype, \"labelLayout\", null);\n__decorate([\n computed\n], Form.prototype, \"labelTooltip\", null);\n__decorate([\n computed\n], Form.prototype, \"readOnly\", null);\n__decorate([\n computed\n], Form.prototype, \"pristine\", null);\n__decorate([\n computed\n], Form.prototype, \"fieldHighlightRenderer\", null);\n__decorate([\n computed\n], Form.prototype, \"showValidation\", null);\n__decorate([\n computed\n], Form.prototype, \"separateSpacing\", null);\n__decorate([\n mobxAction\n], Form.prototype, \"componentDidMountOrUpdate\", null);\n__decorate([\n autobind\n], Form.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind,\n mobxAction\n], Form.prototype, \"handleResponsive\", null);\n__decorate([\n autobind\n], Form.prototype, \"handleSubmit\", null);\n__decorate([\n autobind\n], Form.prototype, \"handleReset\", null);\nForm = __decorate([\n observer\n], Form);\nexport default Form;\n","import React from 'react';\nexport default React.createContext({});\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport isString from 'lodash/isString';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { Tooltip as LabelTooltip } from '../core/enum';\nimport isOverflow from '../overflow-tip/util';\nimport { hide, show } from '../tooltip/singleton';\nconst FormItemLabel = (props) => {\n const { className, rowSpan, paddingLeft, tooltip, children } = props;\n const tooltipRef = useRef(false);\n const style = useMemo(() => paddingLeft ? { paddingLeft } : undefined, [paddingLeft]);\n const handleMouseEnter = useCallback((e) => {\n const { currentTarget } = e;\n if (tooltip === LabelTooltip.always || (tooltip === LabelTooltip.overflow && isOverflow(currentTarget))) {\n show(currentTarget, {\n title: children,\n theme: getTooltipTheme('label'),\n });\n tooltipRef.current = true;\n }\n }, [tooltip, children, tooltipRef]);\n const handleMouseLeave = useCallback(() => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n useEffect(() => () => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n return (React.createElement(\"td\", { className: className, rowSpan: rowSpan, style: style, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },\n React.createElement(\"label\", { title: isString(children) && ![LabelTooltip.always, LabelTooltip.overflow].includes(tooltip) ? children : undefined },\n React.createElement(\"span\", null, children))));\n};\nFormItemLabel.displayName = 'FormItemLabel';\nexport default FormItemLabel;\n","import { Children, cloneElement, isValidElement, PureComponent } from 'react';\nexport default class FormVirtualGroup extends PureComponent {\n render() {\n const { children, ...otherProps } = this.props;\n if (children) {\n return Children.map(children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child, otherProps);\n }\n return child;\n });\n }\n return null;\n }\n}\nFormVirtualGroup.displayName = 'FormVirtualGroup';\nFormVirtualGroup.__PRO_FORM_VIRTUAL_GROUP = true;\n","import React, { Children, cloneElement, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react-lite';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport FormContext from './FormContext';\nimport { defaultLabelWidth, FIELD_SUFFIX, getProperty, normalizeLabelWidth } from './utils';\nimport { LabelLayout } from './enum';\nimport Row from '../row';\nimport Col from '../col';\nimport { Tooltip as LabelTooltip } from '../core/enum';\nimport { hide, show } from '../tooltip/singleton';\nimport isOverflow from '../overflow-tip/util';\nconst Label = (props) => {\n const { children, className, tooltip, width } = props;\n const tooltipRef = useRef(false);\n const style = useMemo(() => width ? ({ width }) : undefined, [width]);\n const handleMouseEnter = useCallback((e) => {\n const { currentTarget } = e;\n if (tooltip === LabelTooltip.always || (tooltip === LabelTooltip.overflow && isOverflow(currentTarget))) {\n show(currentTarget, {\n title: children,\n theme: getTooltipTheme('label'),\n });\n tooltipRef.current = true;\n }\n }, [children, tooltip, tooltipRef]);\n const handleMouseLeave = useCallback(() => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n useEffect(() => () => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n return (React.createElement(\"label\", { className: className, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, style: style }, children));\n};\nLabel.displayName = 'Label';\nconst Item = observer((props) => {\n const { dataSet, record, labelLayout = getConfig('labelLayout'), labelAlign, labelWidth: contextLabelWidth = defaultLabelWidth, labelTooltip, useColon } = useContext(FormContext);\n const { children, useColon: fieldUseColon = useColon, ...rest } = props;\n const child = Children.only(children);\n if (isValidElement(child)) {\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\n const { props: childrenProps } = child;\n const { className, fieldClassName, ...otherProps } = childrenProps;\n const fieldProps = { ...rest, ...otherProps };\n const fieldElementProps = {\n className: classNames(props.className, className, prefixCls),\n ...fieldProps,\n };\n if ([LabelLayout.none, LabelLayout.float, LabelLayout.placeholder].includes(labelLayout)) {\n return (React.createElement(\"div\", { className: `${prefixCls}-wrapper` }, cloneElement(child, fieldElementProps)));\n }\n const label = getProperty(fieldProps, 'label', dataSet, record);\n const required = getProperty(fieldProps, 'required', dataSet, record);\n const readOnly = getProperty(fieldProps, 'readOnly', dataSet, record);\n const isOutput = labelLayout === LabelLayout.horizontal && child.type.displayName === 'Output';\n const labelClassName = classNames(`${prefixCls}-label`, `${prefixCls}-label-${labelAlign}`, fieldClassName, {\n [`${prefixCls}-required`]: required,\n [`${prefixCls}-readonly`]: readOnly,\n [`${prefixCls}-label-vertical`]: labelLayout === LabelLayout.vertical,\n [`${prefixCls}-label-output`]: isOutput,\n [`${prefixCls}-label-useColon`]: label && fieldUseColon,\n });\n const wrapperClassName = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-output`]: isOutput,\n });\n const tooltip = props.labelTooltip || labelTooltip;\n if (labelLayout === LabelLayout.vertical) {\n return (React.createElement(React.Fragment, null,\n React.createElement(Label, { className: labelClassName, tooltip: tooltip }, label),\n React.createElement(\"div\", { className: wrapperClassName }, cloneElement(child, fieldElementProps))));\n }\n const fieldLabelWidth = getProperty(fieldProps, 'labelWidth', dataSet, record);\n const columnLabelWidth = normalizeLabelWidth(contextLabelWidth, 1)[0];\n const labelWidth = columnLabelWidth === 'auto' ? undefined : Math.max(columnLabelWidth, isNaN(fieldLabelWidth) ? 0 : fieldLabelWidth);\n return (React.createElement(Row, { className: `${prefixCls}-row` },\n React.createElement(Col, { className: `${prefixCls}-col` },\n React.createElement(Label, { className: labelClassName, width: labelWidth, tooltip: tooltip }, label)),\n React.createElement(Col, { className: `${prefixCls}-col ${prefixCls}-col-control` },\n React.createElement(\"div\", { className: wrapperClassName }, cloneElement(child, fieldElementProps)))));\n }\n if (child) {\n return child;\n }\n return null;\n});\nItem.displayName = 'FormItem';\nItem.__PRO_FORM_ITEM = true;\nexport default Item;\n","export var LabelAlign;\n(function (LabelAlign) {\n LabelAlign[\"left\"] = \"left\";\n LabelAlign[\"center\"] = \"center\";\n LabelAlign[\"right\"] = \"right\";\n})(LabelAlign || (LabelAlign = {}));\nexport var LabelLayout;\n(function (LabelLayout) {\n LabelLayout[\"horizontal\"] = \"horizontal\";\n LabelLayout[\"vertical\"] = \"vertical\";\n LabelLayout[\"placeholder\"] = \"placeholder\";\n LabelLayout[\"float\"] = \"float\";\n LabelLayout[\"none\"] = \"none\";\n})(LabelLayout || (LabelLayout = {}));\nexport var FormLayout;\n(function (FormLayout) {\n FormLayout[\"table\"] = \"table\";\n FormLayout[\"none\"] = \"none\";\n})(FormLayout || (FormLayout = {}));\nexport var ResponsiveKeys;\n(function (ResponsiveKeys) {\n ResponsiveKeys[\"xs\"] = \"xs\";\n ResponsiveKeys[\"sm\"] = \"sm\";\n ResponsiveKeys[\"md\"] = \"md\";\n ResponsiveKeys[\"lg\"] = \"lg\";\n ResponsiveKeys[\"xl\"] = \"xl\";\n ResponsiveKeys[\"xxl\"] = \"xxl\";\n})(ResponsiveKeys || (ResponsiveKeys = {}));\nexport var ShowValidation;\n(function (ShowValidation) {\n ShowValidation[\"tooltip\"] = \"tooltip\";\n ShowValidation[\"newLine\"] = \"newLine\";\n})(ShowValidation || (ShowValidation = {}));\n","import Form from './Form';\nexport default Form;\n","export { LabelAlign, LabelLayout, FormLayout, ResponsiveKeys, ShowValidation, } from './enum';\nexport { LabelWidth, LabelWidthType, LabelAlignType, LabelLayoutType, ColumnsType, SeparateSpacing, FormProps, } from './Form';\nexport { FormContextValue, } from './FormContext';\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import isNumber from 'lodash/isNumber';\nimport { LabelLayout } from './enum';\nexport const defaultLabelWidth = 100;\nexport const defaultLabelLayout = LabelLayout.horizontal;\nexport const defaultColumns = 1;\nexport const FIELD_SUFFIX = 'field';\nexport function normalizeLabelWidth(labelWidth, columns) {\n if (isNumber(labelWidth) || labelWidth === 'auto') {\n return new Array(columns).fill(labelWidth);\n }\n const labelWidths = new Array(columns).fill(defaultLabelWidth);\n labelWidth.slice(0, columns).forEach((width, index) => (labelWidths[index] = width));\n return labelWidths;\n}\nexport function getProperty(props, key, dataSet, record) {\n if (props[key]) {\n return props[key];\n }\n const { name } = props;\n const field = record ? record.getField(name) : dataSet && dataSet.getField(name);\n if (field) {\n const fieldProperty = field.get(key);\n if (fieldProperty) {\n return fieldProperty;\n }\n }\n}\nexport const defaultExcludeUseColonTag = ['div', 'button', 'Button'];\nexport function hasParentElement(parentElement, tagName) {\n while (parentElement) {\n if (parentElement.tagName.toLowerCase() === tagName) {\n return true;\n }\n parentElement = parentElement.parentElement;\n }\n return false;\n}\n","import { getNumberFormatOptions, toLocaleStringPolyfill, toLocaleStringSupportsLocales, } from './utils';\nimport normalizeLanguage from '../_util/normalizeLanguage';\nimport { FieldType } from '../data-set/enum';\nexport default function formatCurrency(value, lang, options) {\n const v = parseFloat(value);\n if (!isNaN(v)) {\n if (toLocaleStringSupportsLocales()) {\n return v.toLocaleString(normalizeLanguage(lang), {\n ...getNumberFormatOptions(FieldType.currency, options),\n ...options,\n });\n }\n return toLocaleStringPolyfill(v, FieldType.currency, options);\n }\n return value;\n}\n","import { FieldType } from '../data-set/enum';\nimport normalizeLanguage from '../_util/normalizeLanguage';\nimport { getNumberFormatOptions, toLocaleStringPolyfill, toLocaleStringSupportsLocales, } from './utils';\nexport default function formatNumber(value, lang, options) {\n const v = parseFloat(value);\n if (!isNaN(v)) {\n if (toLocaleStringSupportsLocales()) {\n return v.toLocaleString(normalizeLanguage(lang), {\n ...getNumberFormatOptions(FieldType.number, options),\n ...options,\n });\n }\n return toLocaleStringPolyfill(v, FieldType.number, options);\n }\n return value;\n}\n","import React, { isValidElement } from 'react';\nimport format from 'string-template';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport flatMap from 'lodash/flatMap';\nexport function formatReactTemplate(template, map) {\n let result = [template];\n Object.keys(map).forEach(key => {\n const node = map[key];\n if (!isNil(node)) {\n result = flatMap(result, (text) => {\n if (isString(text)) {\n let stringText = text;\n if (isValidElement(node)) {\n const placeholder = `{${key}}`;\n const { length } = placeholder;\n const textArr = [];\n let index = stringText.indexOf(placeholder);\n while (index > -1) {\n if (index > 0) {\n textArr.push(stringText.slice(0, index));\n }\n textArr.push(node);\n stringText = stringText.slice(index + length);\n index = stringText.indexOf(placeholder);\n }\n if (stringText) {\n textArr.push(stringText);\n }\n return textArr;\n }\n return format(text, { [key]: node });\n }\n return text;\n });\n }\n });\n if (result.every(isString)) {\n return result.join('');\n }\n return (React.createElement(React.Fragment, null, result));\n}\nexport default formatReactTemplate;\n","import isString from 'lodash/isString';\nimport { transformString, trimString } from './utils';\nexport default function formatString(value, { trim, format }) {\n if (isString(value)) {\n return transformString(trimString(value, trim), format);\n }\n return value;\n}\n","/**\n * exports\n */\nexport { default as formatString } from './formatString';\nexport { default as formatCurrency } from './formatCurrency';\nexport { default as formatNumber } from './formatNumber';\nexport { default as formatReactTemplate } from './formatReactTemplate';\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n","import capitalize from 'lodash/capitalize';\nimport { FieldFormat, FieldTrim, FieldType } from '../data-set/enum';\nlet supportsLocales;\nexport function toLocaleStringSupportsLocales() {\n if (supportsLocales === undefined) {\n try {\n (0).toLocaleString('i');\n supportsLocales = false;\n }\n catch (e) {\n supportsLocales = e.name === 'RangeError';\n }\n }\n return supportsLocales;\n}\nexport function getNumberFormatOptions(type, options) {\n if (type === FieldType.number) {\n return { style: 'decimal' };\n }\n if (options && options.currency) {\n return { style: 'currency' };\n }\n return { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 };\n}\nexport function toLocaleStringPolyfill(value, type, options) {\n if (type === FieldType.number) {\n const fraction = String(value).split('.')[1];\n return value.toLocaleString().split('.')[0] + (fraction ? `.${fraction}` : '');\n }\n const currency = options && options.currency;\n return `${currency ? `${currency} ` : ''}${value.toLocaleString()}`;\n}\nexport function trimString(value, fieldTrim) {\n if (fieldTrim) {\n switch (fieldTrim) {\n case FieldTrim.both:\n return value.trim();\n case FieldTrim.left:\n return value.trimLeft();\n case FieldTrim.right:\n return value.trimRight();\n default:\n }\n }\n return value;\n}\nexport function transformString(value, format) {\n if (format) {\n switch (format) {\n case FieldFormat.uppercase:\n return value.toUpperCase();\n case FieldFormat.lowercase:\n return value.toLowerCase();\n case FieldFormat.capitalize:\n return capitalize(value);\n default:\n }\n }\n return value;\n}\n","import Row from 'choerodon-ui/lib/grid/row';\nimport Col from 'choerodon-ui/lib/grid/col';\nexport { Row, Col, };\n","import 'choerodon-ui/lib/grid/style';\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\nimport { action, observable } from 'mobx';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport IconItem from './IconItem';\nimport Pagination from '../pagination/Pagination';\nimport autobind from '../_util/autobind';\nlet IconCategory = class IconCategory extends Component {\n constructor(props) {\n super(props);\n this.setPage(props.page);\n }\n saveRef(node) {\n this.ul = node;\n }\n handlePageChange(page) {\n this.setPage(page);\n const { onPageChange, category } = this.props;\n if (onPageChange) {\n onPageChange(page, category);\n }\n }\n handleItemSelect(icon) {\n const { onSelect } = this.props;\n onSelect(icon);\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps.page && nextProps.page !== this.page) {\n this.setPage(nextProps.page);\n }\n }\n componentDidMount() {\n this.syncItemPosition();\n }\n componentDidUpdate() {\n this.syncItemPosition();\n }\n syncItemPosition() {\n const { props: { value, prefixCls }, ul, } = this;\n if (value && ul) {\n const item = ul.querySelector(`li.${prefixCls}-item-selected`);\n if (item) {\n const { offsetHeight, scrollTop } = ul;\n const { offsetTop, offsetHeight: height } = item;\n if (offsetTop < scrollTop) {\n ul.scrollTo(0, offsetTop);\n }\n else if (offsetTop + height > scrollTop + offsetHeight) {\n ul.scrollTo(0, offsetTop + height - offsetHeight);\n }\n }\n }\n }\n setPage(page = 1) {\n this.page = page;\n }\n renderPagination() {\n const { page, props: { paging, pageSize, prefixCls, icons }, } = this;\n const total = icons.length;\n if (paging && total > pageSize) {\n return (React.createElement(Pagination, { key: \"page\", className: `${prefixCls}-pagination`, total: total, page: page, pageSize: pageSize, showSizeChanger: false, onChange: this.handlePageChange, style: { right: pxToRem(measureScrollbar()) } }));\n }\n }\n renderIcons() {\n const { value, prefixCls, customFontName } = this.props;\n return this.getIcons().map(icon => (React.createElement(IconItem, { key: icon, customFontName: customFontName, prefixCls: prefixCls, type: icon, onSelect: this.handleItemSelect, active: value === icon })));\n }\n getIcons() {\n const { page, props: { paging, pageSize, icons }, } = this;\n if (paging && icons.length > pageSize) {\n return icons.slice((page - 1) * pageSize, page * pageSize);\n }\n return icons;\n }\n render() {\n const { props: { prefixCls }, } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-category` },\n this.renderPagination(),\n React.createElement(\"ul\", { key: \"icon-items\", ref: this.saveRef }, this.renderIcons())));\n }\n};\nIconCategory.displayName = 'IconCategory';\nIconCategory.propTypes = {\n prefixCls: PropTypes.string,\n icons: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.string).isRequired,\n value: PropTypes.string,\n onSelect: PropTypes.func.isRequired,\n onPageChange: PropTypes.func,\n pageSize: PropTypes.number,\n page: PropTypes.number,\n paging: PropTypes.bool,\n customFontName: PropTypes.string,\n};\nIconCategory.defaultProps = {\n paging: true,\n};\n__decorate([\n observable\n], IconCategory.prototype, \"page\", void 0);\n__decorate([\n autobind\n], IconCategory.prototype, \"saveRef\", null);\n__decorate([\n autobind\n], IconCategory.prototype, \"handlePageChange\", null);\n__decorate([\n autobind\n], IconCategory.prototype, \"handleItemSelect\", null);\n__decorate([\n action\n], IconCategory.prototype, \"setPage\", null);\nIconCategory = __decorate([\n observer\n], IconCategory);\nexport default IconCategory;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nexport default class IconItem extends PureComponent {\n constructor() {\n super(...arguments);\n this.handleClick = () => {\n const { onSelect, type } = this.props;\n onSelect(type);\n };\n }\n render() {\n const { prefixCls, type, active, customFontName } = this.props;\n return (React.createElement(\"li\", { className: classNames({ [`${prefixCls}-item-selected`]: active }) },\n React.createElement(\"div\", { onClick: this.handleClick },\n React.createElement(Icon, { customFontName: customFontName, type: type }),\n React.createElement(\"p\", null, type))));\n }\n}\nIconItem.displayName = 'IconItem';\nIconItem.propTypes = {\n prefixCls: PropTypes.string,\n active: PropTypes.bool.isRequired,\n type: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired,\n customFontName: PropTypes.string,\n};\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport flatten from 'lodash/flatten';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport TriggerField from '../trigger-field/TriggerField';\nimport Icon from '../icon';\nimport Tabs from '../tabs';\nimport { $l } from '../locale-context';\nimport IconCategory from './IconCategory';\nimport autobind from '../_util/autobind';\nimport { preventDefault, stopEvent } from '../_util/EventManager';\nconst COLUMNS = 5;\nlet IconPicker = class IconPicker extends TriggerField {\n constructor(props, context) {\n super(props, context);\n runInAction(() => {\n this.categoryPages = {};\n this.activeCategory = this.categoryKeys[0];\n });\n }\n get categories() {\n const { icons: propsIcon } = this.props;\n const icons = propsIcon || getConfig('icons');\n return isArrayLike(icons) ? { default: icons } : icons;\n }\n get categoryKeys() {\n return Object.keys(this.categories);\n }\n get selectedIndex() {\n return this.categories[this.activeCategory].indexOf(this.selectedIcon);\n }\n get filteredIcons() {\n const { text, categories } = this;\n if (text) {\n return flatten(this.categoryKeys.map(category => categories[category].filter(icon => icon.startsWith(text))));\n }\n return [];\n }\n get selectedIcon() {\n const { categories } = this;\n return this.selected || this.getValue() || categories[this.activeCategory][0];\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'pageSize',\n 'customFontName',\n 'icons',\n ]);\n }\n setActiveCategory(category) {\n this.activeCategory = category;\n const page = this.categoryPages[category];\n this.changeSelected(this.categories[category][(page - 1) * this.props.pageSize]);\n }\n setCategoryPage(page, category) {\n this.categoryPages[category] = page;\n this.changeSelected(this.categories[category][(page - 1) * this.props.pageSize]);\n }\n handleTabsChange(category) {\n this.setActiveCategory(category);\n }\n handleItemSelect(icon) {\n this.choose(icon);\n }\n handlePageChange(page, category) {\n this.setCategoryPage(page, category);\n }\n handleKeyDown(e) {\n if (!this.disabled && !this.readOnly) {\n if (this.popup) {\n switch (e.keyCode) {\n case KeyCode.RIGHT:\n stopEvent(e);\n this.handleKeyDownRight();\n break;\n case KeyCode.LEFT:\n stopEvent(e);\n this.handleKeyDownLeft();\n break;\n case KeyCode.DOWN:\n stopEvent(e);\n this.handleKeyDownDown();\n break;\n case KeyCode.UP:\n stopEvent(e);\n this.handleKeyDownUp();\n break;\n case KeyCode.END:\n stopEvent(e);\n this.handleKeyDownEnd();\n break;\n case KeyCode.HOME:\n stopEvent(e);\n this.handleKeyDownHome();\n break;\n case KeyCode.PAGE_UP:\n stopEvent(e);\n this.handleKeyDownPageUp();\n break;\n case KeyCode.PAGE_DOWN:\n stopEvent(e);\n this.handleKeyDownPageDown();\n break;\n case KeyCode.ENTER:\n e.preventDefault();\n this.handleKeyDownEnter();\n break;\n case KeyCode.TAB:\n this.handleKeyDownTab();\n break;\n case KeyCode.ESC:\n e.preventDefault();\n this.handleKeyDownEsc();\n break;\n default:\n }\n }\n else if (e.keyCode === KeyCode.SPACE) {\n e.preventDefault();\n this.handleKeyDownSpace();\n }\n }\n super.handleKeyDown(e);\n }\n handleKeyDownHome() {\n const { activeCategory, categoryPages, props: { pageSize }, } = this;\n const category = this.categories[activeCategory];\n const page = categoryPages[activeCategory] || 1;\n this.changeSelected(category[(page - 1) * pageSize]);\n }\n handleKeyDownEnd() {\n const { activeCategory, categoryPages, props: { pageSize }, } = this;\n const category = this.categories[activeCategory];\n const page = categoryPages[activeCategory] || 1;\n this.changeSelected(category[page * pageSize - 1] || category[category.length - 1]);\n }\n handleKeyDownLeftOrRight(isLeft) {\n const { activeCategory, selectedIndex, categoryPages, categories, categoryKeys, props: { pageSize }, } = this;\n const step = isLeft ? -1 : 1;\n let category = categories[activeCategory];\n let index = selectedIndex;\n if (index % COLUMNS === (isLeft ? 0 : COLUMNS - 1) ||\n (!isLeft && index === category.length - 1)) {\n const activeCategoryIndex = categoryKeys.indexOf(activeCategory);\n if (activeCategoryIndex !== (isLeft ? 0 : categoryKeys.length - 1)) {\n const newTabIndex = activeCategoryIndex + step;\n const newKey = categoryKeys[newTabIndex];\n this.setActiveCategory(newKey);\n const page = categoryPages[activeCategory] || 1;\n category = categories[newKey];\n const newPage = categoryPages[newKey] || 1;\n index += (newPage - page) * pageSize;\n if (!category[index]) {\n index = isLeft ? category.length - 1 : (newPage - 1) * pageSize;\n }\n }\n }\n else {\n index += step;\n }\n if (category[index]) {\n this.changeSelected(category[index]);\n }\n }\n handleKeyDownUpOrDown(isUP) {\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\n const step = isUP ? -1 : 1;\n const category = this.categories[activeCategory];\n let index = selectedIndex;\n const page = categoryPages[activeCategory] || 1;\n if (isUP\n ? index < (page - 1) * pageSize + COLUMNS && page > 1\n : index > page * pageSize - COLUMNS && page < Math.ceil(category.length / pageSize)) {\n this.setCategoryPage(page + step, activeCategory);\n }\n index += step * COLUMNS;\n if (category[index]) {\n this.changeSelected(category[index]);\n }\n }\n handleKeyDownLeft() {\n this.handleKeyDownLeftOrRight(true);\n }\n handleKeyDownRight() {\n this.handleKeyDownLeftOrRight(false);\n }\n handleKeyDownUp() {\n this.handleKeyDownUpOrDown(true);\n }\n handleKeyDownDown() {\n if (this.popup) {\n this.handleKeyDownUpOrDown(false);\n }\n else {\n this.expand();\n }\n }\n handleKeyDownPageUp() {\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\n const page = categoryPages[activeCategory] || 1;\n const category = this.categories[activeCategory];\n if (page > 1) {\n this.setCategoryPage(page - 1, activeCategory);\n this.changeSelected(category[selectedIndex - pageSize]);\n }\n }\n handleKeyDownPageDown() {\n const { activeCategory, selectedIndex, categoryPages, props: { pageSize }, } = this;\n const page = categoryPages[activeCategory] || 1;\n const category = this.categories[activeCategory];\n if (page < Math.ceil(category.length / pageSize)) {\n this.setCategoryPage(page + 1, activeCategory);\n this.changeSelected(category[selectedIndex + pageSize] || category[category.length - 1]);\n }\n }\n handleKeyDownEnter() {\n this.choose(this.selectedIcon);\n }\n handleKeyDownEsc() {\n this.collapse();\n }\n handleKeyDownTab() {\n this.collapse();\n }\n handleKeyDownSpace() {\n this.expand();\n }\n changeSelected(selected) {\n this.selected = selected;\n }\n choose(icon) {\n this.prepareSetValue(icon);\n this.changeSelected(icon);\n if (!this.multiple) {\n this.collapse();\n }\n }\n syncValueOnBlur(value) {\n if (this.filteredIcons.indexOf(value) !== -1) {\n this.choose(value);\n }\n else {\n this.setText(undefined);\n }\n }\n handlePopupAnimateAppear() {\n }\n handlePopupAnimateEnd() {\n }\n getPopupStyleFromAlign() {\n return undefined;\n }\n getTriggerIconFont() {\n return 'developer_board';\n }\n getPopupContent() {\n const { text } = this;\n if (text) {\n return this.renderFilteredIcons();\n }\n return this.renderIconCategories();\n }\n getPrefix() {\n const { customFontName } = this.props;\n const value = this.getValue();\n if (value) {\n return this.wrapperPrefix(React.createElement(Icon, { customFontName: customFontName, type: value }));\n }\n }\n renderFilteredIcons() {\n const { prefixCls } = this;\n const { customFontName } = this.props;\n return (React.createElement(\"div\", { className: `${prefixCls}-single-tab`, onMouseDown: preventDefault },\n React.createElement(IconCategory, { paging: false, customFontName: customFontName, value: this.selectedIcon, icons: this.filteredIcons, prefixCls: prefixCls, onSelect: this.handleItemSelect })));\n }\n renderIconCategories() {\n const { activeCategory, prefixCls, props: { pageSize, customFontName }, categories, categoryKeys, categoryPages, } = this;\n const { TabPane } = Tabs;\n if (categoryKeys.length > 1) {\n const tabs = categoryKeys.map(category => (React.createElement(TabPane, { key: category, tab: $l('Icon', category), className: `${prefixCls}-tab` },\n React.createElement(IconCategory, { page: categoryPages[category], pageSize: pageSize, category: category, customFontName: customFontName, value: category === activeCategory ? this.selectedIcon : undefined, icons: categories[category], prefixCls: prefixCls, onSelect: this.handleItemSelect, onPageChange: this.handlePageChange }))));\n return (React.createElement(\"div\", { onMouseDown: preventDefault },\n React.createElement(Tabs, { onChange: this.handleTabsChange, activeKey: activeCategory }, tabs)));\n }\n const category = categoryKeys[0];\n return (React.createElement(\"div\", { className: `${prefixCls}-single-tab`, onMouseDown: preventDefault },\n React.createElement(IconCategory, { page: categoryPages[category], pageSize: pageSize, category: category, customFontName: customFontName, value: category === activeCategory ? this.selectedIcon : undefined, icons: categories[category], prefixCls: prefixCls, onSelect: this.handleItemSelect, onPageChange: this.handlePageChange })));\n }\n renderLengthInfo() {\n return undefined;\n }\n};\nIconPicker.displayName = 'IconPicker';\nIconPicker.propTypes = {\n ...TriggerField.propTypes,\n pageSize: PropTypes.number,\n customFontName: PropTypes.string,\n icons: PropTypes.oneOfType([PropTypes.object,\n PropTypes.array,\n ]),\n};\nIconPicker.defaultProps = {\n ...TriggerField.defaultProps,\n suffixCls: 'icon-picker',\n pageSize: 100,\n};\n__decorate([\n observable\n], IconPicker.prototype, \"activeCategory\", void 0);\n__decorate([\n observable\n], IconPicker.prototype, \"selected\", void 0);\n__decorate([\n observable\n], IconPicker.prototype, \"categoryPages\", void 0);\n__decorate([\n computed\n], IconPicker.prototype, \"categories\", null);\n__decorate([\n computed\n], IconPicker.prototype, \"categoryKeys\", null);\n__decorate([\n computed\n], IconPicker.prototype, \"selectedIndex\", null);\n__decorate([\n computed\n], IconPicker.prototype, \"filteredIcons\", null);\n__decorate([\n computed\n], IconPicker.prototype, \"selectedIcon\", null);\n__decorate([\n action\n], IconPicker.prototype, \"setActiveCategory\", null);\n__decorate([\n action\n], IconPicker.prototype, \"setCategoryPage\", null);\n__decorate([\n autobind\n], IconPicker.prototype, \"handleTabsChange\", null);\n__decorate([\n autobind\n], IconPicker.prototype, \"handleItemSelect\", null);\n__decorate([\n autobind\n], IconPicker.prototype, \"handlePageChange\", null);\n__decorate([\n autobind\n], IconPicker.prototype, \"handleKeyDown\", null);\n__decorate([\n action\n], IconPicker.prototype, \"changeSelected\", null);\nIconPicker = __decorate([\n observer\n], IconPicker);\nexport default IconPicker;\n","import IconPicker from './IconPicker';\nexport default IconPicker;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../trigger-field/style';\nimport '../../pagination/style';\nimport '../../tabs/style';\n","import Icon from 'choerodon-ui/lib/icon';\nexport default Icon;\n","import 'choerodon-ui/lib/style';\n","/* @remove-on-es-build-begin */\n// this file is not used if use https://www.npmjs.com/package/babel-plugin-import\nconst ENV = process.env.NODE_ENV;\nif (ENV !== 'production' &&\n ENV !== 'test' &&\n typeof console !== 'undefined' &&\n console.warn &&\n typeof window !== 'undefined') {\n console.warn('You are using a whole package of choerodon-ui/pro, ' +\n 'please use https://www.npmjs.com/package/babel-plugin-import to reduce app bundle size.');\n}\n/* @remove-on-es-build-end */\nexport { default as Axios } from './axios';\nexport { default as DataSet } from './data-set';\nexport { default as Form } from './form';\nexport { default as Table } from './table';\nexport { default as Button } from './button';\nexport { default as CheckBox } from './check-box';\nexport { default as Radio } from './radio';\nexport { default as TextField } from './text-field';\nexport { default as NumberField } from './number-field';\nexport { default as Currency } from './currency';\nexport { default as Password } from './password';\nexport { default as UrlField } from './url-field';\nexport { default as EmailField } from './email-field';\nexport { default as Range } from './range';\nexport { default as TextArea } from './text-area';\nexport { default as DatePicker } from './date-picker';\nexport { default as DateTimePicker } from './date-time-picker';\nexport { default as TimePicker } from './time-picker';\nexport { default as WeekPicker } from './week-picker';\nexport { default as MonthPicker } from './month-picker';\nexport { default as YearPicker } from './year-picker';\nexport { default as ColorPicker } from './color-picker';\nexport { default as IconPicker } from './icon-picker';\nexport { default as IntlField } from './intl-field';\nexport { default as Lov } from './lov';\nexport { default as Select } from './select';\nexport { default as SelectBox } from './select-box';\nexport { default as Transfer } from './transfer';\nexport { default as Progress } from './progress';\nexport { default as Modal } from './modal';\nexport { default as ModalContainer } from './modal-container';\nexport { default as ModalProvider } from './modal-provider';\nexport { default as Upload } from './upload';\nexport { default as Icon } from './icon';\nexport { default as Row } from './row';\nexport { default as Col } from './col';\nexport { default as localeContext } from './locale-context';\nexport { default as Pagination } from './pagination';\nexport { default as Menu } from './menu';\nexport { default as Tabs } from './tabs';\nexport { default as Spin } from './spin';\nexport { default as Tooltip } from './tooltip';\nexport { default as OverflowTip } from './overflow-tip';\nexport { default as message } from './message';\nexport { default as notification } from './notification';\nexport { default as Tree } from './tree';\nexport { default as Dropdown } from './dropdown';\nexport { default as Output } from './output';\nexport { default as Switch } from './switch';\nexport { default as Stores } from './stores';\nexport { default as Animate } from './animate';\nexport { default as CodeArea } from './code-area';\nexport { default as Skeleton } from './skeleton';\nexport { default as AutoComplete } from './auto-complete';\nexport { default as Cascader } from './cascader';\nexport { default as PerformanceTable } from './performance-table';\nexport { default as RichText } from './rich-text';\nexport { default as Screening } from './screening';\nexport { default as injectModal } from './inject-modal';\nexport { default as useModal } from './use-modal';\nexport { default as useComputed } from './use-computed';\nexport { default as TreeSelect } from './tree-select';\nexport { default as Picture } from './picture';\nexport { default as Attachment } from './attachment';\nexport { default as Rate } from './rate';\n","import { injectModal } from '../modal-provider/ModalProvider';\nexport default injectModal;\n","import '../../modal-provider/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { action, observable } from 'mobx';\nimport { ProgressType } from 'choerodon-ui/lib/progress/enum';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { TextField } from '../text-field/TextField';\nimport Icon from '../icon';\nimport { open } from '../modal-container/ModalContainer';\nimport IntlList from './IntlList';\nimport localeContext, { $l } from '../locale-context';\nimport Progress from '../progress';\nimport { Size } from '../core/enum';\nimport message from '../message';\nimport exception from '../_util/exception';\nimport autobind from '../_util/autobind';\nimport { stopEvent } from '../_util/EventManager';\nimport isSame from '../_util/isSame';\nlet IntlField = class IntlField extends TextField {\n constructor() {\n super(...arguments);\n this.openModal = async () => {\n if (!this.modal) {\n const { modalProps, maxLengths } = this.props;\n const { record, lang, name, element } = this;\n const { supports } = localeContext;\n const maxLengthList = {};\n Object.keys(supports).map(key => {\n maxLengthList[key] = maxLengths && key !== lang ? maxLengths[key] || element.maxLength : element.maxLength;\n return null;\n });\n if (record) {\n this.setLoading(true);\n try {\n if (element && !isSame(this.getValue(), element.value)) {\n this.syncValueOnBlur(element.value);\n }\n await record.tls(name);\n }\n catch (err) {\n message.error(exception(err));\n return;\n }\n finally {\n this.setLoading(false);\n }\n }\n this.storeLocales();\n this.modal = open({\n title: $l('IntlField', 'modal_title'),\n children: React.createElement(IntlList, { readOnly: this.readOnly, disabled: this.disabled, record: record, name: name, lang: lang, maxLengths: maxLengthList }),\n onClose: this.handleIntlListClose,\n onOk: this.handleIntlListOk,\n onCancel: this.handleIntlListCancel,\n destroyOnClose: true,\n ...modalProps,\n });\n }\n };\n this.handleIntlListClose = async () => {\n delete this.modal;\n this.focus();\n };\n }\n setLoading(loading) {\n this.loading = loading;\n }\n async handleIntlListOk() {\n const { supports } = localeContext;\n const languages = Object.keys(supports);\n const { record, name, field } = this;\n if (record && field) {\n const tlsKey = getConfig('tlsKey');\n return (await Promise.all(languages.map(language => {\n const intlField = record.getField(`${tlsKey}.${name}.${language}`);\n return intlField ? intlField.checkValidity(false) : true;\n }))).every(Boolean);\n }\n }\n async handleIntlListCancel() {\n const { name, record } = this;\n if (record) {\n const tlsKey = getConfig('tlsKey');\n record.set(`${tlsKey}.${name}`, this.locales);\n }\n }\n handleKeyDown(e) {\n if (e.keyCode === KeyCode.DOWN) {\n stopEvent(e);\n this.openModal();\n }\n super.handleKeyDown(e);\n }\n handleBlur(e) {\n if (this.modal) {\n e.preventDefault();\n }\n super.handleBlur(e);\n }\n storeLocales() {\n const { name, record } = this;\n if (record) {\n const tlsKey = getConfig('tlsKey');\n this.locales = { ...record.get(`${tlsKey}.${name}`) };\n }\n }\n getSuffix() {\n const { suffix } = this.props;\n return this.wrapperSuffix(this.loading ? (React.createElement(Progress, { size: Size.small, type: ProgressType.loading })) : (suffix || React.createElement(Icon, { className: `${this.prefixCls}-intl`, type: \"language\" })), {\n onClick: this.openModal,\n });\n }\n componentWillUnmount() {\n if (this.modal) {\n this.modal.close();\n }\n }\n};\nIntlField.displayName = 'IntlField';\n__decorate([\n observable\n], IntlField.prototype, \"loading\", void 0);\n__decorate([\n action\n], IntlField.prototype, \"setLoading\", null);\n__decorate([\n autobind\n], IntlField.prototype, \"handleIntlListOk\", null);\n__decorate([\n autobind\n], IntlField.prototype, \"handleIntlListCancel\", null);\n__decorate([\n autobind\n], IntlField.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], IntlField.prototype, \"handleBlur\", null);\nIntlField = __decorate([\n observer\n], IntlField);\nexport default IntlField;\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport ObserverTextField from '../text-field/TextField';\nimport Form from '../form/Form';\nimport localeContext from '../locale-context';\nlet IntlList = class IntlList extends Component {\n renderOptions() {\n const { name, lang, maxLengths } = this.props;\n const { supports } = localeContext;\n const tlsKey = getConfig('tlsKey');\n return Object.keys(supports).map(key => {\n const maxLengthProps = maxLengths && maxLengths[key] ? { maxLength: maxLengths[key] } : {};\n return (React.createElement(ObserverTextField, Object.assign({}, maxLengthProps, { name: name ? `${tlsKey}.${name}.${key}` : key, autoFocus: key === lang, key: key })));\n });\n }\n render() {\n const { record, disabled, readOnly } = this.props;\n return React.createElement(Form, { disabled: disabled, readOnly: readOnly, record: record }, this.renderOptions());\n }\n};\nIntlList.propTypes = {\n record: PropTypes.object,\n name: PropTypes.string,\n lang: PropTypes.string,\n maxLengths: PropTypes.object,\n};\nIntlList = __decorate([\n observer\n], IntlList);\nexport default IntlList;\n","import IntlField from './IntlField';\nexport default IntlField;\n","// extracted by mini-css-extract-plugin","import '../../text-field/style';\n// style dependencies\nimport '../../modal-container/style';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport { action, get, observable, runInAction } from 'mobx';\nimport moment from 'moment';\nimport defaultLocale from './locale';\nimport defaultSupports from './supports';\nimport normalizeLanguage from '../_util/normalizeLanguage';\nfunction setMomentLocale(locale) {\n moment.locale(normalizeLanguage(locale ? locale.lang : defaultLocale.lang));\n}\nexport class LocaleContext {\n constructor() {\n runInAction(() => {\n this.locale = defaultLocale;\n this.supports = defaultSupports;\n });\n }\n setLocale(locale) {\n setMomentLocale(locale);\n this.locale = locale;\n }\n setNumberFormatLanguage(numberFormatLanguage) {\n this.numberFormatLanguage = numberFormatLanguage;\n }\n setSupports(supports) {\n this.supports = supports;\n }\n get(component, key) {\n const cmp = get(this.locale, component);\n return (cmp && get(cmp, key)) || `${component}.${key}`;\n }\n}\n__decorate([\n observable\n], LocaleContext.prototype, \"locale\", void 0);\n__decorate([\n observable\n], LocaleContext.prototype, \"numberFormatLanguage\", void 0);\n__decorate([\n observable\n], LocaleContext.prototype, \"supports\", void 0);\n__decorate([\n action\n], LocaleContext.prototype, \"setLocale\", null);\n__decorate([\n action\n], LocaleContext.prototype, \"setNumberFormatLanguage\", null);\n__decorate([\n action\n], LocaleContext.prototype, \"setSupports\", null);\nexport default new LocaleContext();\n","/* eslint-disable camelcase */\nexport var Lang;\n(function (Lang) {\n Lang[\"af\"] = \"af\";\n Lang[\"ar_AE\"] = \"ar_AE\";\n Lang[\"ar_BH\"] = \"ar_BH\";\n Lang[\"ar_DZ\"] = \"ar_DZ\";\n Lang[\"ar_EG\"] = \"ar_EG\";\n Lang[\"ar_IQ\"] = \"ar_IQ\";\n Lang[\"ar_JO\"] = \"ar_JO\";\n Lang[\"ar_KW\"] = \"ar_KW\";\n Lang[\"ar_LB\"] = \"ar_LB\";\n Lang[\"ar_LY\"] = \"ar_LY\";\n Lang[\"ar_MA\"] = \"ar_MA\";\n Lang[\"ar_OM\"] = \"ar_OM\";\n Lang[\"ar_QA\"] = \"ar_QA\";\n Lang[\"ar_SA\"] = \"ar_SA\";\n Lang[\"ar_SY\"] = \"ar_SY\";\n Lang[\"ar_TN\"] = \"ar_TN\";\n Lang[\"ar_YE\"] = \"ar_YE\";\n Lang[\"az\"] = \"az\";\n Lang[\"be\"] = \"be\";\n Lang[\"bg\"] = \"bg\";\n Lang[\"bs\"] = \"bs\";\n Lang[\"ca\"] = \"ca\";\n Lang[\"cs\"] = \"cs\";\n Lang[\"cy\"] = \"cy\";\n Lang[\"da\"] = \"da\";\n Lang[\"de\"] = \"de\";\n Lang[\"de_AT\"] = \"de_AT\";\n Lang[\"de_CH\"] = \"de_CH\";\n Lang[\"de_LI\"] = \"de_LI\";\n Lang[\"de_LU\"] = \"de_LU\";\n Lang[\"dv\"] = \"dv\";\n Lang[\"el\"] = \"el\";\n Lang[\"en_AU\"] = \"en_AU\";\n Lang[\"en_BZ\"] = \"en_BZ\";\n Lang[\"en_CA\"] = \"en_CA\";\n Lang[\"en_CB\"] = \"en_CB\";\n Lang[\"en_GB\"] = \"en_GB\";\n Lang[\"en_IE\"] = \"en_IE\";\n Lang[\"en_JM\"] = \"en_JM\";\n Lang[\"en_NZ\"] = \"en_NZ\";\n Lang[\"en_PH\"] = \"en_PH\";\n Lang[\"en_TT\"] = \"en_TT\";\n Lang[\"en_US\"] = \"en_US\";\n Lang[\"en_ZA\"] = \"en_ZA\";\n Lang[\"en_ZW\"] = \"en_ZW\";\n Lang[\"eo\"] = \"eo\";\n Lang[\"es_AR\"] = \"es_AR\";\n Lang[\"es_BO\"] = \"es_BO\";\n Lang[\"es_CL\"] = \"es_CL\";\n Lang[\"es_CO\"] = \"es_CO\";\n Lang[\"es_CR\"] = \"es_CR\";\n Lang[\"es_DO\"] = \"es_DO\";\n Lang[\"es_EC\"] = \"es_EC\";\n Lang[\"es_GT\"] = \"es_GT\";\n Lang[\"es_HN\"] = \"es_HN\";\n Lang[\"es_MX\"] = \"es_MX\";\n Lang[\"es_NI\"] = \"es_NI\";\n Lang[\"es_PA\"] = \"es_PA\";\n Lang[\"es_PE\"] = \"es_PE\";\n Lang[\"es_PR\"] = \"es_PR\";\n Lang[\"es_PY\"] = \"es_PY\";\n Lang[\"es_SV\"] = \"es_SV\";\n Lang[\"es_UY\"] = \"es_UY\";\n Lang[\"es_VE\"] = \"es_VE\";\n Lang[\"et\"] = \"et\";\n Lang[\"eu\"] = \"eu\";\n Lang[\"fa\"] = \"fa\";\n Lang[\"fi\"] = \"fi\";\n Lang[\"fo\"] = \"fo\";\n Lang[\"fr_BE\"] = \"fr_BE\";\n Lang[\"fr_CA\"] = \"fr_CA\";\n Lang[\"fr_CH\"] = \"fr_CH\";\n Lang[\"fr_FR\"] = \"fr_FR\";\n Lang[\"fr_LU\"] = \"fr_LU\";\n Lang[\"fr_MC\"] = \"fr_MC\";\n Lang[\"gl\"] = \"gl\";\n Lang[\"gu\"] = \"gu\";\n Lang[\"he\"] = \"he\";\n Lang[\"hi\"] = \"hi\";\n Lang[\"hr\"] = \"hr\";\n Lang[\"hu\"] = \"hu\";\n Lang[\"hy_AM\"] = \"hy_AM\";\n Lang[\"id\"] = \"id\";\n Lang[\"is\"] = \"is\";\n Lang[\"it_CH\"] = \"it_CH\";\n Lang[\"it_IT\"] = \"it_IT\";\n Lang[\"ja_JP\"] = \"ja_JP\";\n Lang[\"ka\"] = \"ka\";\n Lang[\"kk\"] = \"kk\";\n Lang[\"kn\"] = \"kn\";\n Lang[\"ko\"] = \"ko\";\n Lang[\"ky\"] = \"ky\";\n Lang[\"lt\"] = \"lt\";\n Lang[\"lv\"] = \"lv\";\n Lang[\"mi\"] = \"mi\";\n Lang[\"mk\"] = \"mk\";\n Lang[\"mn\"] = \"mn\";\n Lang[\"mr\"] = \"mr\";\n Lang[\"ms_BN\"] = \"ms_BN\";\n Lang[\"ms_MY\"] = \"ms_MY\";\n Lang[\"mt\"] = \"mt\";\n Lang[\"nb\"] = \"nb\";\n Lang[\"nl_NL\"] = \"nl_NL\";\n Lang[\"nl_BE\"] = \"nl_BE\";\n Lang[\"nn\"] = \"nn\";\n Lang[\"ns\"] = \"ns\";\n Lang[\"pa_IN\"] = \"pa_IN\";\n Lang[\"pl\"] = \"pl\";\n Lang[\"pt_BR\"] = \"pt_BR\";\n Lang[\"pt_PT\"] = \"pt_PT\";\n Lang[\"qu_BO\"] = \"qu_BO\";\n Lang[\"qu_EC\"] = \"qu_EC\";\n Lang[\"qu_PE\"] = \"qu_PE\";\n Lang[\"ro\"] = \"ro\";\n Lang[\"ru\"] = \"ru\";\n Lang[\"sa\"] = \"sa\";\n Lang[\"se_FI\"] = \"se_FI\";\n Lang[\"se_NO\"] = \"se_NO\";\n Lang[\"se_SE\"] = \"se_SE\";\n Lang[\"sk\"] = \"sk\";\n Lang[\"sl\"] = \"sl\";\n Lang[\"sq\"] = \"sq\";\n Lang[\"sr_BA\"] = \"sr_BA\";\n Lang[\"sr_SP\"] = \"sr_SP\";\n Lang[\"sv_FI\"] = \"sv_FI\";\n Lang[\"sv_SV\"] = \"sv_SV\";\n Lang[\"sw\"] = \"sw\";\n Lang[\"syr\"] = \"syr\";\n Lang[\"ta\"] = \"ta\";\n Lang[\"te\"] = \"te\";\n Lang[\"th\"] = \"th\";\n Lang[\"tl_PH\"] = \"tl_PH\";\n Lang[\"tn\"] = \"tn\";\n Lang[\"tr\"] = \"tr\";\n Lang[\"ts\"] = \"ts\";\n Lang[\"tt\"] = \"tt\";\n Lang[\"uk\"] = \"uk\";\n Lang[\"ur\"] = \"ur\";\n Lang[\"uz\"] = \"uz\";\n Lang[\"vi\"] = \"vi\";\n Lang[\"xh\"] = \"xh\";\n Lang[\"zh_CN\"] = \"zh_CN\";\n Lang[\"zh_HK\"] = \"zh_HK\";\n Lang[\"zh_MO\"] = \"zh_MO\";\n Lang[\"zh_SG\"] = \"zh_SG\";\n Lang[\"zh_TW\"] = \"zh_TW\";\n Lang[\"zu\"] = \"zu\";\n})(Lang || (Lang = {}));\n","import localeContext from './LocaleContext';\nimport { formatReactTemplate } from '../formatter/formatReactTemplate';\nexport function $l(component, key, injectionOptions) {\n const locale = localeContext.get(component, key);\n if (injectionOptions) {\n return formatReactTemplate(locale, injectionOptions);\n }\n return locale;\n}\nexport default localeContext;\n","import zh_CN from './zh_CN';\nexport default zh_CN;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","export default {\n zh_CN: '简体中文',\n en_GB: 'English',\n en_US: 'English(US)',\n};\n","import { Lang } from './enum';\nconst locale = {\n lang: Lang.zh_CN,\n Tabs: {\n rename: '重新命名',\n default: '默认',\n restore_default: '恢复默认',\n set_default: '设为默认',\n set_default_tip: '设置为默认的标签页会在下次打开该功能时默认显示',\n show_count: '显示数量',\n yes: '是',\n no: '否',\n save: '保存',\n customization_settings: '标签页显示设置',\n },\n Table: {\n show_cached_seletion: '显示所有已选记录',\n hide_cached_seletion: '隐藏所有已选记录',\n selection_tips: '已勾选 {count} 条数据',\n select_current_page: '勾选当页',\n unselect_current_page: '取消勾选当页',\n select_all_page: '跨页全选',\n unselect_all_page: '取消跨页全选',\n edit_button: '编辑',\n create_button: '新增',\n save_button: '保存',\n cancel_button: '取消',\n delete_button: '删除',\n remove_button: '移除',\n reset_button: '重置',\n retry_button: '重试',\n download_button: '下载',\n query_button: '查询',\n expand_button: '展开',\n collapse_button: '合并',\n export_button: '导出',\n file_name: '文件名',\n defalut_export: '默认导出文件名',\n export_failed: '导出失败',\n export_success: '导出成功',\n export_ing: '正在导出...',\n export_break: '数据导出中断,点击重试重新导出',\n export_operating: '正在导出表格数据点击取消终止导出',\n export_waiting: '数据量比较大,耐心等待',\n advanced_search: '高级搜索',\n dirty_info: '显示条件已更改',\n restore: '还原',\n empty_data: '暂无数据',\n choose_export_columns: '请选择要导出的列',\n column_name: '列名',\n filter_bar_placeholder: '过滤表',\n advanced_query: '高级查询',\n advanced_query_conditions: '高级查询条件',\n more: '更多',\n enter_text_filter: '搜索过滤条件',\n clear_filter: '清除筛选项',\n save_filter: '保存筛选',\n collapse: '收起',\n predefined_fields: '预定义字段',\n add_filter: '添加筛选',\n enter_search_content: '模糊查询,聚合高频文本字段',\n save_as: '另存为',\n no_save_filter: '暂无保存筛选',\n modified: '已修改',\n fast_filter: '默认筛选',\n default_flag: '默认',\n rename: '重新命名',\n set_default: '设为默认',\n cancel_default: '取消默认',\n restore_default: '恢复默认',\n filter_rename: '筛选重命名',\n save_filter_as: '筛选另存为',\n whether_delete_filter: '是否删除筛选记录',\n filter_name: '筛选名称',\n please_enter: '请输入',\n query_option_yes: '是',\n query_option_no: '否',\n customization_settings: '个性化设置',\n display_settings: '显示设置',\n view_display: '显示视图',\n tiled_view: '表平铺视图',\n aggregation_view: '表聚合视图',\n density_display: '显示密度',\n normal: '正常',\n compact: '紧凑',\n parity_row: '斑马纹',\n table_settings: '表格设置',\n height_settings: '高度设置',\n auto_height: '自动高度',\n fixed_height: '固定高度',\n flex_height: '自适应高度',\n flex_height_help: '表格高度 = 窗口高度 - 自适应高度',\n column_settings: '表头设置',\n left_lock: '左侧冻结',\n right_lock: '右侧冻结',\n unlocked: '未冻结',\n unlock: '取消冻结',\n top: '置顶',\n up: '前置一列',\n down: '后置一列',\n row_expand_settings: '行展开设置',\n expand_cell: '展开单元格',\n expand_row: '展开整行',\n expand_column: '展开整列',\n collapse_cell: '收起单元格',\n collapse_row: '收起整行',\n collapse_column: '收起整列',\n },\n Pagination: {\n page: '页',\n jump_to: '跳转至:',\n jump_to_confirm: '确定',\n records_per_page: '每页行数:',\n },\n Upload: {\n file_selection: '选择文件',\n click_to_upload: '点击上传',\n upload_success: '上传成功',\n upload_failure: '上传失败',\n no_file: '没有文件',\n been_uploaded: '文件已上传',\n upload_path_unset: '未设置上传路径',\n not_acceptable_prompt: '含有上传类型不匹配的文件,期待:',\n file_list_max_length: '文件数量超过最大限制',\n },\n Attachment: {\n value_missing_no_label: '请上传附件。',\n value_missing: '请上传{label}。',\n upload_attachment: '上传附件',\n upload_picture: '上传图片',\n download_all: '全部下载',\n view_attachment: '查看附件',\n no_attachments: '暂无附件',\n by_upload_time: '按上传时间',\n by_name: '按名称',\n operation_records: '操作记录',\n view_operation_records: '查看操作记录',\n download: '下载',\n delete: '删除',\n file_max_size: '文件大小不能超过:{size}',\n file_list_max_length: '文件数量最大限制为:{count}',\n file_type_mismatch: '文件类型不匹配,正确的类型:{types}',\n },\n Modal: {\n ok: '确定',\n cancel: '取消',\n close: '关闭',\n preview_picture: '图片预览',\n },\n DataSet: {\n unsaved_data_confirm: '有未保存的数据,是否继续?',\n invalid_query_dataset: '查询条件数据集校验不通过',\n delete_selected_row_confirm: '确认删除选中行?',\n delete_all_row_confirm: '确认删除所有行?',\n query_failure: '查询失败',\n submit_success: '提交成功',\n submit_failure: '提交失败',\n cannot_add_record_when_head_no_current: '头未选中记录,不能新建行记录',\n },\n DatePicker: {\n value_missing_no_label: '请选择日期。',\n value_missing: '请选择{label}。',\n type_mismatch: '请输入有效的日期。',\n ok: '确定',\n today: '今天',\n now: '此刻',\n this_week: '本周',\n invalid_date: '无效日期',\n },\n EmailField: {\n value_missing_no_label: '请输入邮箱地址',\n value_missing: '请输入{label}。',\n type_mismatch: '请输入有效的邮箱地址',\n },\n IntlField: {\n modal_title: '输入多语言信息',\n },\n NumberField: {\n value_missing_no_label: '请输入数字',\n value_missing: '请输入{label}。',\n },\n Radio: {\n value_missing_no_label: '请选择。',\n value_missing: '请选择{label}。',\n },\n SelectBox: {\n value_missing_no_label: '请选择。',\n value_missing: '请选择{label}。',\n },\n Select: {\n value_missing_no_label: '请选择。',\n value_missing: '请选择{label}。',\n no_matching_results: '无匹配结果。',\n select_all: '全选',\n select_re: '反选',\n unselect_all: '无',\n common_item: '常用项',\n },\n Lov: {\n choose: '请选择',\n },\n Transfer: {\n items: '项',\n },\n UrlField: {\n value_missing_no_label: '请输入网址。',\n value_missing: '请输入{label}。',\n type_mismatch: '请输入有效的网址。',\n },\n ColorPicker: {\n value_missing_no_label: '请选择颜色',\n value_missing: '请选择{label}。',\n type_mismatch: '请选择有效的颜色。',\n },\n Validator: {\n bad_input: '请输入一个数字。',\n pattern_mismatch: '请输入有效的值。',\n range_overflow: '{label}必须小于或等于{max}。',\n range_underflow: '{label}必须大于或等于{min}。',\n step_mismatch: '请输入有效值。最接近的有效值为{0}。',\n step_mismatch_between: '请输入有效值。两个最接近的有效值分别为{0}和{1}。',\n too_long: '请将该内容减少到{maxLength}个或更少字符(目前您使用了{length}个字符)。',\n too_short: '请将该内容增加到{minLength}个或更多字符(目前您使用了{length}个字符)。',\n type_mismatch: '请输入与类型匹配的有效值。',\n value_missing_no_label: '请填写此字段。',\n value_missing: '请输入{label}。',\n unique: '该字段值重复,请重新填写。',\n unknown: '未知错误。',\n },\n Icon: {\n icons: '图标',\n whatsNew: '新增',\n direction: '方向性',\n suggestion: '提示建议性',\n edit: '编辑类',\n data: '数据类',\n other: '网站通用',\n series: '套系类',\n },\n Cascader: {\n please_select: '请选择',\n value_missing_no_label: '请选择。',\n value_missing: '请选择{label}。',\n select_all: '全选',\n unselect_all: '无',\n },\n Screening: {\n selected: '已选',\n pack_up: '收起',\n more: '更多',\n multi_select: '多选',\n confirm: '确认',\n cancel: '取消',\n },\n};\nexport default locale;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport isEqual from 'lodash/isEqual';\nimport isString from 'lodash/isString';\nimport noop from 'lodash/noop';\nimport { action, computed, isArrayLike, observable, runInAction, toJS } from 'mobx';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Icon from '../icon';\nimport { open } from '../modal-container/ModalContainer';\nimport LovView from './LovView';\nimport DataSet from '../data-set/DataSet';\nimport Record from '../data-set/Record';\nimport Spin from '../spin';\nimport lovStore from '../stores/LovCodeStore';\nimport autobind from '../_util/autobind';\nimport { stopEvent } from '../_util/EventManager';\nimport { isSearchTextEmpty, Select } from '../select/Select';\nimport { CheckedStrategy, DataSetStatus, RecordStatus } from '../data-set/enum';\nimport { SearchAction, ViewMode } from './enum';\nimport Button from '../button/Button';\nimport { ButtonColor, FuncType } from '../button/enum';\nimport { $l } from '../locale-context';\nimport { getLovPara } from '../stores/utils';\nimport isIE from '../_util/isIE';\nlet Lov = class Lov extends Select {\n constructor() {\n super(...arguments);\n this.openModal = action((fetchSingle) => {\n this.collapse();\n const { viewMode, onBeforeSelect } = this.props;\n if (viewMode === 'modal') {\n const config = this.getConfig();\n this.autoCreate();\n const { options } = this;\n if (!this.modal && config && options) {\n const modalProps = this.getModalProps();\n const tableProps = this.getTableProps();\n const { width, title } = config;\n const lovViewProps = this.beforeOpen(options);\n this.modal = open({\n title,\n children: (React.createElement(LovView, Object.assign({}, lovViewProps, { dataSet: options, config: config, tableProps: { ...(lovViewProps && lovViewProps.tableProps), ...tableProps }, onSelect: this.handleLovViewSelect, onBeforeSelect: onBeforeSelect, multiple: this.multiple, values: this.getValues() }))),\n onClose: this.handleLovViewClose,\n destroyOnClose: true,\n closable: true,\n autoFocus: false,\n bodyStyle: {\n minHeight: isIE() ? pxToRem(Math.min(350, window.innerHeight)) : 'min(3.5rem, 100vh)',\n },\n ...modalProps,\n style: {\n width: pxToRem(width),\n ...(modalProps && modalProps.style),\n },\n afterClose: this.handleLovViewAfterClose,\n });\n this.afterOpen(options, fetchSingle);\n }\n }\n });\n }\n get searchMatcher() {\n const { searchMatcher } = this.observableProps;\n if (isString(searchMatcher)) {\n return searchMatcher;\n }\n return this.textField;\n }\n get searchable() {\n const { searchable } = this.observableProps;\n if (searchable === false) {\n return searchable;\n }\n const config = this.getConfig();\n if (config) {\n return config.editableFlag === 'Y';\n }\n return true;\n }\n get lovCode() {\n const { field } = this;\n if (field) {\n return field.get('lovCode');\n }\n return undefined;\n }\n get popup() {\n return this.modal || (!this.isSearchFieldInPopup() && !this.searchText) ? false : this.statePopup;\n }\n /**\n * 点击查询仅存在一条数据时自动选中\n */\n get autoSelectSingle() {\n if ('autoSelectSingle' in this.props) {\n return this.props.autoSelectSingle;\n }\n const autoSelectSingle = getConfig('lovAutoSelectSingle');\n if (typeof autoSelectSingle !== 'undefined') {\n return autoSelectSingle;\n }\n return false;\n }\n get options() {\n const { field, lovCode } = this;\n if (field) {\n const { options } = field;\n if (options) {\n return options;\n }\n }\n if (lovCode) {\n const lovDataSet = lovStore.getLovDataSet(lovCode, field, field && field.get('optionsProps'));\n if (lovDataSet) {\n return lovDataSet;\n }\n }\n return new DataSet();\n }\n getSearchFieldProps() {\n const searchFieldProps = super.getSearchFieldProps();\n const { viewMode } = this.props;\n if (viewMode === 'popup') {\n return {\n multiple: true,\n ...searchFieldProps,\n };\n }\n return searchFieldProps;\n }\n isSearchFieldInPopup() {\n const searchFieldInPopup = super.isSearchFieldInPopup();\n if (searchFieldInPopup === undefined) {\n const { viewMode } = this.props;\n return viewMode === 'popup';\n }\n return searchFieldInPopup;\n }\n isEditable() {\n const { viewMode } = this.props;\n return viewMode !== 'popup' && super.isEditable();\n }\n getPopupLovView() {\n const config = this.getConfig();\n this.autoCreate();\n const { options } = this;\n if (config && options) {\n let lovViewProps;\n if (this.popup && !this.fetched) {\n runInAction(() => {\n lovViewProps = this.beforeOpen(options);\n this.afterOpen(options);\n this.fetched = true;\n });\n }\n const tableProps = this.getTableProps();\n const mergedTableProps = {\n ...(lovViewProps && lovViewProps.tableProps),\n ...tableProps,\n style: {\n ...tableProps.style,\n maxHeight: 250,\n },\n pagination: { showSizeChanger: false },\n queryBar: this.renderSearchField,\n border: false,\n size: Size.small,\n };\n const { onBeforeSelect } = this.props;\n return (React.createElement(LovView, Object.assign({}, lovViewProps, { popup: true, dataSet: options, config: config, tableProps: mergedTableProps, onSelect: this.handleLovViewSelect, onBeforeSelect: onBeforeSelect, multiple: this.multiple, values: this.getValues(), popupHidden: !this.popup })));\n }\n }\n getPopupContent() {\n const { searchAction, viewMode } = this.props;\n if (viewMode === 'popup') {\n return this.getPopupLovView();\n }\n if (searchAction === SearchAction.input) {\n return super.getPopupContent();\n }\n return null;\n }\n beforeOpen(options) {\n const { multiple, primitive, valueField } = this;\n if (multiple) {\n options.selectionStrategy = this.getProp('showCheckedStrategy') || CheckedStrategy.SHOW_ALL;\n }\n const { viewMode } = this.props;\n const { selected } = options;\n if (viewMode === 'modal') {\n options.unSelectAll();\n // TODO:lovEvents deprecated\n const { lovEvents } = this.props;\n if (lovEvents) {\n Object.keys(lovEvents).forEach(event => options.addEventListener(event, lovEvents[event]));\n }\n }\n if (multiple) {\n const needToFetch = new Map();\n options.clearCachedSelected();\n options.setCachedSelected(this.getValues().map(value => {\n const primitiveValue = primitive ? value : value[valueField];\n const oldSelected = selected.find(r => r.get(valueField) === primitiveValue);\n if (oldSelected) {\n oldSelected.isSelected = true;\n return oldSelected;\n }\n const newSelected = new Record(primitive ? { [valueField]: value } : toJS(value), options, RecordStatus.sync);\n newSelected.isSelected = true;\n newSelected.isCached = true;\n needToFetch.set(primitiveValue, newSelected);\n return newSelected;\n }));\n const { lovCode } = this;\n if (lovCode) {\n const lovQueryCachedSelected = getConfig('lovQueryCachedSelected');\n if (lovQueryCachedSelected) {\n const fetchCachedSelected = () => {\n if (needToFetch.size) {\n lovQueryCachedSelected(lovCode, needToFetch).then(action((results) => {\n results.forEach((data) => {\n const record = needToFetch.get(data[valueField]);\n if (record) {\n record.init(data);\n }\n });\n needToFetch.clear();\n }));\n }\n };\n if (viewMode === 'popup') {\n fetchCachedSelected();\n }\n else {\n return {\n tableProps: {\n onShowCachedSelectionChange: (visible) => {\n if (visible) {\n fetchCachedSelected();\n }\n },\n },\n };\n }\n }\n }\n }\n }\n afterOpen(options, fetchSingle) {\n const noCache = this.getProp('noCache');\n if (this.resetOptions(noCache) && fetchSingle !== true && !this.multiple) {\n options.query();\n }\n else if (this.multiple) {\n if (this.resetOptions(noCache)) {\n options.query();\n }\n options.releaseCachedSelected();\n }\n }\n setText(text) {\n this.searching = true;\n super.setText(text);\n }\n /**\n * 处理 Lov input 查询参数\n * @param text\n */\n searchRemote(text) {\n const { options, searchMatcher } = this;\n if (isString(searchMatcher) && !isSearchTextEmpty(text)) {\n this.resetOptions(true);\n const searchPara = this.getSearchPara(searchMatcher, text);\n Object.keys(searchPara).forEach(key => {\n const value = searchPara[key];\n options.setQueryParameter(key, value === '' ? undefined : value);\n });\n if (this.isSearchFieldInPopup() || this.props.searchAction === SearchAction.input) {\n options.query().then(() => delete this.searching);\n }\n }\n }\n handlePopupHiddenChange(hidden) {\n super.handlePopupHiddenChange(hidden);\n if (hidden) {\n delete this.fetched;\n }\n }\n handleLovViewClose() {\n this.focus();\n }\n /**\n * 关闭弹窗移除时间监听 后续废弃\n */\n handleLovViewAfterClose() {\n // TODO:lovEvents deprecated\n const { options, props: { lovEvents } } = this;\n const { afterClose = noop } = this.getModalProps();\n afterClose();\n if (lovEvents) {\n Object.keys(lovEvents).forEach(event => options.removeEventListener(event, lovEvents[event]));\n }\n this.setPopup(false);\n this.modal = undefined;\n }\n handleLovViewSelect(records) {\n const { viewMode } = this.props;\n if (viewMode === 'popup' && !this.multiple) {\n this.collapse();\n }\n if (isArrayLike(records)) {\n this.setValue(records.map(record => this.processRecordToObject(record)));\n }\n else {\n this.setValue(records && this.processRecordToObject(records) || this.emptyValue);\n }\n }\n resetOptions(noCache = false) {\n const { field, record, options } = this;\n const { queryDataSet, props: { pageSize } } = options;\n let dirty = noCache;\n if (noCache) {\n options.pageSize = pageSize || 10;\n }\n if (queryDataSet && noCache) {\n const { current } = queryDataSet;\n if (current && current.dirty) {\n dirty = true;\n current.reset();\n }\n }\n if (field) {\n const lovPara = getLovPara(field, record);\n if (!isEqual(lovPara, options.queryParameter)) {\n options.queryParameter = lovPara;\n return true;\n }\n options.first();\n if (!options.length) {\n return true;\n }\n }\n return dirty;\n }\n handleKeyDown(e) {\n if (!this.popup && e.keyCode === KeyCode.DOWN) {\n stopEvent(e);\n this.openModal();\n }\n if (e.keyCode === KeyCode.ENTER && this.props.searchAction === SearchAction.blur) {\n stopEvent(e);\n this.blur();\n }\n if (!(e.keyCode === KeyCode.ENTER && this.searching)) {\n super.handleKeyDown(e);\n }\n }\n handleBlur(e) {\n if (this.modal) {\n e.preventDefault();\n }\n super.handleBlur(e);\n }\n getWrapperProps() {\n return super.getWrapperProps({\n onDoubleClick: (this.disabled || this.readOnly) ? undefined : this.handleOpenModal,\n // Support ued to distinguish between select and lov\n className: this.getWrapperClassNames(`${this.prefixCls}-lov`),\n });\n }\n getPopupClassName(defaultClassName) {\n const { viewMode } = this.props;\n return classNames(defaultClassName, { [`${this.prefixCls}-lov-popup`]: viewMode === 'popup' });\n }\n syncValueOnBlur(value) {\n const { textField } = this;\n const { mode, searchAction, fetchSingle } = this.props;\n if (mode !== ViewMode.button) {\n let hasRecord = false;\n if (this.getValue()) {\n hasRecord = this.getValue()[textField] === value;\n }\n if (searchAction === SearchAction.blur && value && !hasRecord) {\n const { options } = this;\n options.query().then(() => {\n const { length } = options;\n if ((length > 1 && !fetchSingle) || length === 1) {\n this.choose(options.get(0));\n }\n else if (length && fetchSingle) {\n this.openModal(fetchSingle);\n }\n });\n }\n else {\n super.syncValueOnBlur(value);\n }\n }\n }\n getConfig() {\n const { lovCode } = this;\n if (lovCode) {\n return lovStore.getConfig(lovCode);\n }\n }\n getPlaceholders() {\n const placeholder = super.getPlaceholders();\n if (placeholder.length) {\n return placeholder;\n }\n const config = this.getConfig();\n if (config) {\n const { placeholder: holder } = config;\n const holders = [];\n return holder ? holders.concat(holder) : holders;\n }\n return [];\n }\n getModalProps() {\n const { modalProps } = this.props;\n return { ...getConfig('lovModalProps'), ...modalProps };\n }\n getTableProps() {\n const { tableProps } = this.props;\n return { ...getConfig('lovTableProps'), ...tableProps };\n }\n selectSingle() {\n const { options } = this;\n this.resetOptions(options.length === 1);\n options.query().then(() => {\n if (options.length === 1) {\n this.choose(this.options.get(0));\n }\n else {\n this.openModal();\n }\n });\n }\n handleOpenModal() {\n if (!this.disabled && !this.readOnly) {\n return this.autoSelectSingle ? this.selectSingle() : this.openModal();\n }\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'modalProps',\n 'noCache',\n 'tableProps',\n 'lovEvents',\n 'searchAction',\n 'fetchSingle',\n 'autoSelectSingle',\n 'showCheckedStrategy',\n 'onBeforeSelect',\n ]);\n }\n getButtonProps() {\n const { className, type } = this.props;\n const { options } = this;\n const props = {\n ...Button.defaultProps,\n ...omit(this.getOtherProps(), ['name']),\n dataSet: options,\n className: classNames(className, `${this.prefixCls}-lov`),\n type,\n };\n if (!this.isValid) {\n props.color = ButtonColor.red;\n }\n return props;\n }\n get loading() {\n const { options, props: { searchAction } } = this;\n return (searchAction === SearchAction.blur || Boolean(this.autoSelectSingle)) && options.status === DataSetStatus.loading && !this.popup;\n }\n getSuffix() {\n const { suffix, viewMode } = this.props;\n if (viewMode === 'popup') {\n return super.getSuffix();\n }\n const icon = this.loading ? React.createElement(Spin, { className: `${this.prefixCls}-lov-spin` }) : React.createElement(Icon, { type: \"search\" });\n return this.wrapperSuffix(suffix || icon, {\n onClick: (this.disabled || this.readOnly) ? undefined : this.handleOpenModal,\n });\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this.modal) {\n this.modal.close();\n }\n }\n select() {\n const { mode } = this.props;\n if (mode !== ViewMode.button) {\n super.select();\n }\n }\n handleButtonClick(e) {\n this.handleOpenModal();\n const { onClick = noop } = this.props;\n onClick(e);\n }\n renderWrapper() {\n const { mode, children, clearButton } = this.props;\n if (mode === ViewMode.button) {\n const elements = [\n React.createElement(Button, Object.assign({ key: \"lov_button\" }, this.getButtonProps(), { disabled: this.disabled, onClick: this.handleButtonClick }), children || this.getTextNode() || this.getPlaceholders()[0] || $l('Lov', 'choose')),\n ];\n if (clearButton) {\n elements.push(React.createElement(Button, { key: \"lov_clear_button\", size: Size.small, funcType: FuncType.flat, icon: \"close\", onClick: this.handleClearButtonClick }));\n }\n return elements;\n }\n return super.renderWrapper();\n }\n};\nLov.displayName = 'Lov';\nLov.propTypes = {\n ...Select.propTypes,\n ...Button.propTypes,\n modalProps: PropTypes.object,\n tableProps: PropTypes.object,\n noCache: PropTypes.bool,\n fetchSingle: PropTypes.bool,\n autoSelectSingle: PropTypes.bool,\n /**\n * 触发查询变更的动作, default: input\n */\n searchAction: PropTypes.oneOf([SearchAction.blur, SearchAction.input]),\n showCheckedStrategy: PropTypes.string,\n};\nLov.defaultProps = {\n ...Select.defaultProps,\n clearButton: true,\n checkValueOnOptionsChange: false,\n dropdownMatchSelectWidth: false,\n searchAction: SearchAction.input,\n fetchSingle: false,\n viewMode: 'modal',\n};\n__decorate([\n observable\n], Lov.prototype, \"modal\", void 0);\n__decorate([\n computed\n], Lov.prototype, \"searchMatcher\", null);\n__decorate([\n computed\n], Lov.prototype, \"searchable\", null);\n__decorate([\n computed\n], Lov.prototype, \"lovCode\", null);\n__decorate([\n computed\n], Lov.prototype, \"options\", null);\n__decorate([\n autobind\n], Lov.prototype, \"getPopupContent\", null);\n__decorate([\n action\n], Lov.prototype, \"beforeOpen\", null);\n__decorate([\n action\n], Lov.prototype, \"afterOpen\", null);\n__decorate([\n action\n], Lov.prototype, \"setText\", null);\n__decorate([\n action\n], Lov.prototype, \"searchRemote\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handlePopupHiddenChange\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleLovViewClose\", null);\n__decorate([\n autobind,\n action\n], Lov.prototype, \"handleLovViewAfterClose\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleLovViewSelect\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleBlur\", null);\n__decorate([\n autobind,\n action\n], Lov.prototype, \"selectSingle\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleOpenModal\", null);\n__decorate([\n computed\n], Lov.prototype, \"loading\", null);\n__decorate([\n autobind\n], Lov.prototype, \"handleButtonClick\", null);\nLov = __decorate([\n observer\n], Lov);\nexport default Lov;\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { action } from 'mobx';\nimport noop from 'lodash/noop';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Table from '../table/Table';\nimport TableProfessionalBar from '../table/query-bar/TableProfessionalBar';\nimport { SelectionMode, TableMode, TableQueryBarType } from '../table/enum';\nimport { DataSetEvents, DataSetSelection } from '../data-set/enum';\nimport autobind from '../_util/autobind';\nimport { getColumnKey } from '../table/utils';\nexport default class LovView extends Component {\n constructor() {\n super(...arguments);\n this.resizedColumns = new Map();\n }\n componentWillMount() {\n const { dataSet, dataSet: { selection }, multiple, popup, } = this.props;\n this.selection = selection;\n dataSet.selection = multiple ? DataSetSelection.multiple : DataSetSelection.single;\n if (popup && multiple) {\n dataSet.addEventListener(DataSetEvents.batchSelect, this.handleSelect);\n dataSet.addEventListener(DataSetEvents.batchUnSelect, this.handleSelect);\n }\n }\n componentWillUnmount() {\n const { dataSet, multiple, popup } = this.props;\n dataSet.selection = this.selection;\n if (popup && multiple) {\n dataSet.removeEventListener(DataSetEvents.batchSelect, this.handleSelect);\n dataSet.removeEventListener(DataSetEvents.batchUnSelect, this.handleSelect);\n }\n }\n shouldComponentUpdate(nextProps) {\n const { popup } = this.props;\n if (popup && nextProps.popupHidden) {\n return false;\n }\n return true;\n }\n /* istanbul ignore next */\n getColumns() {\n const { config: { lovItems }, tableProps, popup, } = this.props;\n return lovItems\n ? lovItems\n .filter(({ gridField }) => gridField === 'Y')\n .sort(({ gridFieldSequence: seq1 }, { gridFieldSequence: seq2 }) => seq1 - seq2)\n .map(({ display, gridFieldName, gridFieldWidth, gridFieldAlign }) => {\n let column = {};\n if (tableProps && tableProps.columns) {\n column = tableProps.columns.find(c => c.name === gridFieldName);\n }\n return {\n ...column,\n key: gridFieldName,\n header: display,\n name: gridFieldName,\n width: popup ? gridFieldName ? this.resizedColumns.get(gridFieldName) : undefined : gridFieldWidth,\n align: gridFieldAlign,\n editor: false,\n };\n })\n : undefined;\n }\n handleSelect(event) {\n const { selectionMode } = this;\n const { onSelect, onBeforeSelect = noop, modal, multiple, dataSet, tableProps } = this.props;\n let records = selectionMode === SelectionMode.treebox ?\n dataSet.treeSelected : (selectionMode === SelectionMode.rowbox || multiple) ?\n dataSet.selected : dataSet.current ? [dataSet.current] : [];\n // 满足单选模式下,双击和勾选框选中均支持\n if (tableProps && tableProps.alwaysShowRowBox && !event) {\n records = dataSet.selected;\n }\n const record = multiple ? records : records[0];\n if (record && onBeforeSelect(record) !== false) {\n if (modal) {\n modal.close();\n }\n onSelect(record);\n }\n return false;\n }\n /* istanbul ignore next */\n handleKeyDown(e) {\n if (e.keyCode === KeyCode.ENTER) {\n this.handleSelect();\n }\n }\n /**\n * 单选 onRow 处理\n * @param props\n */\n handleRow(props) {\n const { tableProps } = this.props;\n if (tableProps) {\n const { onRow } = tableProps;\n if (onRow) {\n return {\n onDoubleClick: this.handleSelect,\n ...onRow(props),\n };\n }\n }\n return {\n onDoubleClick: this.handleSelect,\n };\n }\n handleSingleRow() {\n return {\n onClick: this.handleSelect,\n };\n }\n ;\n handleColumnResize(props) {\n const { width, column } = props;\n this.resizedColumns.set(getColumnKey(column), width);\n }\n render() {\n const { dataSet, config: { queryBar, height, treeFlag, queryColumns, tableProps: configTableProps }, multiple, popup, tableProps, modal, } = this.props;\n if (modal) {\n modal.handleOk(this.handleSelect);\n }\n const columns = this.getColumns();\n const lovTableProps = {\n autoFocus: true,\n mode: treeFlag === 'Y' ? TableMode.tree : TableMode.list,\n onKeyDown: this.handleKeyDown,\n dataSet,\n columns,\n queryFieldsLimit: queryColumns,\n queryBar: queryBar || getConfig('lovQueryBar') || getConfig('queryBar'),\n selectionMode: SelectionMode.none,\n ...configTableProps,\n ...tableProps,\n className: classNames(configTableProps && configTableProps.className, tableProps && tableProps.className),\n style: {\n ...(configTableProps && configTableProps.style),\n height,\n ...(tableProps && tableProps.style),\n },\n queryBarProps: {\n ...(tableProps && tableProps.queryBarProps),\n ...getConfig('lovQueryBarProps'),\n },\n };\n if (multiple) {\n if (popup || !tableProps || !tableProps.selectionMode) {\n if (lovTableProps.mode === TableMode.tree) {\n lovTableProps.selectionMode = SelectionMode.treebox;\n }\n else {\n lovTableProps.selectionMode = SelectionMode.rowbox;\n }\n }\n if (lovTableProps.selectionMode !== SelectionMode.rowbox && lovTableProps.selectionMode !== SelectionMode.treebox) {\n lovTableProps.highLightRow = false;\n lovTableProps.selectedHighLightRow = true;\n }\n }\n else if (popup) {\n lovTableProps.onRow = this.handleSingleRow;\n }\n else if (lovTableProps.selectionMode !== SelectionMode.rowbox) {\n lovTableProps.onRow = this.handleRow;\n }\n else {\n lovTableProps.highLightRow = false;\n lovTableProps.selectedHighLightRow = true;\n }\n if (popup) {\n if (lovTableProps.showSelectionCachedButton === undefined) {\n lovTableProps.showSelectionCachedButton = false;\n lovTableProps.showCachedSelection = true;\n }\n lovTableProps.autoWidth = true;\n lovTableProps.onColumnResize = this.handleColumnResize;\n }\n const isProfessionalBar = lovTableProps.queryBar === TableQueryBarType.professionalBar;\n if (!popup && !lovTableProps.queryBar && isProfessionalBar) {\n lovTableProps.queryBar = (props) => React.createElement(TableProfessionalBar, Object.assign({}, props));\n }\n this.selectionMode = lovTableProps.selectionMode;\n return React.createElement(Table, Object.assign({}, lovTableProps));\n }\n}\n__decorate([\n action\n], LovView.prototype, \"componentWillMount\", null);\n__decorate([\n action\n], LovView.prototype, \"componentWillUnmount\", null);\n__decorate([\n autobind\n], LovView.prototype, \"handleSelect\", null);\n__decorate([\n autobind\n], LovView.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], LovView.prototype, \"handleRow\", null);\n__decorate([\n autobind\n], LovView.prototype, \"handleSingleRow\", null);\n__decorate([\n autobind\n], LovView.prototype, \"handleColumnResize\", null);\n","export var LovFieldType;\n(function (LovFieldType) {\n LovFieldType[\"INT\"] = \"INT\";\n LovFieldType[\"TEXT\"] = \"TEXT\";\n LovFieldType[\"DATE\"] = \"DATE\";\n LovFieldType[\"DATETIME\"] = \"DATETIME\";\n LovFieldType[\"POPUP\"] = \"POPUP\";\n LovFieldType[\"SELECT\"] = \"SELECT\";\n})(LovFieldType || (LovFieldType = {}));\nexport var ViewMode;\n(function (ViewMode) {\n ViewMode[\"default\"] = \"default\";\n ViewMode[\"button\"] = \"button\";\n})(ViewMode || (ViewMode = {}));\nexport var PrefixRule;\n(function (PrefixRule) {\n PrefixRule[\"start\"] = \"start\";\n PrefixRule[\"end\"] = \"end\";\n PrefixRule[\"include\"] = \"include\";\n})(PrefixRule || (PrefixRule = {}));\nexport var SearchAction;\n(function (SearchAction) {\n SearchAction[\"blur\"] = \"blur\";\n SearchAction[\"input\"] = \"input\";\n})(SearchAction || (SearchAction = {}));\n","import Lov from './Lov';\nexport default Lov;\n","// extracted by mini-css-extract-plugin","import '../../text-field/style';\n// style dependencies\nimport '../../table/style';\nimport '../../modal-container/style';\nimport '../../progress/style';\nimport './index.less';\n","import Menu from 'choerodon-ui/lib/menu';\nexport default Menu;\n","import 'choerodon-ui/lib/menu/style';\n","import message from 'choerodon-ui/lib/message';\nexport default message;\n","import 'choerodon-ui/lib/message/style';\n","import React from 'react';\nimport ViewComponent from '../core/ViewComponent';\nexport default class Mask extends ViewComponent {\n render() {\n return React.createElement(\"div\", Object.assign({}, this.getMergedProps()));\n }\n}\nMask.displayName = 'Mask';\nMask.defaultProps = {\n suffixCls: 'mask',\n};\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { createPortal, render } from 'react-dom';\nimport { action, computed, observable, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport findLast from 'lodash/findLast';\nimport noop from 'lodash/noop';\nimport EventManager from 'choerodon-ui/lib/_util/EventManager';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport ModalManager from '../modal-manager';\nimport Modal from '../modal/Modal';\nimport Animate from '../animate';\nimport Mask from './Mask';\nimport { stopEvent } from '../_util/EventManager';\nimport { suffixCls } from '../modal/utils';\nimport { getDocument, getMousePosition } from '../_util/DocumentUtils';\nconst { containerInstances } = ModalManager;\nfunction getArrayIndex(array, index) {\n if (array.length > index) {\n return array[index];\n }\n return 0;\n}\nfunction getRoot() {\n let { root } = ModalManager;\n if (typeof window !== 'undefined') {\n const doc = getDocument(window);\n if (root) {\n if (!root.parentNode) {\n doc.body.appendChild(root);\n }\n }\n else {\n root = doc.createElement('div');\n root.className = `${getProPrefixCls(suffixCls)}-container`;\n doc.body.appendChild(root);\n ModalManager.root = root;\n }\n }\n return root;\n}\n/**\n * 判断body是否有滚动条\n *\n * @returns {boolean}\n */\nfunction hasScrollBar(body) {\n const { scrollHeight, clientHeight } = body;\n return scrollHeight > clientHeight;\n}\nfunction hideBodyScrollBar(body) {\n const { style } = body;\n if (!ModalManager.defaultBodyStyle) {\n ModalManager.defaultBodyStyle = {\n overflow: style.overflow,\n paddingRight: style.paddingRight,\n };\n style.overflow = 'hidden';\n if (hasScrollBar(body)) {\n style.paddingRight = pxToRem(measureScrollbar()) || '';\n }\n }\n}\nfunction showBodyScrollBar(body) {\n const { style } = body;\n if (ModalManager.defaultBodyStyle) {\n const { overflow, paddingRight } = ModalManager.defaultBodyStyle;\n ModalManager.defaultBodyStyle = undefined;\n style.overflow = overflow;\n style.paddingRight = paddingRight;\n }\n}\nlet ModalContainer = class ModalContainer extends Component {\n constructor(props, context) {\n super(props, context);\n this.state = {\n modals: [],\n };\n this.saveMount = (mount) => {\n if (mount) {\n this.setState({\n mount,\n });\n }\n };\n this.handleAnimationEnd = (modalKey, isEnter) => {\n if (!isEnter) {\n const { modals } = this.state;\n const index = this.findIndex(modalKey);\n if (index !== -1) {\n const props = modals[index];\n modals.splice(index, 1);\n if (!props.destroyOnClose) {\n modals.unshift(props);\n }\n if (props.afterClose) {\n props.afterClose();\n }\n this.updateModals(modals);\n }\n }\n };\n this.handleMaskClick = async () => {\n const { modals } = this.state;\n const modal = findLast(modals, ({ hidden }) => !hidden);\n if (modal) {\n const { close = noop, onCancel = noop, maskClosable = getConfig('modalMaskClosable') } = modal;\n if (maskClosable) {\n const ret = await onCancel();\n if (ret !== false) {\n close();\n }\n }\n }\n };\n runInAction(() => {\n this.maskHidden = true;\n this.drawerOffsets = { 'slide-up': [], 'slide-right': [], 'slide-down': [], 'slide-left': [] };\n this.top();\n const doc = typeof window === 'undefined' ? undefined : document;\n if (doc && !ModalManager.mousePositionEventBound.has(doc)) {\n new EventManager(doc).addEventListener('click', (e) => {\n ModalManager.mousePosition = getMousePosition(e.clientX, e.clientY, window);\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(() => (ModalManager.mousePosition = undefined), 100);\n }, true);\n ModalManager.mousePositionEventBound.add(doc);\n }\n });\n }\n get baseOffsets() {\n const offsets = {\n 'slide-up': 0, 'slide-right': 0, 'slide-down': 0, 'slide-left': 0,\n };\n containerInstances.some((instance) => {\n if (instance === this) {\n return true;\n }\n const { drawerOffsets, maskHidden } = instance;\n if (!maskHidden) {\n offsets['slide-up'] += getArrayIndex(drawerOffsets['slide-up'], 0);\n offsets['slide-right'] += getArrayIndex(drawerOffsets['slide-right'], 0);\n offsets['slide-down'] += getArrayIndex(drawerOffsets['slide-down'], 0);\n offsets['slide-left'] += getArrayIndex(drawerOffsets['slide-left'], 0);\n }\n return false;\n });\n return offsets;\n }\n get isTop() {\n let is = true;\n containerInstances.some(instance => {\n if (instance !== this && !instance.maskHidden) {\n is = false;\n return true;\n }\n if (instance === this) {\n return true;\n }\n return false;\n });\n return is;\n }\n top() {\n ModalManager.addInstance(this);\n return this;\n }\n componentDidUpdate(prevProps) {\n const { location } = prevProps;\n const { location: currentLocation } = this.props;\n if (location && currentLocation && location.pathname !== currentLocation.pathname) {\n ModalManager.clear(true);\n }\n }\n componentWillUnmount() {\n const { modals } = this.state;\n ModalManager.removeInstance(this);\n const current = ModalManager.containerInstances[0];\n if (current && modals.length) {\n current.mergeModals(modals.reduce((list, modal) => modal.__deprecate__ && (!modal.hidden || !modal.destroyOnClose) ? list.concat({\n ...modal,\n transitionAppear: false,\n }) : list, []));\n }\n }\n updateModals(modals) {\n this.top();\n let maskHidden = true;\n const drawerOffsets = { 'slide-up': [], 'slide-right': [], 'slide-down': [], 'slide-left': [] };\n modals.slice().reverse().forEach(({ hidden, drawer, drawerOffset, drawerTransitionName }) => {\n if (!hidden) {\n maskHidden = false;\n if (drawer && drawerTransitionName) {\n const offsets = drawerOffsets[drawerTransitionName];\n const offset = offsets[0] || 0;\n offsets.unshift(offset + (drawerOffset || 0));\n }\n }\n });\n this.drawerOffsets = drawerOffsets;\n this.maskHidden = maskHidden; // modals.every(({ hidden }) => hidden);\n this.setState({ modals });\n }\n mergeModals(newModals) {\n const { modals } = this.state;\n const map = new Map();\n modals.forEach((modal) => {\n if (modal.key) {\n map.set(modal.key, modal);\n }\n });\n newModals.forEach((modal) => {\n if (modal.key) {\n map.set(modal.key, modal);\n }\n });\n this.updateModals([...map.values()]);\n }\n findIndex(modalKey) {\n const { modals } = this.state;\n return modals.findIndex(({ key }) => key === modalKey);\n }\n open(props) {\n const { modals } = this.state;\n if (!props.key) {\n props.key = ModalManager.getKey();\n warning(!!props.destroyOnClose, `The modal which opened has no key, please provide a key or set the \\`destroyOnClose\\` as true.`);\n }\n else {\n const index = this.findIndex(props.key);\n if (index !== -1) {\n modals.splice(index, 1);\n }\n }\n modals.push({ ...props, hidden: false });\n this.updateModals(modals);\n }\n close(props) {\n const { modals } = this.state;\n const target = modals.find(({ key }) => key === props.key);\n if (target) {\n Object.assign(target, props, { hidden: true });\n this.updateModals(modals);\n }\n }\n update(props) {\n const { modals: originModals } = this.state;\n const modals = [...originModals];\n if (props.key) {\n const index = this.findIndex(props.key);\n if (index !== -1) {\n modals[index] = { ...modals[index], ...props };\n this.updateModals(modals);\n }\n }\n }\n clear(closeByLocationChange) {\n const { modals } = this.state;\n this.updateModals(modals.map(modal => closeByLocationChange && !modal.closeOnLocationChange ? modal : ({\n ...modal,\n destroyOnClose: true,\n hidden: true,\n })));\n }\n getModalWidth(modal) {\n return (modal && modal.style && modal.style.width) || 520;\n }\n getComponent(mount) {\n const { maskHidden: hidden, isTop, drawerOffsets, baseOffsets } = this;\n const { modals } = this.state;\n const indexes = { 'slide-up': 1, 'slide-right': 1, 'slide-down': 1, 'slide-left': 1 };\n let activeModal;\n let maskTransition = true;\n const items = modals.map((props, index) => {\n const { drawerTransitionName = getConfig('drawerTransitionName'), drawer, key, transitionAppear = true } = props;\n const style = {\n ...props.style,\n };\n if (drawer && drawerTransitionName) {\n const i = indexes[drawerTransitionName];\n indexes[drawerTransitionName] += 1;\n const offset = getArrayIndex(drawerOffsets[drawerTransitionName], i) + baseOffsets[drawerTransitionName];\n if (offset) {\n switch (drawerTransitionName) {\n case 'slide-up':\n style.marginTop = offset;\n break;\n case 'slide-down':\n style.marginBottom = offset;\n break;\n case 'slide-left':\n style.marginLeft = offset;\n break;\n default:\n style.marginRight = offset;\n }\n }\n }\n const active = isTop && index === modals.length - 1;\n if (active) {\n activeModal = props;\n }\n if (transitionAppear === false) {\n maskTransition = false;\n }\n return (React.createElement(Animate, { key: key, component: \"div\", \n // UED 用类名判断\n className: props.drawer ? `${getProPrefixCls(suffixCls)}-container-drawer` : `${getProPrefixCls(suffixCls)}-container-pristine`, transitionAppear: transitionAppear, transitionName: drawer ? drawerTransitionName : 'zoom', hiddenProp: \"hidden\", onEnd: this.handleAnimationEnd },\n React.createElement(Modal, Object.assign({ key: key, mousePosition: ModalManager.mousePosition }, props, { style: style, active: active }))));\n });\n const animationProps = {};\n if (mount && mount.ownerDocument) {\n const { body } = mount.ownerDocument;\n if (containerInstances.every(instance => instance.maskHidden)) {\n animationProps.onEnd = () => showBodyScrollBar(body);\n }\n else {\n hideBodyScrollBar(body);\n }\n }\n const eventProps = {};\n if (activeModal && activeModal.mask) {\n const { maskClosable = getConfig('modalMaskClosable') } = activeModal;\n if (maskClosable === 'dblclick') {\n eventProps.onDoubleClick = this.handleMaskClick;\n }\n else {\n eventProps.onClick = this.handleMaskClick;\n }\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Animate, Object.assign({ component: \"\", transitionAppear: true, transitionName: maskTransition ? 'fade' : undefined, hiddenProp: \"hidden\" }, animationProps), activeModal && activeModal.mask ? (React.createElement(Mask, Object.assign({ style: activeModal.maskStyle, className: activeModal.maskClassName, hidden: hidden }, eventProps, { onMouseDown: stopEvent }))) : React.createElement(\"div\", { hidden: hidden })),\n items,\n !mount && React.createElement(\"span\", { ref: this.saveMount })));\n }\n getContainer() {\n const { getContainer: getModalContainer } = this.props;\n if (typeof getModalContainer === 'function') {\n return getModalContainer();\n }\n return getModalContainer;\n }\n render() {\n const { getContainer: getModalContainer } = this.props;\n if (getModalContainer === false) {\n const { mount } = this.state;\n return this.getComponent(mount);\n }\n const mount = this.getContainer();\n if (mount) {\n return createPortal(this.getComponent(mount), mount);\n }\n return null;\n }\n};\nModalContainer.displayName = 'ModalContainer';\nModalContainer.defaultProps = {\n getContainer: getRoot,\n};\n__decorate([\n observable\n], ModalContainer.prototype, \"maskHidden\", void 0);\n__decorate([\n observable\n], ModalContainer.prototype, \"drawerOffsets\", void 0);\n__decorate([\n computed\n], ModalContainer.prototype, \"baseOffsets\", null);\n__decorate([\n computed\n], ModalContainer.prototype, \"isTop\", null);\n__decorate([\n action\n], ModalContainer.prototype, \"top\", null);\n__decorate([\n action\n], ModalContainer.prototype, \"updateModals\", null);\nModalContainer = __decorate([\n observer\n], ModalContainer);\nexport default ModalContainer;\nexport function getContainer(loop) {\n const { length } = containerInstances;\n if (length) {\n return containerInstances[0];\n }\n if (loop !== true) {\n const root = getRoot();\n if (root) {\n render(React.createElement(ModalContainer, null), root);\n }\n return getContainer(true);\n }\n}\nexport function open(props) {\n const container = getContainer();\n function getCurrentContainer() {\n return containerInstances.includes(container) ? container : getContainer();\n }\n async function close(destroy) {\n const { onClose = noop } = props;\n if ((await onClose()) !== false) {\n if (destroy) {\n getCurrentContainer().close({ ...props, destroyOnClose: true });\n }\n else {\n getCurrentContainer().close(props);\n }\n }\n }\n function update(newProps) {\n getCurrentContainer().update({ ...newProps, key: props.key });\n }\n props = {\n __deprecate__: true,\n close,\n update,\n ...Modal.defaultProps,\n ...props,\n };\n container.open(props);\n function show(newProps) {\n getCurrentContainer().open({ ...props, ...newProps });\n }\n return {\n close,\n open: show,\n update,\n };\n}\n","import ModalContainer from './ModalContainer';\nexport default ModalContainer;\n","// style dependencies\nimport '../../modal/style';\n","import { action, observable } from 'mobx';\nconst KeyGen = (function* (id) {\n while (true) {\n yield `modal-${id}`;\n id += 1;\n }\n})(1);\nconst containerInstances = observable.array();\nconst removeInstance = action((instance) => {\n const index = containerInstances.indexOf(instance);\n if (index > -1) {\n containerInstances.splice(index, 1);\n }\n});\nconst addInstance = action((instance) => {\n removeInstance(instance);\n containerInstances.unshift(instance);\n});\nfunction getKey() {\n return KeyGen.next().value;\n}\nfunction clear(closeByLocationChange) {\n containerInstances.forEach((instance) => {\n instance.clear(closeByLocationChange);\n });\n}\nconst ModalManager = {\n addInstance,\n removeInstance,\n getKey,\n mousePositionEventBound: new WeakSet(),\n containerInstances,\n clear,\n};\nexport default ModalManager;\n","import '../../modal-provider/style';\n","import { createContext } from 'react';\nimport noop from 'lodash/noop';\nconst ModalContext = createContext({ open: noop });\nexport default ModalContext;\n","import React, { useCallback, useContext, useEffect, useMemo, useRef, } from 'react';\nimport noop from 'lodash/noop';\nimport ModalContainer from '../modal-container/ModalContainer';\nimport Modal from '../modal/Modal';\nimport ModalContext from './ModalContext';\nconst ModalProvider = (props) => {\n const { location: contextLocation } = useContext(ModalContext);\n const { location = contextLocation, children, getContainer } = props;\n const ref = useRef(null);\n const prepareToOpen = useMemo(() => [], []);\n const open = useCallback((modalProps) => {\n const container = ref.current;\n if (container) {\n const close = async (destroy) => {\n const { onClose = noop } = modalProps;\n if ((await onClose()) !== false) {\n if (destroy) {\n container.close({ ...modalProps, destroyOnClose: true });\n }\n else {\n container.close(modalProps);\n }\n }\n };\n const show = () => {\n container.open(modalProps);\n };\n const update = newProps => {\n container.update({ ...modalProps, ...newProps });\n };\n modalProps = {\n close,\n update,\n ...Modal.defaultProps,\n ...modalProps,\n };\n container.open(modalProps);\n return {\n close,\n open: show,\n update,\n };\n }\n prepareToOpen.push(modalProps);\n }, []);\n useEffect(() => {\n if (ref.current) {\n prepareToOpen.forEach(prepare => open(prepare));\n }\n }, [ref, open]);\n const context = {\n open,\n location,\n };\n return (React.createElement(ModalContext.Provider, { value: context },\n React.createElement(ModalContainer, { ref: ref, location: location, getContainer: getContainer }),\n children));\n};\nexport const useModal = () => {\n return useContext(ModalContext);\n};\nexport const injectModal = Target => {\n const Hoc = props => {\n const modal = useModal();\n return React.createElement(Target, Object.assign({}, props, { Modal: modal }));\n };\n Hoc.displayName = `${Target.displayName || 'Anonymous'}-with-inject-modal`;\n return Hoc;\n};\nModalProvider.displayName = 'ModalProvider';\nModalProvider.useModal = useModal;\nModalProvider.injectModal = injectModal;\nexport default ModalProvider;\n","import ModalProvider from './ModalProvider';\nexport default ModalProvider;\n","// style dependencies\nimport '../../modal-container/style';\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport defer from 'lodash/defer';\nimport noop from 'lodash/noop';\nimport isNil from 'lodash/isNil';\nimport isNumber from 'lodash/isNumber';\nimport classNames from 'classnames';\nimport classes from 'component-classes';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport ViewComponent from '../core/ViewComponent';\nimport Icon from '../icon';\nimport autobind from '../_util/autobind';\nimport Button from '../button/Button';\nimport EventManager from '../_util/EventManager';\nimport isEmpty from '../_util/isEmpty';\nimport { ButtonColor, FuncType } from '../button/enum';\nimport asyncComponent from '../_util/AsyncComponent';\nimport message from '../message';\nimport exception from '../_util/exception';\nimport { $l } from '../locale-context';\nimport DataSetRequestError from '../data-set/DataSetRequestError';\nimport { suffixCls } from './utils';\nimport { getDocument } from '../_util/DocumentUtils';\nfunction fixUnit(n) {\n if (isNumber(n)) {\n return `${n}px`;\n }\n return n;\n}\nfunction getTransformOrigin(position, style) {\n const { offsetWidth = 0, scrollTop = 0, scrollLeft = 0 } = typeof window === 'undefined' ? {} : getDocument(window).documentElement;\n const { width = 520, left, top = 100 } = style;\n const { x, y } = position;\n const originX = `calc(${x}px - ${isNil(left) ? `(${offsetWidth}px - ${fixUnit(width)}) / 2` : `${fixUnit(left)}`} - ${scrollLeft}px)`;\n // const originX = isNil(left) ? `calc(${x}px - (${offsetWidth}px - ${width}px) / 2)` : `${x - (toPx(left) || 0)}px`;\n const originY = `calc(${y}px - ${fixUnit(top)} - ${scrollTop}px)`;\n // const originY = `${y - (toPx(top) || 0) - scrollTop}px`;\n return `${originX} ${originY}`;\n}\nexport default class Modal extends ViewComponent {\n constructor(props, context) {\n super(props, context);\n this.moveEvent = new EventManager(typeof window === 'undefined' ? undefined : getDocument(window));\n this.okCancelEvent = new EventManager();\n this.getDefaultHeader = (title, closeButton, _okBtn, _cancelBtn) => {\n const { prefixCls } = this;\n if (title || closeButton) {\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-title` }, title),\n React.createElement(\"div\", { className: `${prefixCls}-header-buttons` }, closeButton)));\n }\n };\n this.getDefaultFooter = (okBtn, cancelBtn, _modalChildrenProps) => {\n const { okCancel, okButton, cancelButton = okCancel !== false, okFirst = getConfig('modalOkFirst'), drawer } = this.props;\n const buttons = [];\n if (okButton !== false) {\n buttons.push(okBtn);\n }\n if (cancelButton !== false) {\n const drawerOkFirst = getConfig('drawerOkFirst');\n if (drawer && !isNil(drawerOkFirst)) {\n if (drawerOkFirst) {\n buttons.push(cancelBtn);\n }\n else {\n buttons.unshift(cancelBtn);\n }\n }\n else if (okFirst) {\n buttons.push(cancelBtn);\n }\n else {\n buttons.unshift(cancelBtn);\n }\n }\n return React.createElement(\"div\", null, buttons);\n };\n this.registerOk = ok => {\n this.okCancelEvent.removeEventListener('ok');\n this.okCancelEvent.addEventListener('ok', ok);\n };\n this.registerCancel = cancel => {\n this.okCancelEvent.removeEventListener('cancel');\n this.okCancelEvent.addEventListener('cancel', cancel);\n };\n const { close = noop, update = noop } = props;\n this.childrenProps = {\n close,\n update,\n props,\n handleOk: this.registerOk,\n handleCancel: this.registerCancel,\n };\n }\n get okBtn() {\n const { okProps, okText = $l('Modal', 'ok'), drawer, } = this.props;\n const modalButtonProps = getConfig('modalButtonProps');\n const funcType = drawer\n ? FuncType.raised\n : getConfig('buttonFuncType');\n return (React.createElement(Button, Object.assign({ key: \"ok\", funcType: funcType, color: ButtonColor.primary, onClick: this.handleOk }, modalButtonProps, okProps), okText));\n }\n get cancelBtn() {\n const { cancelProps, cancelText = $l('Modal', 'cancel'), drawer, } = this.props;\n const modalButtonProps = getConfig('modalButtonProps');\n const funcType = drawer\n ? FuncType.raised\n : getConfig('buttonFuncType');\n return (React.createElement(Button, Object.assign({ key: \"cancel\", ref: this.saveCancelRef, funcType: funcType, onClick: this.handleCancel }, modalButtonProps, cancelProps), cancelText));\n }\n ;\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n if (!isEqual(this.props, nextProps)) {\n const { close = noop, update = noop } = nextProps;\n Object.assign(this.childrenProps, {\n close,\n update,\n props: nextProps,\n });\n }\n }\n saveCancelRef(node) {\n this.cancelButton = node;\n }\n handleKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n const { cancelButton } = this;\n if (cancelButton && !cancelButton.disabled) {\n cancelButton.handleClickWait(e);\n }\n else {\n this.handleCancel();\n }\n }\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n '__deprecate__',\n 'closable',\n 'movable',\n 'maskClosable',\n 'maskStyle',\n 'mask',\n 'maskClassName',\n 'keyboardClosable',\n 'fullScreen',\n 'title',\n 'header',\n 'footer',\n 'close',\n 'update',\n 'okText',\n 'cancelText',\n 'okButton',\n 'cancelButton',\n 'okCancel',\n 'onClose',\n 'onOk',\n 'onCancel',\n 'destroyOnClose',\n 'drawer',\n 'drawerOffset',\n 'drawerTransitionName',\n 'transitionAppear',\n 'afterClose',\n 'okProps',\n 'cancelProps',\n 'border',\n 'drawerBorder',\n 'okFirst',\n 'autoCenter',\n 'mousePosition',\n 'active',\n 'contentStyle',\n 'bodyStyle',\n 'closeOnLocationChange',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n const { hidden, mousePosition, keyboardClosable = getConfig('modalKeyboard'), style = {}, drawer } = this.props;\n if (keyboardClosable) {\n otherProps.autoFocus = true;\n otherProps.tabIndex = -1;\n otherProps.onKeyDown = this.handleKeyDown;\n }\n if (!drawer) {\n const position = this.mousePosition || mousePosition;\n if (position) {\n this.mousePosition = position;\n otherProps.style = {\n ...style,\n transformOrigin: getTransformOrigin(position, style),\n };\n }\n if (hidden) {\n this.mousePosition = null;\n }\n }\n return otherProps;\n }\n contentReference(node) {\n this.contentNode = node;\n }\n getClassName() {\n const { prefixCls, props: { style = {}, fullScreen, drawer, drawerTransitionName = getConfig('drawerTransitionName'), size, active, border = getConfig('modalSectionBorder'), drawerBorder = getConfig('drawerSectionBorder'), autoCenter = getConfig('modalAutoCenter'), }, } = this;\n return super.getClassName({\n [`${prefixCls}-center`]: !drawer && !('left' in style || 'right' in style) && !this.offset,\n [`${prefixCls}-fullscreen`]: fullScreen,\n [`${prefixCls}-drawer`]: drawer,\n [`${prefixCls}-border`]: drawer ? drawerBorder : border,\n [`${prefixCls}-drawer-${drawerTransitionName}`]: drawer,\n [`${prefixCls}-auto-center`]: autoCenter && !drawer && !fullScreen,\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-active`]: active,\n });\n }\n render() {\n const { prefixCls, props: { contentStyle, drawer } } = this;\n const header = this.getHeader();\n const body = this.getBody();\n const footer = this.getFooter();\n return (React.createElement(\"div\", Object.assign({}, this.getMergedProps()),\n React.createElement(\"div\", { ref: this.contentReference, className: classNames(`${prefixCls}-content`, { [`${prefixCls}-drawer-content`]: drawer }), style: contentStyle },\n header,\n body,\n footer)));\n }\n componentWillUpdate({ hidden }) {\n if (hidden === false && hidden !== this.props.hidden) {\n defer(() => this.focus());\n }\n }\n componentWillUnmount() {\n this.moveEvent.clear();\n this.okCancelEvent.clear();\n }\n handleHeaderMouseDown(downEvent) {\n const { element, contentNode, props: { autoCenter = getConfig('modalAutoCenter') } } = this;\n if (element && contentNode) {\n const { prefixCls } = this;\n const { clientX, clientY } = downEvent;\n const { offsetLeft, offsetTop } = element;\n const heightW = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n let autoMove = 0;\n this.moveEvent\n .addEventListener('mousemove', (moveEvent) => {\n const { clientX: moveX, clientY: moveY } = moveEvent;\n classes(element).remove(`${prefixCls}-center`);\n const left = pxToRem(Math.max(offsetLeft + moveX - clientX, 0));\n const top = pxToRem(Math.max(offsetTop + autoMove + moveY - clientY, 0));\n this.offset = [left, top];\n if (autoCenter && classes(element).has(`${prefixCls}-auto-center`)) {\n classes(element).remove(`${prefixCls}-auto-center`);\n autoMove = Math.max((heightW - contentNode.clientHeight) / 2, 0);\n Object.assign(element.style, {\n left,\n top: pxToRem(autoMove),\n });\n }\n else {\n Object.assign(element.style, {\n left,\n top,\n });\n }\n })\n .addEventListener('mouseup', () => {\n this.moveEvent.clear();\n });\n }\n }\n async handleOk() {\n const { onOk = noop } = this.props;\n const promise = Promise.all([onOk(), this.okCancelEvent.fireEvent('ok')]);\n try {\n const [ret1, ret2] = await promise;\n if (ret1 !== false && ret2) {\n this.close();\n }\n }\n catch (e) {\n if (!(e instanceof DataSetRequestError)) {\n message.error(exception(e));\n }\n throw e;\n }\n }\n async handleCancel() {\n const { onCancel = noop } = this.props;\n const promise = Promise.all([onCancel(), this.okCancelEvent.fireEvent('cancel')]);\n try {\n const [ret1, ret2] = await promise;\n if (ret1 !== false && ret2) {\n this.close();\n }\n }\n catch (e) {\n if (!(e instanceof DataSetRequestError)) {\n message.error(exception(e));\n }\n throw e;\n }\n }\n getHeader() {\n const { header = this.getDefaultHeader, title, } = this.props;\n if (typeof header === 'function') {\n const closeButton = this.getCloseButton();\n return this.getWrappedHeader(header(title, closeButton, this.okBtn, this.cancelBtn));\n }\n if (!isEmpty(header, true)) {\n return this.getWrappedHeader(header);\n }\n }\n getWrappedHeader(header) {\n const { prefixCls, props: { title, closable, movable, fullScreen, drawer }, } = this;\n if (title || closable || movable || header) {\n const headerProps = {\n className: classNames(`${prefixCls}-header`, {\n [`${prefixCls}-movable`]: movable && !fullScreen && !drawer,\n [`${prefixCls}-title-none`]: !title,\n [`${prefixCls}-drawer-header`]: drawer,\n }),\n };\n if (movable && !fullScreen && !drawer) {\n headerProps.onMouseDown = this.handleHeaderMouseDown;\n }\n return (React.createElement(\"div\", Object.assign({}, headerProps), header));\n }\n }\n getCloseButton() {\n const { prefixCls, props: { closable }, } = this;\n if (closable) {\n return (React.createElement(\"button\", { type: \"button\", className: `${prefixCls}-header-button`, onClick: this.handleCancel },\n React.createElement(Icon, { type: \"close\" })));\n }\n }\n getBody() {\n const { children } = this.props;\n return this.renderChildren(typeof children === 'function'\n ? asyncComponent(children)\n : children);\n }\n getFooter() {\n const { footer = this.getDefaultFooter, } = this.props;\n if (typeof footer === 'function') {\n return this.getWrappedFooter(footer(this.okBtn, this.cancelBtn, this.childrenProps));\n }\n if (!isEmpty(footer, true)) {\n return this.getWrappedFooter(footer);\n }\n }\n getWrappedFooter(footer) {\n const { prefixCls } = this;\n const { drawer } = this.props;\n const className = classNames(`${prefixCls}-footer`, {\n [`${prefixCls}-footer-drawer`]: drawer,\n [`${prefixCls}-drawer-footer`]: drawer,\n });\n return React.createElement(\"div\", { className: className }, footer);\n }\n renderChildren(children) {\n if (children) {\n const { prefixCls, props } = this;\n const { bodyStyle, drawer } = props;\n return (React.createElement(\"div\", { className: classNames(`${prefixCls}-body`, { [`${prefixCls}-drawer-body`]: drawer }), style: bodyStyle }, isValidElement(children) ? cloneElement(children, { modal: this.childrenProps }) : children));\n }\n }\n close() {\n const { close = noop } = this.props;\n close();\n }\n}\nModal.displayName = 'Modal';\nModal.propTypes = {\n ...ViewComponent.propTypes,\n closable: PropTypes.bool,\n movable: PropTypes.bool,\n fullScreen: PropTypes.bool,\n maskClosable: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n maskStyle: PropTypes.object,\n mask: PropTypes.bool,\n maskClassName: PropTypes.string,\n keyboardClosable: PropTypes.bool,\n footer: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.bool]),\n destroyOnClose: PropTypes.bool,\n okText: PropTypes.node,\n cancelText: PropTypes.node,\n okProps: PropTypes.object,\n autoCenter: PropTypes.bool,\n cancelProps: PropTypes.object,\n onClose: PropTypes.func,\n onOk: PropTypes.func,\n onCancel: PropTypes.func,\n afterClose: PropTypes.func,\n okButton: PropTypes.bool,\n cancelButton: PropTypes.bool,\n okCancel: PropTypes.bool,\n drawer: PropTypes.bool,\n drawerOffset: PropTypes.number,\n drawerTransitionName: PropTypes.oneOf(['slide-up', 'slide-right', 'slide-down', 'slide-up', 'slide-left']),\n okFirst: PropTypes.bool,\n mousePosition: PropTypes.shape({ x: PropTypes.number, y: PropTypes.number }),\n contentStyle: PropTypes.object,\n bodyStyle: PropTypes.object,\n closeOnLocationChange: PropTypes.bool,\n};\nModal.defaultProps = {\n suffixCls,\n closable: false,\n movable: true,\n mask: true,\n okButton: true,\n okCancel: true,\n destroyOnClose: true,\n fullScreen: false,\n drawer: false,\n drawerOffset: 150,\n autoFocus: true,\n closeOnLocationChange: true,\n};\n__decorate([\n autobind\n], Modal.prototype, \"saveCancelRef\", null);\n__decorate([\n autobind\n], Modal.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], Modal.prototype, \"contentReference\", null);\n__decorate([\n autobind\n], Modal.prototype, \"handleHeaderMouseDown\", null);\n__decorate([\n autobind\n], Modal.prototype, \"handleOk\", null);\n__decorate([\n autobind\n], Modal.prototype, \"handleCancel\", null);\n__decorate([\n autobind\n], Modal.prototype, \"close\", null);\n","import React from 'react';\nimport noop from 'lodash/noop';\nimport { getProPrefixCls, getConfig } from 'choerodon-ui/lib/configure';\nimport ModalManager from '../modal-manager';\nimport { open } from '../modal-container/ModalContainer';\nimport Icon from '../icon';\nimport { normalizeProps } from './utils';\nexport default function confirm(props) {\n const { children, type = 'confirm', onOk = noop, onCancel = noop, onClose = noop, iconType, autoCenter = getConfig('modalAutoCenter'), border = false, okCancel = true, title, ...otherProps } = normalizeProps(props);\n const prefixCls = getProPrefixCls('confirm');\n const titleNode = title && React.createElement(\"div\", { className: `${prefixCls}-title` }, title);\n const contentNode = children && React.createElement(\"div\", { className: `${prefixCls}-content` }, children);\n const iconNode = iconType && (React.createElement(\"td\", { className: `${prefixCls}-icon ${prefixCls}-${type}` },\n React.createElement(Icon, { type: iconType })));\n return new Promise(resolve => {\n open({\n key: ModalManager.getKey(),\n className: `${prefixCls}-wrapper`,\n border,\n destroyOnClose: true,\n okCancel,\n autoCenter,\n closable: false,\n movable: false,\n style: { width: '4.16rem' },\n children: (React.createElement(\"table\", { className: prefixCls },\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null,\n iconNode,\n React.createElement(\"td\", null,\n titleNode,\n contentNode))))),\n onOk: async () => {\n const result = await onOk();\n if (result !== false) {\n resolve('ok');\n }\n return result;\n },\n onCancel: async () => {\n const result = await onCancel();\n if (result !== false) {\n resolve('cancel');\n }\n return result;\n },\n onClose: async () => {\n const result = await onClose();\n if (result !== false) {\n resolve('cancel');\n }\n return result;\n },\n ...otherProps,\n });\n });\n}\n","import ModalManager from '../modal-manager';\nimport Modal from './Modal';\nimport { open } from '../modal-container/ModalContainer';\nimport confirm from './confirm';\nimport preview from './preview';\nimport { normalizeProps } from './utils';\nModal.key = ModalManager.getKey;\nModal.open = open;\nModal.confirm = confirm;\nModal.preview = preview;\nModal.info = function (props) {\n return confirm({\n type: 'info',\n okCancel: false,\n ...normalizeProps(props),\n });\n};\nModal.success = function (props) {\n return confirm({\n type: 'success',\n iconType: 'check_circle',\n okCancel: false,\n ...normalizeProps(props),\n });\n};\nModal.error = function (props) {\n return confirm({\n type: 'error',\n iconType: 'cancel',\n okCancel: false,\n ...normalizeProps(props),\n });\n};\nModal.warning = function (props) {\n return confirm({\n type: 'warning',\n iconType: 'warning',\n okCancel: false,\n ...normalizeProps(props),\n });\n};\nModal.destroyAll = function destroyAllFn() {\n ModalManager.clear();\n};\nexport default Modal;\n","import React from 'react';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport ModalManager from '../modal-manager';\nimport { open } from '../modal-container/ModalContainer';\nimport PictureViewer from '../picture/PictureViewer';\nimport { $l } from '../locale-context';\nexport default function preview(props, modalProps) {\n const customizedPrefixCls = getProPrefixCls('picture-viewer', props.prefixCls);\n open({\n key: ModalManager.getKey(),\n className: `${customizedPrefixCls}-modal`,\n border: false,\n title: $l('Modal', 'preview_picture'),\n footer: null,\n destroyOnClose: true,\n movable: false,\n closable: true,\n style: { width: 'auto' },\n fullScreen: true,\n children: (React.createElement(PictureViewer, Object.assign({ prefixCls: customizedPrefixCls }, props))),\n ...modalProps,\n });\n}\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../button/style';\n","import { isValidElement } from 'react';\nimport { isArrayLike } from 'mobx';\nimport isNil from 'lodash/isNil';\nimport isBoolean from 'lodash/isBoolean';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nexport const suffixCls = 'modal';\nexport function normalizeProps(props) {\n if (isString(props) ||\n isValidElement(props) ||\n isBoolean(props) ||\n isNil(props) ||\n isNumber(props) ||\n isArrayLike(props)) {\n return {\n children: props,\n };\n }\n return props;\n}\n","import DatePicker from '../date-picker/DatePicker';\nimport { ViewMode } from '../date-picker/enum';\nexport default class MonthPicker extends DatePicker {\n getWrapperClassNames() {\n const { prefixCls } = this;\n return super.getWrapperClassNames(`${prefixCls}-month-picker-wrapper`);\n }\n}\nMonthPicker.displayName = 'MonthPicker';\nMonthPicker.defaultProps = {\n ...DatePicker.defaultProps,\n mode: ViewMode.month,\n};\n","import MonthPicker from './MonthPicker';\nexport default MonthPicker;\n","// style dependencies\nimport '../../date-picker/style';\n","import Notification from 'choerodon-ui/lib/notification';\nexport default Notification;\n","import 'choerodon-ui/lib/notification/style';\n","import { __decorate } from \"tslib\";\nimport React, { isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { action, computed, isArrayLike, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport isString from 'lodash/isString';\nimport omit from 'lodash/omit';\nimport isPlainObject from 'lodash/isPlainObject';\nimport defaultTo from 'lodash/defaultTo';\nimport isNil from 'lodash/isNil';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { TextField } from '../text-field/TextField';\nimport autobind from '../_util/autobind';\nimport keepRunning from '../_util/keepRunning';\nimport Icon from '../icon';\nimport { getNearStepValues, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, parseNumber, plus } from './utils';\nimport isEmpty from '../_util/isEmpty';\nimport { $l } from '../locale-context';\nimport { FieldType } from '../data-set/enum';\nimport defaultFormatNumber from '../formatter/formatNumber';\nimport localeContext from '../locale-context/LocaleContext';\nimport { getNumberFormatOptions, getNumberFormatter } from '../field/utils';\nfunction getCurrentValidValue(value) {\n return Number(value.replace(/\\.$/, '')) || 0;\n}\nexport class NumberField extends TextField {\n get lang() {\n const { lang } = this.observableProps;\n if (lang) {\n return lang;\n }\n const { dataSet } = this;\n if (dataSet && dataSet.lang) {\n return dataSet.lang;\n }\n const { numberFormatLanguage, locale } = localeContext;\n if (numberFormatLanguage) {\n return numberFormatLanguage;\n }\n return locale.lang;\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('NumberField', label ? 'value_missing' : 'value_missing_no_label', {\n label,\n }),\n };\n }\n get allowDecimal() {\n const { min, nonStrictStep } = this;\n const precision = this.getProp('precision');\n if (precision === 0) {\n return false;\n }\n // 非严格步距下允许输入小数\n if (nonStrictStep) {\n return true;\n }\n const step = this.getProp('step');\n return !step || step % 1 !== 0 || (!!min && min % 1 !== 0);\n }\n get nonStrictStep() {\n const nonStrictStep = this.getProp('nonStrictStep');\n if (nonStrictStep !== undefined) {\n return nonStrictStep;\n }\n const numberFieldNonStrictStep = getConfig('numberFieldNonStrictStep');\n if (numberFieldNonStrictStep !== undefined) {\n return numberFieldNonStrictStep;\n }\n return false;\n }\n get allowNegative() {\n const { min } = this;\n return isNil(min) || min < 0;\n }\n get min() {\n return this.getLimit('min');\n }\n get max() {\n return this.getLimit('max');\n }\n get value() {\n const { value } = this.observableProps;\n if (isArrayLike(value)) {\n return value;\n }\n const { range } = this;\n if (isArrayLike(range)) {\n if (isPlainObject(value)) {\n const [start, end] = range;\n return {\n [start]: value[start],\n [end]: value[end],\n };\n }\n }\n return value;\n }\n set value(value) {\n runInAction(() => {\n this.observableProps.value = value;\n });\n }\n savePlusRef(ref) {\n this.plusElement = ref;\n }\n saveMinusRef(ref) {\n this.minusElement = ref;\n }\n isLowerRange(value1, value2) {\n return value1 < value2;\n }\n getFieldType() {\n return FieldType.number;\n }\n getLimit(type) {\n const { record } = this;\n const limit = this.getProp(type);\n if (record && isString(limit)) {\n const num = record.get(limit);\n if (num !== undefined) {\n return num;\n }\n }\n return limit;\n }\n getValidatorProps() {\n const { min, max } = this;\n const step = this.getProp('step');\n const nonStrictStep = this.nonStrictStep;\n return omit({\n ...super.getValidatorProps(),\n min,\n max,\n step,\n nonStrictStep,\n }, [\n 'maxLength',\n 'minLength',\n ]);\n }\n getInnerSpanButton() {\n const { prefixCls, range } = this;\n const { longPressPlus } = this.props;\n const step = this.getProp('step');\n if (step && !range && !this.readOnly && !this.disabled) {\n const plusIconProps = {\n ref: this.savePlusRef,\n key: 'plus',\n className: `${prefixCls}-plus`,\n onMouseDown: longPressPlus ? this.handlePlus : this.handleOncePlus,\n onTouchStart: this.handleOncePlus,\n };\n const minIconProps = {\n ref: this.saveMinusRef,\n key: 'minus',\n className: `${prefixCls}-minus`,\n onMouseDown: longPressPlus ? this.handleMinus : this.handleOnceMinus,\n onTouchStart: this.handleOnceMinus,\n };\n return this.wrapperInnerSpanButton(React.createElement(\"div\", null,\n React.createElement(\"div\", Object.assign({}, plusIconProps),\n React.createElement(Icon, { type: \"keyboard_arrow_up\" })),\n React.createElement(\"div\", Object.assign({}, minIconProps),\n React.createElement(Icon, { type: \"keyboard_arrow_down\" }))));\n }\n }\n getWrapperClassNames(...args) {\n const { prefixCls } = this;\n const suffix = this.getSuffix();\n const button = this.getInnerSpanButton();\n return super.getWrapperClassNames({\n [`${prefixCls}-step-suffix`]: button && isValidElement(suffix),\n ...args,\n });\n }\n handleEnterDown(e) {\n if (this.multiple && this.range && this.text) {\n this.prepareSetValue(this.text);\n }\n super.handleEnterDown(e);\n if (this.multiple && this.range) {\n this.setRangeTarget(0);\n this.beginRange();\n }\n }\n handleKeyDown(e) {\n if (!this.disabled && !this.readOnly) {\n switch (e.keyCode) {\n case KeyCode.UP:\n this.handleKeyDownUp(e);\n break;\n case KeyCode.DOWN:\n this.handleKeyDownDown(e);\n break;\n default:\n }\n }\n super.handleKeyDown(e);\n }\n handleKeyDownUp(e) {\n e.preventDefault();\n if (this.getProp('step')) {\n this.step(true);\n }\n }\n handleKeyDownDown(e) {\n e.preventDefault();\n if (this.getProp('step')) {\n this.step(false);\n }\n }\n handlePlus(_e, isKeeping) {\n this.step(true, isKeeping);\n }\n handleMinus(_e, isKeeping) {\n this.step(false, isKeeping);\n }\n handleOncePlus() {\n this.step(true);\n }\n handleOnceMinus() {\n this.step(false);\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'nonStrictStep',\n 'formatter',\n 'formatterOptions',\n 'longPressPlus',\n 'precision',\n 'numberGrouping',\n 'maxLength',\n ]);\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n max: props.max,\n min: props.min,\n precision: props.precision,\n nonStrictStep: props.nonStrictStep,\n };\n }\n step(isPlus, isKeeping) {\n const min = defaultTo(this.min, -MAX_SAFE_INTEGER);\n const max = defaultTo(this.max, MAX_SAFE_INTEGER);\n const step = defaultTo(this.getProp('step'), 1);\n const { nonStrictStep } = this;\n // 需要处理非严格模式\n let newValue;\n const value = this.multiple || this.isFocused ? Number(this.text || this.getValue()) : this.getValue();\n const currentValue = getCurrentValidValue(String(value));\n newValue = currentValue;\n const nearStep = getNearStepValues(currentValue, step, min, max);\n if (nonStrictStep === false && nearStep) {\n switch (nearStep.length) {\n case 1:\n newValue = nearStep[0];\n break;\n case 2:\n newValue = nearStep[isPlus ? 1 : 0];\n break;\n default:\n }\n }\n else {\n const nextValue = plus(currentValue, (isPlus ? step : -step));\n if (nextValue < min) {\n newValue = min;\n }\n else if (nextValue > max) {\n const nearMaxStep = getNearStepValues(max, step, min, max);\n if (nearMaxStep) {\n newValue = nearMaxStep[0];\n }\n else {\n newValue = max;\n }\n }\n else {\n newValue = nextValue;\n }\n }\n // 不要进行对比操作,在table中使用的时候,因为NumberField会作为editor使用,所以在 对第一个cell只点击一次的情况下(例如plus)\n // 此时切换到第二个cell进行编辑,无法进行上次操作(同上次的plus)\n // this.value !== newValue\n if (this.multiple || isKeeping) {\n this.setText(String(newValue));\n }\n else {\n this.prepareSetValue(newValue);\n }\n }\n prepareSetValue(value) {\n super.prepareSetValue(isNaN(value) || isEmpty(value) ? null : parseNumber(value, this.getProp('precision')));\n }\n restrictInput(value) {\n if (value) {\n let restrict = '0-9';\n if (this.allowDecimal) {\n restrict += '.';\n }\n const isNegative = this.allowNegative && /^-/.test(value);\n value = super.restrictInput(value.replace(new RegExp(`[^${restrict}]+`, 'g'), ''));\n const values = value.split('.');\n if (values.length > 2) {\n value = `${values.shift()}.${values.join('')}`;\n }\n if (isNegative) {\n value = `-${value}`;\n }\n }\n return value;\n }\n getFormatOptions(value) {\n return getNumberFormatOptions((name) => this.getProp(name), () => this.getValue(), value, this.lang);\n }\n getFormatter() {\n return this.getProp('formatter') || getNumberFormatter();\n }\n processText(value) {\n const formatOptions = this.getFormatOptions(Number(value));\n return this.getFormatter()(value, formatOptions.lang, formatOptions.options);\n }\n renderLengthInfo() {\n return undefined;\n }\n}\nNumberField.displayName = 'NumberField';\nNumberField.propTypes = {\n /**\n * 最小值\n */\n min: PropTypes.number,\n /**\n * 最大值\n */\n max: PropTypes.number,\n /**\n * 步距\n */\n step: PropTypes.number,\n /**\n * 非严格步距\n */\n nonStrictStep: PropTypes.bool,\n /**\n * 格式器\n */\n formatter: PropTypes.func,\n /**\n * 格式器参数\n */\n longPressPlus: PropTypes.bool,\n /**\n * 是否开启长按步距增加\n */\n formatterOptions: PropTypes.object,\n ...TextField.propTypes,\n};\nNumberField.defaultProps = {\n ...TextField.defaultProps,\n suffixCls: 'input-number',\n longPressPlus: true,\n max: MAX_SAFE_INTEGER,\n min: MIN_SAFE_INTEGER,\n};\nNumberField.format = defaultFormatNumber;\n__decorate([\n computed\n], NumberField.prototype, \"lang\", null);\n__decorate([\n computed\n], NumberField.prototype, \"allowDecimal\", null);\n__decorate([\n computed\n], NumberField.prototype, \"nonStrictStep\", null);\n__decorate([\n computed\n], NumberField.prototype, \"allowNegative\", null);\n__decorate([\n computed\n], NumberField.prototype, \"min\", null);\n__decorate([\n computed\n], NumberField.prototype, \"max\", null);\n__decorate([\n computed\n], NumberField.prototype, \"value\", null);\n__decorate([\n autobind\n], NumberField.prototype, \"savePlusRef\", null);\n__decorate([\n autobind\n], NumberField.prototype, \"saveMinusRef\", null);\n__decorate([\n action\n], NumberField.prototype, \"handleEnterDown\", null);\n__decorate([\n autobind\n], NumberField.prototype, \"handleKeyDown\", null);\n__decorate([\n keepRunning(function () {\n return this.plusElement;\n })\n], NumberField.prototype, \"handlePlus\", null);\n__decorate([\n keepRunning(function () {\n return this.minusElement;\n })\n], NumberField.prototype, \"handleMinus\", null);\n__decorate([\n autobind\n], NumberField.prototype, \"handleOncePlus\", null);\n__decorate([\n autobind\n], NumberField.prototype, \"handleOnceMinus\", null);\nlet ObserverNumberField = class ObserverNumberField extends NumberField {\n};\nObserverNumberField.defaultProps = NumberField.defaultProps;\nObserverNumberField.format = defaultFormatNumber;\nObserverNumberField = __decorate([\n observer\n], ObserverNumberField);\nexport default ObserverNumberField;\n","import ObserverNumberField from './NumberField';\nexport default ObserverNumberField;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../field/style';\n","import { isMoment } from 'moment';\nimport isNil from 'lodash/isNil';\nimport isNumber from 'lodash/isNumber';\nimport defaultTo from 'lodash/defaultTo';\nimport { TimeUnit } from '../date-picker/enum';\nimport defaultFormatNumber from '../formatter/formatNumber';\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 2 ** 53 - 1;\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -(2 ** 53 - 1);\nexport function getPrecision(value) {\n const valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n if (valueString.indexOf('.') >= 0) {\n return valueString.length - valueString.indexOf('.') - 1;\n }\n return 0;\n}\nfunction getMaxPrecision(value, step) {\n const stepPrecision = getPrecision(step);\n const currentValuePrecision = getPrecision(value);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n}\nfunction getPrecisionFactor(value, step) {\n return 10 ** getMaxPrecision(value, step);\n}\nfunction precisionFix(value, precisionFactor) {\n return Math.round(value * precisionFactor);\n}\nexport function plus(...values) {\n if (values.length > 2) {\n return plus(values.shift(), plus(...values));\n }\n if (values.length < 2) {\n return values[0];\n }\n const v1 = values[0];\n const v2 = values[1];\n const precisionFactor = getPrecisionFactor(v1, v2);\n return (precisionFix(v1, precisionFactor) + precisionFix(v2, precisionFactor)) / precisionFactor;\n}\nfunction getBeforeStepValue(value, minFactor, stepFactor) {\n return value - ((value - minFactor) % stepFactor);\n}\nfunction getNearStepMoments(value, step, unit) {\n const unitValue = value.get(unit);\n const mod = unitValue % step;\n if (mod !== 0) {\n const before = unitValue - mod;\n const after = before + step;\n return [value.clone().set(unit, before), value.clone().set(unit, after)];\n }\n}\nexport function getNearStepValues(value, step, min, max) {\n if (isNumber(step)) {\n if (isNumber(value)) {\n min = defaultTo(Number(min), -MAX_SAFE_INTEGER);\n max = defaultTo(Number(max), MAX_SAFE_INTEGER);\n const precisionFactor = getPrecisionFactor(value, step);\n const valueFactor = precisionFix(value, precisionFactor);\n const minFactor = precisionFix(min, precisionFactor);\n const minFactorBase = min === -MAX_SAFE_INTEGER ? 0 : minFactor;\n const maxFactor = precisionFix(max, precisionFactor);\n const stepFactor = precisionFix(step, precisionFactor);\n let beforeStepFactor = getBeforeStepValue(valueFactor, minFactorBase, stepFactor);\n if (beforeStepFactor === valueFactor) {\n return undefined;\n }\n if (beforeStepFactor > maxFactor) {\n beforeStepFactor = getBeforeStepValue(maxFactor, minFactorBase, stepFactor);\n }\n else if (beforeStepFactor < minFactor) {\n beforeStepFactor = minFactor;\n }\n const afterStepFactor = beforeStepFactor + stepFactor;\n const values = [beforeStepFactor / precisionFactor];\n if (afterStepFactor <= maxFactor) {\n values.push(afterStepFactor / precisionFactor);\n }\n return values;\n }\n }\n else if (isMoment(value)) {\n const { hour, minute, second } = step;\n if (second) {\n return getNearStepMoments(value, second, TimeUnit.second);\n }\n if (minute) {\n return getNearStepMoments(value, minute, TimeUnit.minute);\n }\n if (hour) {\n return getNearStepMoments(value, hour, TimeUnit.hour);\n }\n }\n}\nexport function parseNumber(value, precision) {\n if (isNil(precision)) {\n return Number(value);\n }\n return Number(defaultFormatNumber(value, undefined, {\n maximumFractionDigits: precision,\n useGrouping: false,\n }));\n}\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\nexport default class OptGroup extends Component {\n}\nOptGroup.propTypes = {\n label: PropTypes.string,\n};\nOptGroup.__PRO_OPT_GROUP = true;\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\nexport default class Option extends Component {\n}\nOption.propTypes = {\n /**\n * 选项值\n */\n value: PropTypes.any,\n};\nOption.__PRO_OPTION = true;\n","import { Children, isValidElement } from 'react';\nimport DataSet from '../data-set/DataSet';\nimport { DataSetSelection, FieldType } from '../data-set/enum';\nimport isFragment from '../_util/isFragment';\nexport const OTHER_OPTION_PROPS = '__OTHER_OPTION_PROPS__';\nfunction getOptionsFromChildren(elements, data, fields, textField, valueField, disabledField, groups = []) {\n if (elements) {\n const getOption = (child) => {\n if (isValidElement(child)) {\n if (isFragment(child)) {\n const { children } = child.props;\n if (children) {\n Children.forEach(children, getOption);\n }\n }\n else {\n const { type } = child;\n if (type.__PRO_OPT_GROUP) {\n const props = child.props;\n getOptionsFromChildren(props.children, data, fields, textField, valueField, disabledField, groups.concat(props.label || ''));\n }\n else if (type.__PRO_OPTION) {\n const { value, children, disabled, ...rest } = child.props;\n data.push(groups.reduce((obj, group, index) => {\n const name = `group-${index}`;\n obj[name] = group;\n if (!fields.find(field => field.name === name)) {\n fields.push({\n name,\n type: FieldType.reactNode,\n group: groups.length - 1,\n });\n }\n return obj;\n }, {\n [OTHER_OPTION_PROPS]: rest,\n [textField]: children,\n [valueField]: value === undefined && isValidElement(children) ? children : value,\n [disabledField]: disabled,\n }));\n }\n }\n }\n };\n Children.forEach(elements, getOption);\n }\n}\nexport default function normalizeOptions({ textField, valueField, disabledField, multiple, children, }) {\n const data = [];\n const fields = [\n {\n name: textField,\n type: FieldType.reactNode,\n },\n {\n name: valueField,\n },\n {\n name: disabledField,\n type: FieldType.boolean,\n },\n ];\n if (children) {\n getOptionsFromChildren(children, data, fields, textField, valueField, disabledField);\n }\n return new DataSet({\n data,\n fields,\n paging: false,\n selection: multiple ? DataSetSelection.multiple : DataSetSelection.single,\n autoLocateFirst: false,\n });\n}\n","import 'choerodon-ui/lib/style/index.less';\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { hide, show } from '../tooltip/singleton';\nimport Row from '../row';\nimport Col from '../col';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport isOverflow from '../overflow-tip/util';\nconst MultiLine = (props) => {\n const { prefixCls, label, validationMessage, required, validationHidden, tooltip = getTooltip('output'), labelTooltip, children } = props;\n const tooltipRef = useRef(false);\n const handleLabelMouseEnter = useCallback((e) => {\n const { currentTarget } = e;\n if (labelTooltip === TextTooltip.always || (labelTooltip === TextTooltip.overflow && isOverflow(currentTarget))) {\n show(currentTarget, { title: label, placement: 'right' });\n tooltipRef.current = true;\n }\n }, [label, labelTooltip, tooltipRef]);\n const handleFieldMouseEnter = useCallback((e) => {\n const { currentTarget } = e;\n if (validationMessage) {\n show(currentTarget, {\n title: validationMessage,\n placement: 'bottomLeft',\n theme: getTooltipTheme('validation'),\n });\n tooltipRef.current = true;\n }\n else if (tooltip === TextTooltip.always || (tooltip === TextTooltip.overflow && isOverflow(currentTarget))) {\n show(currentTarget, { title: children, placement: 'right' });\n tooltipRef.current = true;\n }\n }, [tooltip, validationMessage, children, tooltipRef]);\n const handleMouseLeave = useCallback(() => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n useEffect(() => () => {\n if (tooltipRef.current) {\n hide();\n tooltipRef.current = false;\n }\n }, [tooltipRef]);\n return (React.createElement(Row, { className: `${prefixCls}-multi` },\n label && (React.createElement(Col, { span: 8, className: classNames(`${prefixCls}-multi-label`, { [`${prefixCls}-multi-label-required`]: required }), onMouseEnter: handleLabelMouseEnter, onMouseLeave: handleMouseLeave }, label)),\n React.createElement(Col, { span: label ? 16 : 24, className: classNames(`${prefixCls}-multi-value`, { [`${prefixCls}-multi-value-invalid`]: !validationHidden }), onMouseEnter: handleFieldMouseEnter, onMouseLeave: handleMouseLeave }, children)));\n};\nMultiLine.displayName = 'MultiLine';\nexport default MultiLine;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { isArrayLike } from 'mobx';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isNil from 'lodash/isNil';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { FormField } from '../field/FormField';\nimport autobind from '../_util/autobind';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport { processFieldValue, renderMultiLine, toRangeValue } from '../field/utils';\nimport isEmpty from '../_util/isEmpty';\nimport isOverflow from '../overflow-tip/util';\nimport { show } from '../tooltip/singleton';\nimport { defaultOutputRenderer } from './utils';\nlet Output = class Output extends FormField {\n isEditable() {\n return false;\n }\n useFocusedClassName() {\n return false;\n }\n handleChange() {\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'name',\n 'renderEmpty',\n ]);\n }\n getOtherPropsExcludeOutput(otherProps) {\n return otherProps;\n }\n getWrapperClassNamesExcludeOutput() {\n return undefined;\n }\n getObservablePropsExcludeOutput() {\n return undefined;\n }\n getValueKey(value) {\n if (isArrayLike(value)) {\n return value.map(this.getValueKey, this).join(',');\n }\n return this.processValue(value);\n }\n processValue(value) {\n if (!isNil(value)) {\n const text = isPlainObject(value) ? value : super.processValue(value);\n const { field } = this;\n return processFieldValue(text, field, {\n getProp: (name) => this.getProp(name),\n getValue: () => this.getValue(),\n lang: this.lang,\n }, true);\n }\n return '';\n }\n defaultRenderer(renderProps) {\n return defaultOutputRenderer(renderProps);\n }\n /**\n * 多行单元格渲染\n */\n renderMultiLine(field) {\n const { name, record, dataSet, prefixCls, props: { renderer }, } = this;\n const { lines, multipleValidateMessageLength } = renderMultiLine({\n name,\n field,\n record,\n dataSet,\n prefixCls,\n renderer,\n renderValidationResult: this.renderValidationResult,\n isValidationMessageHidden: this.isValidationMessageHidden,\n processValue: this.processValue.bind(this),\n tooltip: this.props.tooltip,\n labelTooltip: this.labelTooltip,\n });\n this.multipleValidateMessageLength = multipleValidateMessageLength;\n return lines;\n }\n getRenderedValue() {\n if (this.multiple) {\n return this.renderMultipleValues(true);\n }\n if (this.range) {\n return this.renderRangeValue(toRangeValue(this.getValue(), this.range));\n }\n /**\n * 多行单元格渲染\n */\n const { field } = this;\n if (field && field.get('multiLine')) {\n return this.renderMultiLine(field);\n }\n return this.processRenderer(this.getValue());\n }\n showTooltip(e) {\n if (super.showTooltip(e)) {\n return true;\n }\n const { tooltip = getTooltip('output') } = this.props;\n const { element, field } = this;\n if (element && !(field && field.get('multiLine')) && (tooltip === TextTooltip.always || (tooltip === TextTooltip.overflow && isOverflow(element)))) {\n const title = this.getRenderedValue();\n if (title) {\n show(element, {\n title,\n placement: 'right',\n theme: getTooltipTheme('output'),\n });\n return true;\n }\n }\n return false;\n }\n renderWrapper() {\n const result = this.getRenderedValue();\n const { renderEmpty } = this.props;\n const text = isEmpty(result) || (isArrayLike(result) && !result.length) ? renderEmpty ? renderEmpty() : getConfig('renderEmpty')('Output') : result;\n return React.createElement(\"span\", Object.assign({}, this.getMergedProps()), text);\n }\n};\nOutput.displayName = 'Output';\nOutput.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'output',\n};\n__decorate([\n autobind\n], Output.prototype, \"handleChange\", null);\n__decorate([\n autobind\n], Output.prototype, \"getValueKey\", null);\n__decorate([\n autobind\n], Output.prototype, \"defaultRenderer\", null);\nOutput = __decorate([\n observer\n], Output);\nexport default Output;\n","import Output from './Output';\nexport default Output;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import React from 'react';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { BooleanValue, FieldType } from '../data-set/enum';\nimport Attachment from '../attachment/Attachment';\nimport { FuncType } from '../button/enum';\nimport { defaultRenderer } from '../field/utils';\nexport function defaultOutputRenderer(renderOption) {\n const { value, name, record } = renderOption;\n if (record) {\n const field = record.getField(name);\n if (field) {\n if (field.type === FieldType.boolean) {\n const checkBoxPrefix = getProPrefixCls('checkbox');\n return (React.createElement(\"label\", { className: `${checkBoxPrefix}-wrapper ${checkBoxPrefix}-disabled` },\n React.createElement(\"input\", { disabled: true, className: checkBoxPrefix, type: \"checkbox\", checked: value === field.get(BooleanValue.trueValue) }),\n React.createElement(\"i\", { className: `${checkBoxPrefix}-inner` })));\n }\n if (field.type === FieldType.attachment) {\n return React.createElement(Attachment, { readOnly: true, name: name, viewMode: \"popup\", record: record, funcType: FuncType.link });\n }\n }\n }\n return defaultRenderer(renderOption);\n}\n","import React, { Children, cloneElement, useCallback, useRef } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport noop from 'lodash/noop';\nimport Tooltip from '../tooltip/Tooltip';\nimport utilIsOverflow from './util';\nfunction renderTitle(props) {\n if (props) {\n const { trigger } = props;\n if (trigger) {\n return Children.map(trigger, (item) => cloneElement(item, { ref: null, className: null }));\n }\n }\n}\nconst OverflowTip = (props) => {\n const ref = useRef(null);\n const defaultGetOverflowContainer = useCallback(() => {\n const { current } = ref;\n if (current) {\n return findDOMNode(current);\n }\n }, [ref]);\n const { children, strict, getOverflowContainer = defaultGetOverflowContainer, onHiddenBeforeChange = noop, title = renderTitle, ...rest } = props;\n const isOverFlow = useCallback(() => {\n const element = getOverflowContainer();\n if (element) {\n return utilIsOverflow(element);\n }\n return false;\n }, [getOverflowContainer]);\n const handleHiddenBeforeChange = useCallback((hidden) => {\n if (onHiddenBeforeChange(hidden) === false) {\n return false;\n }\n if (hidden) {\n return true;\n }\n return isOverFlow();\n }, [isOverFlow, onHiddenBeforeChange]);\n return (React.createElement(Tooltip, Object.assign({}, rest, { title: title, onHiddenBeforeChange: strict ? onHiddenBeforeChange : handleHiddenBeforeChange, ref: ref }), children));\n};\nOverflowTip.displayName = 'OverflowTip';\nexport default OverflowTip;\n","import 'choerodon-ui/lib/style/index.less';\n","import measureTextWidth from '../_util/measureTextWidth';\nfunction getContentWidth(element, computedStyle) {\n const { width, boxSizing } = computedStyle;\n if (boxSizing === 'content-box' && width && width !== 'auto') {\n return parseFloat(width);\n }\n const contentWidth = width && width !== 'auto' ? parseFloat(width) : element.offsetWidth;\n const { paddingLeft, paddingRight, borderLeftWidth, borderRightWidth } = computedStyle;\n const pl = paddingLeft ? parseFloat(paddingLeft) : 0;\n const pr = paddingRight ? parseFloat(paddingRight) : 0;\n const bl = borderLeftWidth ? parseFloat(borderLeftWidth) : 0;\n const br = borderRightWidth ? parseFloat(borderRightWidth) : 0;\n return contentWidth - pl - pr - bl - br;\n}\nexport default function isOverflow(element) {\n const { textContent, ownerDocument } = element;\n if (textContent && ownerDocument) {\n const { clientWidth, scrollWidth } = element;\n if (scrollWidth > clientWidth) {\n return true;\n }\n const { defaultView } = ownerDocument;\n if (defaultView) {\n const computedStyle = defaultView.getComputedStyle(element);\n const contentWidth = getContentWidth(element, computedStyle);\n const textWidth = measureTextWidth(textContent, computedStyle);\n return textWidth > contentWidth;\n }\n }\n return false;\n}\n","import React, { PureComponent } from 'react';\nimport Button from '../button/Button';\nimport { ButtonColor, FuncType } from '../button/enum';\nexport default class Pager extends PureComponent {\n constructor() {\n super(...arguments);\n this.handleClick = () => {\n const { page, onClick } = this.props;\n if (onClick) {\n onClick(page);\n }\n };\n }\n render() {\n const { active, renderer, page, type, disabled, className } = this.props;\n return (React.createElement(Button, { className: className, funcType: active ? FuncType.raised : FuncType.flat, onClick: this.handleClick, color: active ? ButtonColor.primary : undefined, disabled: disabled }, renderer(page, type)));\n }\n}\nPager.displayName = 'Pager';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action, computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport isObject from 'lodash/isObject';\nimport defaultTo from 'lodash/defaultTo';\nimport isString from 'lodash/isString';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport ObserverSelect from '../select/Select';\nimport ObserverNumberField from '../number-field/NumberField';\nimport Button from '../button';\nimport autobind from '../_util/autobind';\nimport { $l } from '../locale-context';\nimport Pager from './Pager';\nimport Icon from '../icon';\nimport { QuickJumperPosition, SizeChangerPosition } from './enum';\nimport { ValueChangeAction } from '../text-field/enum';\nimport QuickJumper from './QuickJumper';\nfunction defaultItemRender(page, type) {\n switch (type) {\n case 'first':\n return React.createElement(Icon, { type: \"first_page\" });\n case 'last':\n return React.createElement(Icon, { type: \"last_page\" });\n case 'prev':\n return React.createElement(Icon, { type: \"navigate_before\" });\n case 'next':\n return React.createElement(Icon, { type: \"navigate_next\" });\n case 'jump-prev':\n case 'jump-next':\n return '•••';\n default:\n return page;\n }\n}\nlet Pagination = class Pagination extends DataSetComponent {\n get pageSize() {\n const { dataSet, pageSize } = this.observableProps;\n if (dataSet) {\n return dataSet.pageSize;\n }\n return pageSize;\n }\n get page() {\n const { dataSet, page } = this.observableProps;\n if (dataSet) {\n return dataSet.currentPage;\n }\n return page;\n }\n get total() {\n const { dataSet, total } = this.observableProps;\n if (dataSet) {\n return dataSet.totalCount;\n }\n return total;\n }\n get totalPage() {\n const { dataSet } = this.observableProps;\n const { total, pageSize } = this;\n if (dataSet) {\n return dataSet.totalPage;\n }\n if (total !== undefined && pageSize !== undefined) {\n return Math.ceil(total / pageSize);\n }\n return 1;\n }\n get next() {\n const { total = 0, pageSize, page } = this;\n return page < Math.floor((total - 1) / pageSize) + 1;\n }\n getObservableProps(props, context) {\n const globalPagination = getConfig('pagination');\n const pageSizeOptions = props.pageSizeOptions || (globalPagination && globalPagination.pageSizeOptions) || ['10', '20', '50', '100'];\n const maxPageSize = Math.max(defaultTo('maxPageSize' in props ? props.maxPageSize : (globalPagination && globalPagination.maxPageSize), 100), ...pageSizeOptions);\n return {\n ...super.getObservableProps(props, context),\n page: defaultTo('page' in props ? props.page : globalPagination && globalPagination.page, 1),\n pageSize: defaultTo('pageSize' in props ? props.pageSize : globalPagination && globalPagination.pageSize, 10),\n total: props.total,\n pageSizeOptions,\n pageSizeEditable: 'pageSizeEditable' in props ? props.pageSizeEditable : (globalPagination && globalPagination.pageSizeEditable),\n maxPageSize,\n };\n }\n handlePageSizeBeforeChange(value) {\n if (value < 1 || value > this.observableProps.maxPageSize) {\n return false;\n }\n const { dataSet } = this.props;\n if (dataSet) {\n return dataSet.modifiedCheck();\n }\n return true;\n }\n handlePageSizeChange(value) {\n this.handleChange(this.page, Number(value));\n }\n handleChange(page, pageSize) {\n const { dataSet, onChange } = this.props;\n if (this.pageSize !== pageSize) {\n this.observableProps.pageSize = pageSize;\n this.observableProps.page = 1;\n if (dataSet) {\n dataSet.pageSize = pageSize;\n dataSet.currentPage = 1;\n dataSet.query();\n }\n }\n else {\n this.observableProps.page = page;\n }\n if (onChange) {\n onChange(page, pageSize);\n }\n }\n handlePagerClick(page) {\n this.jumpPage(page);\n }\n getValidValue(value) {\n const { page, totalPage } = this;\n value = Number(value);\n if (isNaN(value)) {\n value = page;\n }\n if (value > totalPage) {\n value = totalPage;\n }\n return value;\n }\n jumpPage(page) {\n const { dataSet } = this.props;\n if (dataSet) {\n dataSet.page(page);\n }\n this.handleChange(page, this.pageSize);\n }\n handleJumpChange(value) {\n const { page, totalPage, props: { showQuickJumper, simple } } = this;\n value = Number(value);\n if (isNaN(value)) {\n value = page;\n }\n if (value > totalPage) {\n value = totalPage;\n }\n if (simple) {\n this.jumpPage(value);\n }\n else if (showQuickJumper) {\n if (isObject(showQuickJumper) && showQuickJumper.goButton) {\n this.pageInput = value;\n }\n else {\n this.jumpPage(value);\n }\n }\n }\n handleJumpGo(e) {\n if (e.keyCode === KeyCode.ENTER || e.type === 'click') {\n const { pageInput } = this;\n if (pageInput) {\n this.jumpPage(pageInput);\n this.pageInput = '';\n }\n }\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'total',\n 'page',\n 'pageSize',\n 'maxPageSize',\n 'pageSizeEditable',\n 'onChange',\n 'pageSizeOptions',\n 'itemRender',\n 'showSizeChanger',\n 'showQuickJumper',\n 'showSizeChangerLabel',\n 'showTotal',\n 'showPager',\n 'sizeChangerPosition',\n 'sizeChangerOptionRenderer',\n 'hideOnSinglePage',\n 'simple',\n 'quickJumperPosition',\n ]);\n }\n getOptions() {\n const { Option } = ObserverSelect;\n return this.observableProps.pageSizeOptions.map(option => (React.createElement(Option, { key: option, value: option }, option)));\n }\n getPager(page, type, active = false, disabledSender) {\n const { prefixCls, props: { itemRender = defaultItemRender, disabled = false }, } = this;\n const disabledValue = disabledSender || disabled;\n const classNamePager = isString(type) ? `${prefixCls}-pager-${type}` : ``;\n return (React.createElement(Pager, { key: type === 'page' ? page : type, page: page, active: active, type: type, onClick: this.handlePagerClick, renderer: itemRender, disabled: disabledValue, className: `${prefixCls}-pager ${classNamePager}` }));\n }\n renderPagers(page) {\n const { totalPage } = this;\n const bufferSize = 1;\n const pagerList = [];\n if (totalPage <= 3 + bufferSize * 2) {\n for (let i = 1; i <= totalPage; i += 1) {\n pagerList.push(this.getPager(i, 'page', page === i));\n }\n }\n else {\n let left = Math.max(1, page - bufferSize);\n let right = Math.min(totalPage, page + bufferSize);\n if (page - 1 <= bufferSize) {\n right = 1 + bufferSize * 2;\n }\n if (totalPage - page <= bufferSize) {\n left = totalPage - bufferSize * 2;\n }\n for (let i = left; i <= right; i++) {\n pagerList.push(this.getPager(i, 'page', page === i));\n }\n if (page - 1 >= bufferSize * 2 && page !== 1 + 2) {\n pagerList.unshift(this.getPager(Math.max(page - 5, 1), 'jump-prev'));\n }\n if (totalPage - page >= bufferSize * 2 && page !== totalPage - 2) {\n pagerList.push(this.getPager(Math.min(page + 5, totalPage), 'jump-next'));\n }\n if (left !== 1) {\n pagerList.unshift(this.getPager(1, 'page', page === 1));\n }\n if (totalPage > 1 && right !== totalPage) {\n pagerList.push(this.getPager(totalPage, 'page', page === totalPage));\n }\n }\n return pagerList;\n }\n renderSizeChange(pageSize) {\n const { showSizeChangerLabel, showSizeChanger, sizeChangerOptionRenderer, disabled, } = this.props;\n if (showSizeChanger) {\n const { pageSizeEditable } = this.observableProps;\n const { prefixCls } = this;\n const select = (React.createElement(ObserverSelect, { isFlat: true, searchable: false, key: \"size-select\", className: classNames(`${prefixCls}-size-changer`, { [`${prefixCls}-size-editable`]: pageSizeEditable }), disabled: disabled, onBeforeChange: this.handlePageSizeBeforeChange, onChange: this.handlePageSizeChange, value: String(pageSize), clearButton: false, renderer: sizeChangerOptionRenderer, optionRenderer: sizeChangerOptionRenderer, combo: pageSizeEditable, restrict: \"0-9\", size: Size.small }, this.getOptions()));\n return showSizeChangerLabel\n ? [React.createElement(\"span\", { className: `${prefixCls}-perpage`, key: \"size-info\" }, $l('Pagination', 'records_per_page')), select]\n : select;\n }\n }\n renderTotal(pageSize, page, total) {\n const { prefixCls, props: { showTotal } } = this;\n const from = pageSize * (page - 1) + 1;\n const to = Math.min(pageSize * page, total);\n if (typeof showTotal === 'function') {\n return (React.createElement(\"span\", { key: \"total\", className: `${prefixCls}-page-info` }, showTotal(total, [from, to])));\n }\n return (React.createElement(\"span\", { key: \"total\", className: `${prefixCls}-page-info` },\n from,\n \" - \",\n to,\n \" / \",\n total));\n }\n /**\n * 渲染快速跳至\n */\n renderQuickGo() {\n const { prefixCls, page } = this;\n const { disabled, showQuickJumper } = this.props;\n let gotoButton = null;\n if (isObject(showQuickJumper) && showQuickJumper.goButton) {\n const { goButton } = showQuickJumper;\n gotoButton =\n typeof goButton === 'boolean' ? (React.createElement(Button, { className: `${prefixCls}-go-button`, onClick: this.handleJumpGo, onKeyUp: this.handleJumpGo, disabled: disabled, size: Size.small }, $l('Pagination', 'jump_to_confirm'))) : (React.createElement(\"span\", { className: `${prefixCls}-go-button`, onClick: this.handleJumpGo, onKeyUp: this.handleJumpGo }, goButton));\n }\n return (React.createElement(QuickJumper, { prefixCls: prefixCls, value: this.pageInput || page, onChange: this.handleJumpChange, disabled: disabled, gotoButton: gotoButton }));\n }\n render() {\n const { total, pageSize, page, props: { hideOnSinglePage, simple }, prefixCls, } = this;\n if (total === undefined || pageSize === undefined || page === undefined) {\n return null;\n }\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n const { totalPage, props: { children, sizeChangerPosition, showTotal, showPager, showQuickJumper, quickJumperPosition }, } = this;\n const sizeChanger = this.renderSizeChange(pageSize);\n if (simple) {\n return (React.createElement(\"nav\", Object.assign({}, this.getMergedProps()),\n this.getPager(page - 1, 'prev', false, page === 1),\n React.createElement(\"li\", { className: `${prefixCls}-simple-pager` },\n React.createElement(ObserverNumberField, { value: page, min: 1, onChange: this.handleJumpChange, valueChangeAction: ValueChangeAction.input, wait: 200 }),\n React.createElement(\"span\", null, \"\\uFF0F\"),\n totalPage),\n this.getPager(page + 1, 'next', false, !this.next)));\n }\n return (React.createElement(\"nav\", Object.assign({}, this.getMergedProps()),\n children,\n sizeChangerPosition === SizeChangerPosition.left && sizeChanger,\n showQuickJumper && quickJumperPosition === QuickJumperPosition.left && this.renderQuickGo(),\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, !this.next),\n this.getPager(totalPage, 'last', false, !this.next),\n sizeChangerPosition === SizeChangerPosition.right && sizeChanger,\n showQuickJumper && quickJumperPosition === QuickJumperPosition.right && this.renderQuickGo()));\n }\n};\nPagination.displayName = 'Pagination';\nPagination.propTypes = {\n total: PropTypes.number,\n page: PropTypes.number,\n pageSize: PropTypes.number,\n onChange: PropTypes.func,\n itemRender: PropTypes.func,\n sizeChangerPosition: PropTypes.oneOf([SizeChangerPosition.left, SizeChangerPosition.right]),\n sizeChangerOptionRenderer: PropTypes.func,\n showSizeChanger: PropTypes.bool,\n showQuickJumper: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n showSizeChangerLabel: PropTypes.bool,\n showTotal: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n showPager: PropTypes.bool,\n simple: PropTypes.bool,\n quickJumperPosition: PropTypes.oneOf([QuickJumperPosition.left, QuickJumperPosition.right]),\n ...DataSetComponent.propTypes,\n};\nPagination.defaultProps = {\n suffixCls: 'pagination',\n sizeChangerPosition: SizeChangerPosition.left,\n quickJumperPosition: QuickJumperPosition.right,\n sizeChangerOptionRenderer: ({ text }) => text,\n hideOnSinglePage: false,\n showSizeChanger: true,\n showQuickJumper: false,\n showSizeChangerLabel: true,\n showTotal: true,\n simple: false,\n};\n__decorate([\n observable\n], Pagination.prototype, \"pageInput\", void 0);\n__decorate([\n computed\n], Pagination.prototype, \"pageSize\", null);\n__decorate([\n computed\n], Pagination.prototype, \"page\", null);\n__decorate([\n computed\n], Pagination.prototype, \"total\", null);\n__decorate([\n computed\n], Pagination.prototype, \"totalPage\", null);\n__decorate([\n computed\n], Pagination.prototype, \"next\", null);\n__decorate([\n autobind\n], Pagination.prototype, \"handlePageSizeBeforeChange\", null);\n__decorate([\n autobind\n], Pagination.prototype, \"handlePageSizeChange\", null);\n__decorate([\n action\n], Pagination.prototype, \"handleChange\", null);\n__decorate([\n autobind\n], Pagination.prototype, \"handlePagerClick\", null);\n__decorate([\n autobind\n], Pagination.prototype, \"handleJumpChange\", null);\n__decorate([\n autobind,\n action\n], Pagination.prototype, \"handleJumpGo\", null);\n__decorate([\n action\n], Pagination.prototype, \"getOptions\", null);\nPagination = __decorate([\n observer\n], Pagination);\nexport default Pagination;\n","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport { $l } from '../locale-context';\nimport ObserverNumberField from '../number-field/NumberField';\nconst QuickJumper = function (props) {\n const { prefixCls, value, onChange, disabled, gotoButton } = props;\n const [focused, setFocused] = useState(false);\n const handleFocus = useCallback(() => setFocused(true), []);\n const handleBlur = useCallback(() => setFocused(false), []);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: `${prefixCls}-quick-jumper` }, $l('Pagination', 'jump_to')),\n React.createElement(\"span\", { className: classNames(`${prefixCls}-quick-jumper-input`, { [`${prefixCls}-quick-jumper-input-focused`]: focused }) },\n React.createElement(ObserverNumberField, { value: value, disabled: disabled, min: 1, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur, size: Size.small, isFlat: true, border: false }),\n $l('Pagination', 'page')),\n gotoButton));\n};\nQuickJumper.displayName = 'QuickJumper';\nexport default QuickJumper;\n","export var SizeChangerPosition;\n(function (SizeChangerPosition) {\n SizeChangerPosition[\"left\"] = \"left\";\n SizeChangerPosition[\"right\"] = \"right\";\n})(SizeChangerPosition || (SizeChangerPosition = {}));\nexport var QuickJumperPosition;\n(function (QuickJumperPosition) {\n QuickJumperPosition[\"left\"] = \"left\";\n QuickJumperPosition[\"right\"] = \"right\";\n})(QuickJumperPosition || (QuickJumperPosition = {}));\n","import Pagination from './Pagination';\nexport default Pagination;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../button/style';\nimport '../../select/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { action, observable } from 'mobx';\nimport { TextField } from '../text-field/TextField';\nimport autobind from '../_util/autobind';\nimport Icon from '../icon';\n// let selectionStart;\n// let selectionEnd;\nlet Password = class Password extends TextField {\n constructor() {\n super(...arguments);\n this.type = 'password';\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'reveal',\n ]);\n }\n getOtherPrevNode() {\n return React.createElement(\"input\", { tabIndex: -1, className: `${this.prefixCls}-fix-autofill` });\n }\n getInnerSpanButton() {\n const { reveal } = this.props;\n if (reveal && !this.disabled) {\n return this.wrapperInnerSpanButton(React.createElement(Icon, { type: this.reveal ? 'visibility' : 'visibility_off', onClick: this.handleToggleReveal }), {\n style: { right: this.lengthInfoWidth },\n });\n }\n }\n handleToggleReveal(e) {\n e.preventDefault();\n if (!this.isFocused) {\n this.focus();\n }\n const target = this.element;\n if (target) {\n if (target.type === 'password') {\n this.doReveal(target);\n }\n else {\n this.resetReveal(target);\n }\n }\n }\n doReveal(target) {\n this.selectionEnd = target.selectionEnd;\n this.selectionStart = target.selectionStart;\n target.type = 'text';\n this.type = target.type;\n this.reveal = true;\n }\n resetReveal(target) {\n const { selectionStart, selectionEnd } = this;\n target.type = 'password';\n this.type = target.type;\n if (typeof selectionStart !== 'undefined' && typeof selectionEnd !== 'undefined') {\n target.setSelectionRange(selectionStart, selectionEnd);\n this.selectionStart = undefined;\n this.selectionEnd = undefined;\n }\n this.reveal = false;\n }\n};\nPassword.displayName = 'Password';\nPassword.propTypes = {\n /**\n * 是否可揭示\n * @default true\n */\n reveal: PropTypes.bool,\n ...TextField.propTypes,\n};\nPassword.defaultProps = {\n ...TextField.defaultProps,\n suffixCls: 'password',\n reveal: true,\n};\n__decorate([\n observable\n], Password.prototype, \"reveal\", void 0);\n__decorate([\n autobind\n], Password.prototype, \"handleToggleReveal\", null);\n__decorate([\n action\n], Password.prototype, \"doReveal\", null);\n__decorate([\n action\n], Password.prototype, \"resetReveal\", null);\nPassword = __decorate([\n observer\n], Password);\nexport default Password;\n","import Password from './Password';\nexport default Password;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import * as React from 'react';\nimport { runInAction } from 'mobx';\nimport PropTypes from 'prop-types';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport classNames from 'classnames';\nimport { LAYER_WIDTH } from './constants';\nimport { isNullOrUndefined, defaultClassPrefix, getUnhandledProps, prefix } from './utils';\nimport TableContext from './TableContext';\nimport Column from './Column';\nexport const propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n dataKey: PropTypes.string,\n isHeaderCell: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n left: PropTypes.number,\n headerHeight: PropTypes.number,\n style: PropTypes.object,\n firstColumn: PropTypes.bool,\n lastColumn: PropTypes.bool,\n hasChildren: PropTypes.bool,\n children: PropTypes.any,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rowIndex: PropTypes.number,\n rowData: PropTypes.object,\n depth: PropTypes.number,\n onTreeToggle: PropTypes.func,\n renderTreeToggle: PropTypes.func,\n renderCell: PropTypes.func,\n wordWrap: PropTypes.bool,\n hidden: PropTypes.bool,\n treeCol: PropTypes.bool,\n expanded: PropTypes.bool,\n groupHeader: PropTypes.node,\n groupCount: PropTypes.number,\n isDragging: PropTypes.bool,\n};\nclass Cell extends React.PureComponent {\n constructor() {\n super(...arguments);\n // @ts-ignore\n this.addPrefix = (name) => prefix(this.props.classPrefix)(name);\n this.handleExpandClick = (event) => {\n const { rowKey, rowIndex, rowData } = this.props;\n this.props.onTreeToggle?.(rowKey, rowIndex, rowData, event);\n };\n }\n isTreeCol() {\n const { treeCol, firstColumn } = this.props;\n const { hasCustomTreeCol, isTree } = this.context;\n if (treeCol) {\n return true;\n }\n if (!hasCustomTreeCol && firstColumn && isTree) {\n return true;\n }\n return false;\n }\n getHeight() {\n const { height, rowData } = this.props;\n // @ts-ignore\n return typeof height === 'function' ? height(rowData) : height;\n }\n renderTreeNodeExpandIcon() {\n const { rowData, renderTreeToggle, hasChildren, expanded } = this.props;\n const expandButton = React.createElement(\"i\", { className: this.addPrefix('expand-icon icon') });\n if (this.isTreeCol() && hasChildren) {\n return (React.createElement(\"span\", { role: \"button\", tabIndex: -1, className: this.addPrefix('expand-wrapper'), onClick: this.handleExpandClick }, renderTreeToggle ? renderTreeToggle(expandButton, rowData, expanded) : expandButton));\n }\n return null;\n }\n render() {\n const { width, left, style, className, firstColumn, lastColumn, isHeaderCell, headerHeight, align, children, rowData, dataKey, rowIndex, renderCell, hidden, wordWrap, classPrefix, depth, verticalAlign, expanded, onClick, // Fix sortColumn not getting fired in Gatsby production build\n onCell, rowSpan, fixed, ...rest } = this.props;\n const { tableStore } = this.context;\n const cellExternalProps = (typeof onCell === 'function'\n ? onCell({\n rowData,\n dataKey,\n rowIndex,\n })\n : {}) || {};\n const cellHidden = hidden || cellExternalProps.hidden;\n const cellRowSpan = rowSpan || cellExternalProps.rowSpan;\n if (cellHidden || cellRowSpan === 0) {\n if (!isHeaderCell && rowData && cellRowSpan === 0 && fixed) {\n runInAction(() => {\n tableStore.rowZIndex.push(rowIndex);\n });\n }\n return null;\n }\n const classes = classNames(classPrefix, className, cellExternalProps.className, {\n [this.addPrefix('expanded')]: expanded && this.isTreeCol(),\n [this.addPrefix('first')]: firstColumn,\n [this.addPrefix('last')]: lastColumn,\n });\n const { rtl } = this.context;\n let nextHeight = isHeaderCell ? headerHeight : this.getHeight();\n if (cellExternalProps.rowSpan) {\n nextHeight = cellExternalProps.rowSpan * nextHeight;\n }\n const styles = {\n ...style,\n ...cellExternalProps.style,\n width,\n height: nextHeight,\n zIndex: depth,\n [rtl ? 'right' : 'left']: left,\n };\n //By moving style from cell content to Cell, it breaks UI behaviours.\n // for example, check box are not showing in the middle of the cell anymore.\n const contentStyles = {\n width,\n height: nextHeight,\n textAlign: align,\n [rtl ? 'paddingRight' : 'paddingLeft']: this.isTreeCol() ? depth * LAYER_WIDTH + 10 : null\n };\n if (verticalAlign) {\n contentStyles.display = 'table-cell';\n contentStyles.verticalAlign = verticalAlign;\n }\n // @ts-ignore\n let cellContent = isNullOrUndefined(children) && rowData ? rowData[dataKey] : children;\n if (typeof children === 'function') {\n const getChildren = children;\n cellContent = getChildren(rowData, rowIndex);\n }\n // fix unable to get propTypes after gatsby is compiled\n const unhandledProps = getUnhandledProps(propTypes, getUnhandledProps(Column.propTypes, rest));\n let cell = renderCell ? renderCell(cellContent) : cellContent;\n const { searchText, highlightRowIndexs } = tableStore;\n if (isNumber(cell))\n cell = String(cell);\n if (isString(cell) && searchText) {\n const index = cell.indexOf(searchText);\n const beforeStr = cell.substr(0, index);\n const afterStr = cell.substr(index + searchText.length);\n if (index > -1) {\n highlightRowIndexs.push(rowIndex);\n }\n cell = index > -1 ? (React.createElement(\"span\", null,\n beforeStr,\n React.createElement(\"span\", { className: this.addPrefix('letter-highlight') }, searchText),\n afterStr)) : React.createElement(\"span\", null, cell);\n }\n const content = wordWrap ? (React.createElement(\"div\", { className: this.addPrefix('wrap') },\n this.renderTreeNodeExpandIcon(),\n cell)) : (React.createElement(React.Fragment, null,\n this.renderTreeNodeExpandIcon(),\n cell));\n return (React.createElement(\"div\", Object.assign({ role: isHeaderCell ? 'columnheader' : 'gridcell' }, unhandledProps, { onClick: onClick, className: classes, style: styles }),\n React.createElement(\"div\", { className: this.addPrefix('content'), style: contentStyles }, content)));\n }\n}\nCell.contextType = TableContext;\nCell.propTypes = propTypes;\nCell.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-cell'),\n headerHeight: 36,\n depth: 0,\n height: 36,\n width: 0,\n left: 0,\n};\nexport default Cell;\n","// @ts-nocheck\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { defaultClassPrefix, getUnhandledProps, prefix } from './utils';\nimport TableContext from './TableContext';\nconst propTypes = {\n fixed: PropTypes.oneOf(['left', 'right']),\n width: PropTypes.number,\n height: PropTypes.number,\n left: PropTypes.number,\n style: PropTypes.object,\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n rowDraggable: PropTypes.bool,\n snapshot: PropTypes.object,\n provided: PropTypes.object,\n};\nclass CellGroup extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.addPrefix = (name) => prefix(this.props.classPrefix)(name);\n }\n render() {\n const { fixed, width, left, height, style, classPrefix, className, children, rowDraggable, provided, snapshot, ...rest } = this.props;\n const classes = classNames(classPrefix, className, {\n [this.addPrefix(`fixed-${fixed || ''}`)]: fixed,\n [this.addPrefix('scroll')]: !fixed,\n });\n const styles = {\n width,\n height,\n ...style,\n };\n const unhandledProps = getUnhandledProps(propTypes, rest);\n let childArr = [];\n if (rowDraggable) {\n React.Children.forEach(children, child => {\n childArr.push(React.cloneElement(child, {\n provided,\n isDragging: snapshot ? snapshot.isDragging : false,\n }));\n });\n }\n const cloneChildren = rowDraggable ? childArr : children;\n return (React.createElement(TableContext.Consumer, null, ({ translateDOMPositionXY }) => {\n translateDOMPositionXY?.(styles, left, 0);\n return (React.createElement(\"div\", Object.assign({}, unhandledProps, { className: classes, style: styles }), cloneChildren));\n }));\n }\n}\nCellGroup.propTypes = propTypes;\nCellGroup.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-cell-group'),\n};\nexport default CellGroup;\n","import PropTypes from 'prop-types';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_props) {\n return null;\n}\nColumn.defaultProps = {\n width: 100,\n hideable: true,\n hidden: false,\n fixed: false,\n sortable: false,\n};\nColumn.propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n width: PropTypes.number,\n fixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n flexGrow: PropTypes.number,\n minWidth: PropTypes.number,\n colSpan: PropTypes.number,\n sort: PropTypes.number,\n treeCol: PropTypes.bool,\n hidden: PropTypes.bool,\n hideable: PropTypes.bool,\n titleEditable: PropTypes.bool,\n onResize: PropTypes.func,\n render: PropTypes.func,\n dataIndex: PropTypes.string,\n};\nColumn.__PFM_TABLE_COLUMN = true;\nexport default Column;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { defaultClassPrefix, prefix } from './utils';\nconst ColumnGroup = React.forwardRef((props, ref) => {\n const { header, className, children, classPrefix, headerHeight = 80, verticalAlign, width, ...rest } = props;\n const height = headerHeight / 2;\n const styles = {\n height,\n width,\n };\n const contentStyles = { ...styles, verticalAlign };\n const addPrefix = (name) => prefix(classPrefix)(name);\n return (React.createElement(\"div\", Object.assign({ ref: ref, className: classNames(classPrefix, className) }, rest),\n React.createElement(\"div\", { className: addPrefix('header'), style: styles },\n React.createElement(\"div\", { className: addPrefix('header-content'), style: contentStyles }, header)),\n React.Children.map(children, (node) => {\n const nodeStyles = { height, ...node.props?.style, top: styles.height };\n return React.cloneElement(node, {\n className: addPrefix('cell'),\n style: nodeStyles,\n headerHeight: height,\n verticalAlign,\n children: React.createElement(\"span\", { className: addPrefix('cell-content') }, node.props.children)\n });\n })));\n});\nColumnGroup.displayName = 'ColumnGroup';\nColumnGroup.__PRO_TABLE_COLUMN_GROUP = true;\nColumnGroup.defaultProps = {\n headerHeight: 80,\n classPrefix: defaultClassPrefix('performance-table-column-group'),\n};\nColumnGroup.propTypes = {\n header: PropTypes.node,\n classPrefix: PropTypes.string,\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n};\nexport default ColumnGroup;\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport clamp from 'lodash/clamp';\nimport { DOMMouseMoveTracker } from 'dom-lib';\nimport { defaultClassPrefix, getUnhandledProps } from './utils';\nimport { addEvent, removeEvent } from './utils/domFns';\nimport TableContext from './TableContext';\nimport { RESIZE_MIN_WIDTH } from './constants';\nconst propTypes = {\n height: PropTypes.number,\n defaultColumnWidth: PropTypes.number,\n columnLeft: PropTypes.number,\n columnFixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n minWidth: PropTypes.number,\n style: PropTypes.object,\n onColumnResizeStart: PropTypes.func,\n onColumnResizeEnd: PropTypes.func,\n onColumnResizeMove: PropTypes.func,\n};\nclass ColumnResizeHandler extends React.Component {\n constructor(props) {\n super(props);\n this.columnWidth = 0;\n this.cursorDelta = 0;\n this.mounted = false;\n this.deltaX = 0;\n this.touchX = 0;\n this.handleDragStart = (e) => {\n if (e.touches) {\n this.dragging = true;\n this.cursorDelta = 0;\n const { clientX, clientY } = e.touches[0];\n const client = {\n clientX,\n clientY,\n };\n this.touchX = clientX;\n this.props.onColumnResizeStart?.(client);\n }\n const thisNode = this.findDOMNode();\n const { ownerDocument } = thisNode;\n if (e.type === 'touchstart')\n e.preventDefault();\n if (!this.mounted)\n return;\n addEvent(ownerDocument, 'touchmove', this.handleDrag);\n addEvent(ownerDocument, 'touchend', this.handleDragStop);\n };\n this.handleDrag = (event) => {\n if (event.touches) {\n const x = event.touches[0].clientX;\n this.deltaX = x - this.touchX;\n this.touchX = x;\n this.onMove(this.deltaX);\n }\n };\n this.handleDragStop = () => {\n if (!this.dragging)\n return;\n this.dragging = false;\n this.props.onColumnResizeEnd?.(this.columnWidth, this.cursorDelta);\n };\n this.onMove = (deltaX) => {\n if (!this.isKeyDown && !this.dragging) {\n return;\n }\n const { onColumnResizeMove, defaultColumnWidth, columnLeft, columnFixed } = this.props;\n const { rtl } = this.context;\n this.cursorDelta += deltaX;\n this.columnWidth = clamp(\n // @ts-ignore\n defaultColumnWidth + (rtl ? -this.cursorDelta : this.cursorDelta), this.props.minWidth ? Math.max(this.props.minWidth, RESIZE_MIN_WIDTH) : RESIZE_MIN_WIDTH, 20000);\n onColumnResizeMove?.(this.columnWidth, columnLeft, columnFixed);\n };\n this.onColumnResizeEnd = () => {\n this.isKeyDown = false;\n this.props.onColumnResizeEnd?.(this.columnWidth, this.cursorDelta);\n this.mouseMoveTracker?.releaseMouseMoves?.();\n this.mouseMoveTracker = null;\n };\n this.onColumnResizeMouseDown = (event) => {\n this.mouseMoveTracker = this.getMouseMoveTracker();\n this.mouseMoveTracker.captureMouseMoves(event);\n this.isKeyDown = true;\n this.cursorDelta = 0;\n const client = {\n clientX: event.clientX,\n clientY: event.clientY,\n preventDefault: Function(),\n };\n this.props.onColumnResizeStart?.(client);\n };\n this.columnWidth = props.defaultColumnWidth || 0;\n this.handleRef = React.createRef();\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n addEvent(thisNode, 'touchstart', this.handleDragStart, { passive: false });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n if (this.mouseMoveTracker) {\n this.mouseMoveTracker.releaseMouseMoves();\n this.mouseMoveTracker = null;\n }\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const { ownerDocument } = thisNode;\n removeEvent(ownerDocument, 'touchmove', this.handleDrag);\n removeEvent(ownerDocument, 'touchend', this.handleDragStop);\n removeEvent(thisNode, 'touchstart', this.handleDragStart, { passive: false });\n }\n }\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() {\n return this.handleRef?.current || ReactDOM.findDOMNode(this);\n }\n getMouseMoveTracker() {\n return (this.mouseMoveTracker ||\n new DOMMouseMoveTracker(this.onMove, this.onColumnResizeEnd, document.body));\n }\n render() {\n const { columnLeft = 0, classPrefix, height, className, style, columnFixed, ...rest } = this.props;\n if (columnFixed === 'right') {\n return null;\n }\n const { rtl } = this.context;\n const styles = {\n [rtl ? 'right' : 'left']: this.columnWidth + columnLeft - 2,\n height,\n ...style,\n };\n const classes = classNames(classPrefix, className);\n const unhandled = getUnhandledProps(propTypes, rest);\n return (React.createElement(\"div\", Object.assign({}, unhandled, { ref: this.handleRef, className: classes, style: styles, onMouseDown: this.onColumnResizeMouseDown, onTouchEnd: this.handleDragStop, role: \"button\", tabIndex: -1 })));\n }\n}\nColumnResizeHandler.contextType = TableContext;\nColumnResizeHandler.propTypes = propTypes;\nColumnResizeHandler.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-column-resize-spanner'),\n};\nexport default ColumnResizeHandler;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ColumnResizeHandler from './ColumnResizeHandler';\nimport { isNullOrUndefined, getUnhandledProps, defaultClassPrefix, prefix } from './utils';\nimport Cell from './Cell';\nimport TableContext from './TableContext';\nconst propTypes = {\n index: PropTypes.number,\n sortColumn: PropTypes.string,\n dataIndex: PropTypes.string,\n sortType: PropTypes.oneOf(['desc', 'asc']),\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n minWidth: PropTypes.number,\n onColumnResizeStart: PropTypes.func,\n onColumnResizeEnd: PropTypes.func,\n onResize: PropTypes.func,\n onColumnResizeMove: PropTypes.func,\n onSortColumn: PropTypes.func,\n flexGrow: PropTypes.number,\n fixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n children: PropTypes.node\n};\nclass HeaderCell extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleColumnResizeStart = () => {\n const { left, fixed, onColumnResizeStart } = this.props;\n onColumnResizeStart?.(this.state.columnWidth, left, !!fixed);\n };\n this.handleColumnResizeEnd = (columnWidth, cursorDelta) => {\n const { dataKey, index, onColumnResizeEnd, onResize } = this.props;\n this.setState({ columnWidth });\n onColumnResizeEnd?.(columnWidth, cursorDelta, dataKey, index);\n onResize?.(columnWidth, dataKey);\n };\n this.handleClick = () => {\n if (this.props.sortable) {\n this.props.onSortColumn?.(this.props.dataKey);\n }\n };\n // @ts-ignore\n this.addPrefix = (name) => prefix(this.props.classPrefix)(name);\n this.state = {\n width: props.width,\n flexGrow: props.flexGrow,\n columnWidth: isNullOrUndefined(props.flexGrow) ? props.width : 0,\n };\n }\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.width || nextProps.flexGrow !== prevState.flexGrow) {\n return {\n width: nextProps.width,\n flexGrow: nextProps.flexGrow,\n columnWidth: isNullOrUndefined(nextProps.flexGrow) ? nextProps.width : 0,\n };\n }\n return null;\n }\n renderResizeSpanner() {\n const { resizable, left, onColumnResizeMove, fixed, headerHeight, minWidth, groupCount, children } = this.props;\n const { columnWidth } = this.state;\n if (!resizable) {\n return null;\n }\n let defaultColumnWidth = columnWidth;\n // 处理组合列第一列拖拽柄定位问题\n if (groupCount && groupCount > 1) {\n defaultColumnWidth = children?.props.children[0].props.width;\n }\n return (React.createElement(ColumnResizeHandler, { defaultColumnWidth: defaultColumnWidth, key: columnWidth, columnLeft: left, columnFixed: fixed, height: headerHeight ? headerHeight - 1 : undefined, minWidth: minWidth, onColumnResizeMove: onColumnResizeMove, onColumnResizeStart: this.handleColumnResizeStart, onColumnResizeEnd: this.handleColumnResizeEnd }));\n }\n renderSortColumn() {\n const { sortable, sortColumn, sortType = '', dataKey, groupHeader } = this.props;\n if (sortable && !groupHeader) {\n const iconClasses = classNames(this.addPrefix('icon-sort icon'), {\n [this.addPrefix(`icon-sort-${sortType}`)]: sortColumn === dataKey,\n });\n return (React.createElement(\"span\", { className: this.addPrefix('sort-wrapper') },\n React.createElement(\"i\", { className: iconClasses })));\n }\n return null;\n }\n render() {\n const { className, width, dataKey, headerHeight, children, left, sortable, classPrefix, sortColumn, sortType, groupHeader, ...rest } = this.props;\n const classes = classNames(classPrefix, className, {\n [this.addPrefix('sortable')]: sortable,\n });\n const unhandledProps = getUnhandledProps(propTypes, rest);\n let ariaSort;\n if (sortColumn === dataKey) {\n ariaSort = 'other';\n if (sortType === 'asc') {\n ariaSort = 'ascending';\n }\n else if (sortType === 'desc') {\n ariaSort = 'descending';\n }\n }\n return (React.createElement(\"div\", { className: classes },\n React.createElement(Cell, Object.assign({ \"aria-sort\": ariaSort }, unhandledProps, { width: width, dataKey: dataKey, left: left, headerHeight: headerHeight, isHeaderCell: true, onClick: !groupHeader ? this.handleClick : null }),\n children,\n this.renderSortColumn()),\n this.renderResizeSpanner()));\n }\n}\nHeaderCell.propTypes = propTypes;\nHeaderCell.contextType = TableContext;\nHeaderCell.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-cell-header'),\n};\nexport default HeaderCell;\n","// @ts-nocheck\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { defaultClassPrefix, getUnhandledProps, prefix } from './utils';\nimport TableContext from './TableContext';\nconst propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n headerHeight: PropTypes.number,\n top: PropTypes.number,\n isHeaderRow: PropTypes.bool,\n rowDraggable: PropTypes.bool,\n rowRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n style: PropTypes.object,\n provided: PropTypes.object,\n snapshot: PropTypes.object,\n};\nclass Row extends React.PureComponent {\n render() {\n const { \n // todo\n // dragColumnAlign,\n className, width, height, top, style, isHeaderRow, headerHeight, rowRef, classPrefix, children, rowDraggable, provided, snapshot, ...rest } = this.props;\n const addPrefix = prefix(classPrefix);\n const classes = classNames(classPrefix, className, {\n [addPrefix('header')]: isHeaderRow,\n });\n let styles = {\n minWidth: width,\n height: isHeaderRow ? headerHeight : height,\n ...style,\n };\n const unhandledProps = getUnhandledProps(propTypes, rest);\n return (React.createElement(TableContext.Consumer, null, ({ translateDOMPositionXY }) => {\n translateDOMPositionXY?.(styles, 0, top);\n const providedProps = {};\n let transform = styles.transform;\n if (rowDraggable && provided) {\n let regex = new RegExp('translate\\\\((.*?)px, (.*?)px\\\\)');\n let regex3d = new RegExp('translate3d\\\\((.*?)px,(.*?)px,(.*?)\\\\)');\n // the transform property of parent style gotten through reference and passed in as a prop\n let parentValues = regex3d.exec(styles.transform || '');\n let childValues = regex.exec(provided.draggableProps.style.transform || '');\n // if both the parent (the nested list) and the child (item beeing dragged) has transform values, recalculate the child items transform to account for position fixed not working\n if (childValues != null && parentValues != null) {\n let x = (parseFloat(childValues[1], 10));\n let y = (parseFloat(childValues[2], 10));\n let p_x = (parseFloat(parentValues[1], 10));\n let p_y = (parseFloat(parentValues[2], 10));\n let p_z = (parseFloat(parentValues[3], 10));\n transform = `translate3d(${x + p_x}px, ${y + p_y}px, ${p_z}px)`;\n }\n Object.assign(providedProps, provided.draggableProps, provided.dragHandleProps);\n styles = {\n ...styles,\n top: 'auto !important',\n left: 'auto !important',\n cursor: 'move',\n transform,\n zIndex: snapshot.isDragging ? 999 : 1,\n };\n // if (!dragColumnAlign) {\n // }\n }\n return React.createElement(\"div\", Object.assign({}, providedProps, { role: \"row\" }, unhandledProps, { ref: rowRef, className: classes, style: styles }), children);\n }));\n }\n}\nRow.propTypes = propTypes;\nRow.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-row'),\n height: 46,\n headerHeight: 40,\n};\nexport default Row;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { DOMMouseMoveTracker, addStyle, getOffset } from 'dom-lib';\nimport isNumber from 'lodash/isNumber';\nimport Icon from 'choerodon-ui/lib/icon';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { SCROLLBAR_MIN_WIDTH } from './constants';\nimport { defaultClassPrefix, getUnhandledProps, prefix } from './utils';\nimport TableContext from './TableContext';\nconst propTypes = {\n tableId: PropTypes.string,\n vertical: PropTypes.bool,\n length: PropTypes.number,\n scrollLength: PropTypes.number,\n scrollBarOffset: PropTypes.number,\n clickScrollLength: PropTypes.object,\n showScrollArrow: PropTypes.bool,\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n onScroll: PropTypes.func,\n onMouseDown: PropTypes.func,\n};\nclass Scrollbar extends React.PureComponent {\n constructor(props) {\n super(props);\n this.scrollOffset = 0;\n this.mouseMoveTracker = null;\n this.handleMouseDown = (event) => {\n this.mouseMoveTracker = this.getMouseMoveTracker();\n // @ts-ignore\n this.mouseMoveTracker?.captureMouseMoves(event);\n this.setState({ handlePressed: true });\n this.props.onMouseDown?.(event);\n };\n this.handleDragEnd = () => {\n this.releaseMouseMoves();\n this.setState({ handlePressed: false });\n };\n this.handleDragMove = (deltaX, deltaY, event) => {\n const { vertical } = this.props;\n // @ts-ignore\n if (!this.mouseMoveTracker || !this.mouseMoveTracker.isDragging()) {\n return;\n }\n if (event?.buttons === 0 || window?.event?.['buttons'] === 0) {\n this.releaseMouseMoves();\n return;\n }\n this.handleScroll(vertical ? deltaY : deltaX, event);\n };\n /**\n * 点击滚动条,然后滚动到指定位置\n */\n this.handleClick = (event) => {\n if (this.handleRef.current && this.handleRef.current?.contains(event.target)) {\n return;\n }\n const { vertical, length, scrollLength } = this.props;\n const { barOffset } = this.state;\n const offset = vertical ? event.pageY - barOffset.top : event.pageX - barOffset.left;\n const handleWidth = (length / scrollLength) * length;\n const delta = offset - handleWidth;\n const nextDelta = offset > this.scrollOffset ? delta - this.scrollOffset : offset - this.scrollOffset;\n this.handleScroll(nextDelta, event);\n };\n /**\n *\n * @param e\n * @param sort\n */\n this.handleArrowClick = (e, sort) => {\n e.stopPropagation();\n const { vertical, clickScrollLength, scrollLength, length } = this.props;\n if (vertical) {\n if (isNumber(clickScrollLength.vertical)) {\n const handleLength = (length / scrollLength) * clickScrollLength.vertical;\n this.handleScroll(sort === 'fir' ? -handleLength : handleLength, e);\n }\n }\n else {\n if (isNumber(clickScrollLength.horizontal)) {\n const handleLength = (length / scrollLength) * clickScrollLength.horizontal;\n this.handleScroll(sort === 'fir' ? -handleLength : handleLength, e);\n }\n }\n };\n this.state = {\n barOffset: {\n top: 0,\n left: 0,\n },\n handlePressed: false,\n };\n this.handleRef = React.createRef();\n this.barRef = React.createRef();\n }\n componentDidMount() {\n this.initBarOffset();\n }\n componentDidUpdate(prevProps) {\n if (this.props.vertical && this.props.scrollLength !== prevProps.scrollLength) {\n this.initBarOffset();\n }\n else if (!this.props.vertical && this.props.scrollLength !== prevProps.scrollLength) {\n this.initBarOffset();\n }\n }\n componentWillUnmount() {\n this.releaseMouseMoves();\n }\n onWheelScroll(delta) {\n const { length, scrollLength } = this.props;\n const nextDelta = delta / (scrollLength / length);\n this.updateScrollBarPosition(nextDelta);\n }\n getMouseMoveTracker() {\n return (this.mouseMoveTracker ||\n new DOMMouseMoveTracker(this.handleDragMove, this.handleDragEnd, document.body));\n }\n initBarOffset() {\n setTimeout(() => {\n this.barRef.current &&\n this.setState({\n barOffset: getOffset(this.barRef.current),\n });\n }, 1);\n }\n handleScroll(delta, event) {\n const { length, scrollLength } = this.props;\n const scrollDelta = delta * (scrollLength / length);\n this.updateScrollBarPosition(delta);\n this.props.onScroll?.(scrollDelta, event);\n }\n resetScrollBarPosition(forceDelta = 0) {\n this.scrollOffset = 0;\n this.updateScrollBarPosition(0, forceDelta);\n }\n updateScrollBarPosition(delta, forceDelta) {\n const { vertical, length, scrollLength } = this.props;\n const { translateDOMPositionXY } = this.context;\n const max = scrollLength && length\n ? length - Math.max((length / scrollLength) * length, SCROLLBAR_MIN_WIDTH + 2)\n : 0;\n const styles = {};\n if (typeof forceDelta === 'undefined') {\n this.scrollOffset += delta;\n this.scrollOffset = Math.max(this.scrollOffset, 0);\n this.scrollOffset = Math.min(this.scrollOffset, max);\n }\n else {\n this.scrollOffset = forceDelta || 0;\n }\n if (vertical) {\n translateDOMPositionXY?.(styles, 0, this.scrollOffset);\n }\n else {\n translateDOMPositionXY?.(styles, this.scrollOffset, 0);\n }\n addStyle(this.handleRef.current, styles);\n }\n releaseMouseMoves() {\n // @ts-ignore\n this.mouseMoveTracker?.releaseMouseMoves?.();\n this.mouseMoveTracker = null;\n }\n render() {\n const { vertical, length, scrollLength, classPrefix, className, tableId, style, showScrollArrow, scrollBarOffset, ...rest } = this.props;\n const { handlePressed } = this.state;\n // @ts-ignore\n const addPrefix = prefix(classPrefix);\n const classes = classNames(classPrefix, className, {\n [addPrefix('vertical')]: vertical,\n [addPrefix('horizontal')]: !vertical,\n [addPrefix('hide')]: scrollLength <= length,\n [addPrefix('pressed')]: handlePressed,\n [addPrefix('arrow')]: showScrollArrow,\n });\n const width = (length / scrollLength) * 100;\n const styles = {\n [vertical ? 'height' : 'width']: `${width}%`,\n [vertical ? 'minHeight' : 'minWidth']: SCROLLBAR_MIN_WIDTH,\n };\n const IEstyles = {\n [vertical ? 'top' : 'left']: showScrollArrow ? '0.2rem' : 0,\n [vertical ? 'bottom' : 'right']: showScrollArrow ? '0.2rem' : 0,\n [vertical ? 'height' : 'width']: style ? style[vertical ? 'height' : 'width'] - scrollBarOffset : `calc(100% - ${pxToRem(scrollBarOffset)}rem)`,\n [vertical ? 'width' : 'height']: showScrollArrow ? '0.2rem' : '0.1rem',\n };\n const unhandled = getUnhandledProps(propTypes, rest);\n const scrollbarStyle = { ...style, ...IEstyles };\n const valuenow = (this.scrollOffset / length) * 100 + width;\n return (React.createElement(\"div\", Object.assign({ role: \"scrollbar\", \"aria-controls\": tableId, \"aria-valuemax\": \"100\", \"aria-valuemin\": \"0\", \"aria-valuenow\": valuenow, \"aria-orientation\": vertical ? 'vertical' : 'horizontal' }, unhandled, { style: scrollbarStyle, ref: this.barRef, className: classes, onClick: this.handleClick }),\n showScrollArrow && (React.createElement(\"div\", { className: addPrefix(`handle-${vertical ? 'vertical' : 'horizontal'}-fir`), onClick: (e) => this.handleArrowClick(e, 'fir') },\n React.createElement(Icon, { type: \"baseline-arrow_drop_up\" }))),\n React.createElement(\"div\", { ref: this.handleRef, className: addPrefix(`handle ${showScrollArrow ? 'has-arrow' : ''}`), style: styles, onMouseDown: this.handleMouseDown, onTouchMove: (e) => e.stopPropagation(), role: \"button\", tabIndex: -1 }),\n showScrollArrow && (React.createElement(\"div\", { className: addPrefix(`handle-${vertical ? 'vertical' : 'horizontal'}-sec`), onClick: (e) => this.handleArrowClick(e, 'sec') },\n React.createElement(Icon, { type: \"baseline-arrow_drop_up\" })))));\n }\n}\nScrollbar.contextType = TableContext;\nScrollbar.propTypes = propTypes;\nScrollbar.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table-scrollbar'),\n scrollLength: 1,\n length: 1,\n};\nexport default Scrollbar;\n","import { __decorate } from \"tslib\";\nimport * as React from 'react';\nimport { observer } from 'mobx-react';\nimport Checkbox from 'choerodon-ui/lib/checkbox';\nimport Radio from 'choerodon-ui/lib/radio';\nlet SelectionBox = class SelectionBox extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.getCheckState(props),\n };\n }\n // eslint-disable-next-line class-methods-use-this\n getCheckState(props) {\n const { defaultSelection, rowIndex, store } = props;\n const { selectionDirty, selectedRowKeys } = store;\n let checked = false;\n if (selectionDirty) {\n checked = selectedRowKeys.indexOf(rowIndex) >= 0;\n }\n else {\n checked = selectedRowKeys.indexOf(rowIndex) >= 0 ||\n defaultSelection.indexOf(rowIndex) >= 0;\n }\n return checked;\n }\n render() {\n const checked = this.getCheckState(this.props);\n const { type, rowIndex, ...rest } = this.props;\n if (type === 'radio') {\n return React.createElement(Radio, Object.assign({ checked: checked, value: rowIndex }, rest));\n }\n return React.createElement(Checkbox, Object.assign({ checked: checked }, rest));\n }\n};\nSelectionBox = __decorate([\n observer\n], SelectionBox);\nexport default SelectionBox;\n","import { __decorate } from \"tslib\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { observer } from 'mobx-react';\nimport Checkbox from 'choerodon-ui/lib/checkbox';\nimport Dropdown from '../dropdown';\nimport Menu from '../menu';\nimport Icon from '../icon';\nfunction checkSelection({ store, getCheckboxPropsByItem, getRecordKey, data, type, byDefaultChecked, }) {\n return byDefaultChecked\n ? data[type]((item, i) => getCheckboxPropsByItem(item, i).defaultChecked)\n : data[type]((item, i) => store.selectedRowKeys.indexOf(getRecordKey(item, i)) >= 0);\n}\nfunction getIndeterminateState(props) {\n const { store, data } = props;\n if (!data.length) {\n return false;\n }\n const someCheckedNotByDefaultChecked = checkSelection({\n ...props,\n data,\n type: 'some',\n byDefaultChecked: false,\n }) &&\n !checkSelection({\n ...props,\n data,\n type: 'every',\n byDefaultChecked: false,\n });\n const someCheckedByDefaultChecked = checkSelection({\n ...props,\n data,\n type: 'some',\n byDefaultChecked: true,\n }) &&\n !checkSelection({\n ...props,\n data,\n type: 'every',\n byDefaultChecked: true,\n });\n if (store.selectionDirty) {\n return someCheckedNotByDefaultChecked;\n }\n return someCheckedNotByDefaultChecked || someCheckedByDefaultChecked;\n}\nfunction getCheckState(props) {\n const { store, data } = props;\n if (!data.length) {\n return false;\n }\n if (store.selectionDirty) {\n return checkSelection({\n ...props,\n data,\n type: 'every',\n byDefaultChecked: false,\n });\n }\n return (checkSelection({\n ...props,\n data,\n type: 'every',\n byDefaultChecked: false,\n }) ||\n checkSelection({\n ...props,\n data,\n type: 'every',\n byDefaultChecked: true,\n }));\n}\nlet SelectionCheckboxAll = class SelectionCheckboxAll extends React.Component {\n constructor(props) {\n super(props);\n this.handleSelectAllChange = (e) => {\n const { checked } = e.target;\n this.props.onSelect(checked ? 'all' : 'removeAll', 0, null);\n };\n this.defaultSelections = props.hideDefaultSelections\n ? []\n : [\n {\n key: 'all',\n text: 'SelectAll',\n },\n {\n key: 'invert',\n text: 'SelectInvert',\n },\n ];\n }\n setCheckState(props) {\n const checked = getCheckState(props);\n const indeterminate = getIndeterminateState(props);\n this.setState(prevState => {\n const newState = {};\n if (indeterminate !== prevState.indeterminate) {\n newState.indeterminate = indeterminate;\n }\n if (checked !== prevState.checked) {\n newState.checked = checked;\n }\n return newState;\n });\n }\n renderMenus(selections) {\n return selections.map((selection, index) => {\n return (React.createElement(Menu.Item, { key: selection.key || index },\n React.createElement(\"div\", { onClick: () => {\n this.props.onSelect(selection.key, index, selection.onSelect);\n } }, selection.text)));\n });\n }\n render() {\n const { disabled, prefixCls, selections } = this.props;\n const checked = getCheckState(this.props);\n const indeterminate = getIndeterminateState(this.props);\n const selectionPrefixCls = `${prefixCls}-selection`;\n let customSelections = null;\n if (selections) {\n const newSelections = Array.isArray(selections)\n ? this.defaultSelections.concat(selections)\n : this.defaultSelections;\n const menu = (React.createElement(Menu, { className: `${selectionPrefixCls}-menu`, selectedKeys: [] }, this.renderMenus(newSelections)));\n customSelections =\n newSelections.length > 0 ? (React.createElement(Dropdown, { overlay: menu },\n React.createElement(\"div\", { className: `${selectionPrefixCls}-down` },\n React.createElement(Icon, { type: \"down\" })))) : null;\n }\n return (React.createElement(\"div\", { className: selectionPrefixCls },\n React.createElement(Checkbox, { className: classNames({ [`${selectionPrefixCls}-select-all-custom`]: customSelections }), checked: checked, indeterminate: indeterminate, disabled: disabled, onChange: this.handleSelectAllChange }),\n customSelections));\n }\n};\nSelectionCheckboxAll = __decorate([\n observer\n], SelectionCheckboxAll);\npolyfill(SelectionCheckboxAll);\nexport default SelectionCheckboxAll;\n","import * as React from 'react';\nimport { get, isArrayLike, runInAction } from 'mobx';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isFunction from 'lodash/isFunction';\nimport flatten from 'lodash/flatten';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport eq from 'lodash/eq';\nimport omit from 'lodash/omit';\nimport merge from 'lodash/merge';\nimport uniq from 'lodash/uniq';\nimport BScroll from '@better-scroll/core';\nimport bindElementResize, { unbind as unbindElementResize } from 'element-resize-event';\nimport { getTranslateDOMPositionXY } from 'dom-lib/lib/transition/translateDOMPositionXY';\nimport { addStyle, getHeight, getOffset, getWidth, on, scrollLeft, scrollTop, WheelHandler } from 'dom-lib';\nimport { DragDropContext, Draggable, Droppable, } from 'react-beautiful-dnd';\nimport { toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport LocaleReceiver from 'choerodon-ui/lib/locale-provider/LocaleReceiver';\nimport defaultLocale from 'choerodon-ui/lib/locale-provider/default';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { stopPropagation } from '../_util/EventManager';\nimport ModalProvider from '../modal-provider/ModalProvider';\nimport Row from './Row';\nimport CellGroup from './CellGroup';\nimport Scrollbar from './Scrollbar';\nimport SelectionBox from './SelectionBox';\nimport SelectionCheckboxAll from './SelectionCheckboxAll';\nimport TableContext from './TableContext';\nimport { CELL_PADDING_HEIGHT, SCROLLBAR_WIDTH, SCROLLBAR_LARGE_WIDTH } from './constants';\nimport { cancelAnimationTimeout, defaultClassPrefix, findAllParents, findRowKeys, flattenData, getTotalByColumns, getUnhandledProps, isNumberOrTrue, isRTL, mergeCells, prefix, requestAnimationTimeout, resetLeftForCells, shouldShowRowByExpanded, toggleClass, } from './utils';\nimport isMobile from '../_util/isMobile';\nimport ColumnGroup from './ColumnGroup';\nimport Column from './Column';\nimport Cell from './Cell';\nimport HeaderCell from './HeaderCell';\nimport Spin from '../spin';\nimport PerformanceTableQueryBar from './query-bar';\nimport ProfessionalBar from './query-bar/TableProfessionalBar';\nimport DynamicFilterBar from './query-bar/TableDynamicFilterBar';\nimport TableStore from './TableStore';\nimport Toolbar from './tool-bar';\nimport { TableHeightType } from '../table/enum';\nimport { isDropresult } from '../table/utils';\nimport { arrayMove } from '../data-set/utils';\nimport { $l } from '../locale-context';\nconst SORT_TYPE = {\n DESC: 'desc',\n ASC: 'asc',\n};\nexport var TableQueryBarType;\n(function (TableQueryBarType) {\n TableQueryBarType[\"professionalBar\"] = \"professionalBar\";\n TableQueryBarType[\"filterBar\"] = \"filterBar\";\n})(TableQueryBarType || (TableQueryBarType = {}));\nconst propTypes = {\n columns: PropTypes.array,\n autoHeight: PropTypes.bool,\n affixHeader: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n affixHorizontalScrollbar: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n bordered: PropTypes.bool,\n bodyRef: PropTypes.func,\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n children: PropTypes.any,\n cellBordered: PropTypes.bool,\n clickScrollLength: PropTypes.object,\n data: PropTypes.arrayOf(PropTypes.object),\n defaultExpandAllRows: PropTypes.bool,\n defaultExpandedRowKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultSortType: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n disabledScroll: PropTypes.bool,\n expandedRowKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n hover: PropTypes.bool,\n height: PropTypes.number,\n headerHeight: PropTypes.number,\n locale: PropTypes.object,\n loading: PropTypes.bool,\n loadAnimation: PropTypes.bool,\n minHeight: PropTypes.number,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n renderTreeToggle: PropTypes.func,\n renderRowExpanded: PropTypes.func,\n rowExpandedHeight: PropTypes.number,\n renderEmpty: PropTypes.func,\n renderLoading: PropTypes.func,\n rowClassName: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n rtl: PropTypes.bool,\n style: PropTypes.object,\n sortColumn: PropTypes.string,\n sortType: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n showHeader: PropTypes.bool,\n showScrollArrow: PropTypes.bool,\n shouldUpdateScroll: PropTypes.bool,\n translate3d: PropTypes.bool,\n wordWrap: PropTypes.bool,\n width: PropTypes.number,\n virtualized: PropTypes.bool,\n isTree: PropTypes.bool,\n onRowClick: PropTypes.func,\n onRowContextMenu: PropTypes.func,\n onScroll: PropTypes.func,\n onSortColumn: PropTypes.func,\n onExpandChange: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchMove: PropTypes.func,\n onDataUpdated: PropTypes.func,\n highLightRow: PropTypes.bool,\n /**\n * 显示查询条\n */\n queryBar: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n customizedCode: PropTypes.string,\n customizable: PropTypes.bool,\n columnDraggable: PropTypes.bool,\n columnTitleEditable: PropTypes.bool,\n columnsDragRender: PropTypes.object,\n rowSelection: PropTypes.object,\n rowDraggable: PropTypes.bool,\n};\nexport const CUSTOMIZED_KEY = '__customized-column__'; // TODO:Symbol\nfunction getRowSelection(props) {\n return props.rowSelection || {};\n}\nexport default class PerformanceTable extends React.Component {\n constructor(props) {\n super(props);\n this.translateDOMPositionXY = null;\n this.scrollListener = null;\n this.bscroll = null;\n this.tableRows = {};\n this.mounted = false;\n this.disableEventsTimeoutId = null;\n this.scrollY = 0;\n this.scrollX = 0;\n this.setRowBottomBorderList = [];\n this.nextRowZIndex = [];\n this._cacheCells = null;\n this._cacheScrollX = 0;\n this._cacheRenderCols = [];\n this._cacheChildrenSize = 0;\n this._visibleRows = [];\n this.tableStore = new TableStore(this);\n this.listenWheel = (deltaX, deltaY) => {\n this.handleWheel(deltaX, deltaY);\n this.scrollbarXRef.current?.onWheelScroll?.(deltaX);\n this.scrollbarYRef.current?.onWheelScroll?.(deltaY);\n };\n this.getRecordKey = (record, index) => {\n const { rowKey } = this.props;\n const recordKey = record[rowKey];\n warning(recordKey !== undefined, 'Each record in dataSource of table should have a unique `key` prop, ' +\n 'or set `rowKey` of Table to an unique primary key.');\n return recordKey === undefined ? index : recordKey;\n };\n this.getCheckboxPropsByItem = (item, index) => {\n const rowSelection = getRowSelection(this.props);\n if (!rowSelection.getCheckboxProps) {\n return {};\n }\n const key = this.getRecordKey(item, index);\n // Cache checkboxProps\n if (!this.tableStore.checkboxPropsCache[key]) {\n this.tableStore.checkboxPropsCache[key] = rowSelection.getCheckboxProps(item) || {};\n const checkboxProps = this.tableStore.checkboxPropsCache[key];\n warning(!('checked' in checkboxProps) && !('defaultChecked' in checkboxProps), 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.');\n }\n return this.tableStore.checkboxPropsCache[key];\n };\n this.handleSelect = (record, rowIndex, e) => {\n const checked = e.target.checked;\n const nativeEvent = e.nativeEvent;\n const defaultSelection = this.tableStore.selectionDirty\n ? []\n : this.getDefaultSelection();\n // @ts-ignore\n let selectedRowKeys = this.tableStore.selectedRowKeys.concat(defaultSelection);\n const key = this.getRecordKey(record, rowIndex);\n const { pivot, data } = this.state;\n const rows = { ...data };\n let realIndex = rowIndex;\n if (this.props.expandedRowRender) {\n realIndex = rows.findIndex(row => this.getRecordKey(row, rowIndex) === key);\n }\n if (nativeEvent.shiftKey && pivot !== undefined && realIndex !== pivot) {\n const changeRowKeys = [];\n const direction = Math.sign(pivot - realIndex);\n const dist = Math.abs(pivot - realIndex);\n let step = 0;\n while (step <= dist) {\n const i = realIndex + step * direction;\n step += 1;\n const row = rows[i];\n const rowKey = this.getRecordKey(row, i);\n const checkboxProps = this.getCheckboxPropsByItem(row, i);\n if (!checkboxProps.disabled) {\n if (selectedRowKeys.includes(rowKey)) {\n if (!checked) {\n selectedRowKeys = selectedRowKeys.filter((j) => rowKey !== j);\n changeRowKeys.push(rowKey);\n }\n }\n else if (checked) {\n selectedRowKeys.push(rowKey);\n changeRowKeys.push(rowKey);\n }\n }\n }\n this.setState({ pivot: realIndex });\n this.tableStore.selectionDirty = true;\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelectMultiple',\n record,\n checked,\n changeRowKeys,\n nativeEvent,\n });\n }\n else {\n if (checked) {\n selectedRowKeys.push(this.getRecordKey(record, realIndex));\n }\n else {\n selectedRowKeys = selectedRowKeys.filter((i) => key !== i);\n }\n this.setState({ pivot: realIndex });\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelect',\n record,\n checked,\n changeRowKeys: undefined,\n nativeEvent,\n });\n }\n };\n this.handleSelectRow = (selectionKey, index, onSelectFunc) => {\n const { data } = this.state;\n const defaultSelection = this.tableStore.selectionDirty\n ? []\n : this.getDefaultSelection();\n //@ts-ignore\n const selectedRowKeys = this.tableStore.selectedRowKeys.concat(defaultSelection);\n const changeableRowKeys = data\n .filter((item, i) => !this.getCheckboxPropsByItem(item, i).disabled)\n .map((item, i) => this.getRecordKey(item, i));\n const changeRowKeys = [];\n let selectWay = 'onSelectAll';\n let checked;\n // handle default selection\n switch (selectionKey) {\n case 'all':\n changeableRowKeys.forEach(key => {\n if (selectedRowKeys.indexOf(key) < 0) {\n selectedRowKeys.push(key);\n changeRowKeys.push(key);\n }\n });\n selectWay = 'onSelectAll';\n checked = true;\n break;\n case 'removeAll':\n changeableRowKeys.forEach(key => {\n if (selectedRowKeys.indexOf(key) >= 0) {\n selectedRowKeys.splice(selectedRowKeys.indexOf(key), 1);\n changeRowKeys.push(key);\n }\n });\n selectWay = 'onSelectAll';\n checked = false;\n break;\n case 'invert':\n changeableRowKeys.forEach(key => {\n if (selectedRowKeys.indexOf(key) < 0) {\n selectedRowKeys.push(key);\n }\n else {\n selectedRowKeys.splice(selectedRowKeys.indexOf(key), 1);\n }\n changeRowKeys.push(key);\n selectWay = 'onSelectInvert';\n });\n break;\n default:\n break;\n }\n this.tableStore.selectionDirty = true;\n // when select custom selection, callback selections[n].onSelect\n const { rowSelection } = this.props;\n let customSelectionStartIndex = 2;\n if (rowSelection && rowSelection.hideDefaultSelections) {\n customSelectionStartIndex = 0;\n }\n if (index >= customSelectionStartIndex && typeof onSelectFunc === 'function') {\n return onSelectFunc(changeableRowKeys);\n }\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay,\n checked,\n changeRowKeys,\n });\n };\n this.handleRadioSelect = (record, rowIndex, e) => {\n const checked = e.target.checked;\n const nativeEvent = e.nativeEvent;\n const key = this.getRecordKey(record, rowIndex);\n const selectedRowKeys = [key];\n this.tableStore.selectionDirty = true;\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelect',\n record,\n checked,\n changeRowKeys: undefined,\n nativeEvent,\n });\n };\n this.renderSelectionBox = (type, rowData, rowIndex) => {\n const rowKey = this.getRecordKey(rowData, rowIndex);\n const props = this.getCheckboxPropsByItem(rowData, rowIndex);\n const handleChange = (e) => type === 'radio'\n ? this.handleRadioSelect(rowData, rowIndex, e)\n : this.handleSelect(rowData, rowIndex, e);\n return (React.createElement(\"span\", { onClick: stopPropagation },\n React.createElement(SelectionBox, Object.assign({ store: this.tableStore, type: type, rowIndex: rowKey, onChange: handleChange, defaultSelection: this.getDefaultSelection() }, props))));\n };\n this.setOffsetByAffix = () => {\n const { affixHeader, affixHorizontalScrollbar } = this.props;\n const headerNode = this.headerWrapperRef?.current;\n if (isNumberOrTrue(affixHeader) && headerNode) {\n this.setState(() => ({ headerOffset: getOffset(headerNode) }));\n }\n const tableNode = this.tableRef?.current;\n if (isNumberOrTrue(affixHorizontalScrollbar) && tableNode) {\n this.setState(() => ({ tableOffset: getOffset(tableNode) }));\n }\n };\n this.handleWindowScroll = () => {\n const { affixHeader, affixHorizontalScrollbar } = this.props;\n if (isNumberOrTrue(affixHeader)) {\n this.affixTableHeader();\n }\n if (isNumberOrTrue(affixHorizontalScrollbar)) {\n this.affixHorizontalScrollbar();\n }\n };\n this.affixHorizontalScrollbar = () => {\n const scrollY = window.scrollY || window.pageYOffset;\n const windowHeight = getHeight(window);\n const height = this.getTableHeight();\n const { tableOffset, fixedHorizontalScrollbar } = this.state;\n const { affixHorizontalScrollbar } = this.props;\n const headerHeight = this.getTableHeaderHeight();\n const bottom = typeof affixHorizontalScrollbar === 'number' ? affixHorizontalScrollbar : 0;\n const fixedScrollbar = \n // @ts-ignore\n scrollY + windowHeight < height + (tableOffset.top + bottom) &&\n // @ts-ignore\n scrollY + windowHeight - headerHeight > tableOffset?.top + bottom;\n if (this.scrollbarXRef?.current?.barRef?.current &&\n fixedHorizontalScrollbar !== fixedScrollbar) {\n this.setState({ fixedHorizontalScrollbar: fixedScrollbar });\n }\n };\n this.affixTableHeader = () => {\n const { affixHeader } = this.props;\n const top = typeof affixHeader === 'number' ? affixHeader : 0;\n const { headerOffset, contentHeight } = this.state;\n const scrollY = window.scrollY || window.pageYOffset;\n const fixedHeader = \n // @ts-ignore\n scrollY - (headerOffset.top - top) >= 0 && scrollY < headerOffset.top - top + contentHeight;\n if (this.affixHeaderWrapperRef.current) {\n toggleClass(this.affixHeaderWrapperRef.current, 'fixed', fixedHeader);\n }\n };\n this.handleSortColumn = (dataKey) => {\n let sortType = this.getSortType();\n if (this.props.sortColumn === dataKey) {\n switch (sortType) {\n case SORT_TYPE.ASC:\n sortType = SORT_TYPE.DESC;\n break;\n case SORT_TYPE.DESC:\n sortType = undefined;\n break;\n default:\n sortType = SORT_TYPE.ASC;\n }\n this.setState({ sortType });\n }\n this.props.onSortColumn?.(dataKey, sortType);\n };\n this.handleColumnResizeEnd = (columnWidth, _cursorDelta, dataKey, index) => {\n this._cacheCells = null;\n if (this.tableStore.customizable) {\n this.tableStore.changeCustomizedColumnValue(dataKey, {\n width: columnWidth,\n });\n }\n this.setState({ isColumnResizing: false, [`${dataKey}_${index}_width`]: columnWidth });\n addStyle(this.mouseAreaRef.current, { display: 'none' });\n };\n this.handleColumnResizeStart = (width, left, fixed) => {\n this.setState({ isColumnResizing: true });\n this.handleColumnResizeMove(width, left, fixed);\n };\n this.handleColumnResizeMove = (width, left, fixed) => {\n let mouseAreaLeft = width + left;\n let x = mouseAreaLeft;\n let dir = 'left';\n if (this.isRTL()) {\n mouseAreaLeft += this.minScrollX + SCROLLBAR_WIDTH;\n dir = 'right';\n }\n if (!fixed) {\n x = mouseAreaLeft + (this.isRTL() ? -this.scrollX : this.scrollX);\n }\n addStyle(this.mouseAreaRef.current, { display: 'block', [dir]: `${x}px` });\n };\n this.handleTreeToggle = (rowKey, _rowIndex, rowData) => {\n const expandedRowKeys = this.getExpandedRowKeys();\n let open = false;\n const nextExpandedRowKeys = [];\n for (let i = 0; i < expandedRowKeys.length; i++) {\n const key = expandedRowKeys[i];\n if (key === rowKey) {\n open = true;\n }\n else {\n // @ts-ignore\n nextExpandedRowKeys.push(key);\n }\n }\n if (!open) {\n // @ts-ignore\n nextExpandedRowKeys.push(rowKey);\n }\n this.setState({ expandedRowKeys: nextExpandedRowKeys });\n this.props.onExpandChange?.(!open, rowData);\n };\n this.handleScrollX = (delta) => {\n this.handleWheel(delta, 0);\n };\n this.handleScrollY = (delta) => {\n this.handleWheel(0, delta);\n };\n this.handleWheel = (deltaX, deltaY) => {\n const { onScroll, virtualized } = this.props;\n const { contentWidth, width } = this.state;\n if (!this.tableRef.current) {\n return;\n }\n const nextScrollX = contentWidth <= width ? 0 : this.scrollX - deltaX;\n const nextScrollY = this.scrollY - deltaY;\n this.scrollY = Math.min(0, nextScrollY < this.minScrollY ? this.minScrollY : nextScrollY);\n this.scrollX = Math.min(0, nextScrollX < this.minScrollX ? this.minScrollX : nextScrollX);\n this.updatePosition();\n onScroll?.(this.scrollX, this.scrollY);\n if (virtualized) {\n this.setState({\n isScrolling: true,\n scrollY: this.scrollY,\n scrollX: this.scrollX,\n });\n if (this.disableEventsTimeoutId) {\n // @ts-ignore\n cancelAnimationTimeout(this.disableEventsTimeoutId);\n }\n // @ts-ignore\n this.disableEventsTimeoutId = requestAnimationTimeout(this.debounceScrollEndedCallback, 150);\n }\n };\n this.debounceScrollEndedCallback = () => {\n this.disableEventsTimeoutId = null;\n this.setState({\n isScrolling: false,\n });\n };\n // 处理移动端 Touch 事件, Start 的时候初始化 x,y\n this.handleTouchStart = (event) => {\n if (event.touches) {\n const { pageX, pageY } = event.touches[0];\n this.touchX = pageX;\n this.touchY = pageY;\n }\n this.props.onTouchStart?.(event);\n };\n // 处理移动端 Touch 事件, Move 的时候初始化,更新 scroll\n this.handleTouchMove = ({ e }) => {\n const { autoHeight } = this.props;\n if (e.touches) {\n const { pageX, pageY } = e.touches[0];\n const deltaX = this.touchX - pageX;\n const deltaY = autoHeight ? 0 : this.touchY - pageY;\n if (!this.shouldHandleWheelY(deltaY) && !this.shouldHandleWheelX(deltaX)) {\n return;\n }\n e.preventDefault?.();\n this.handleWheel(deltaX, deltaY);\n this.scrollbarXRef.current?.onWheelScroll?.(deltaX);\n this.scrollbarYRef.current?.onWheelScroll?.(deltaY);\n this.touchX = pageX;\n this.touchY = pageY;\n }\n this.props.onTouchMove?.(e);\n };\n /**\n * 当用户在 Table 内使用 tab 键,触发了 onScroll 事件,这个时候应该更新滚动条位置\n * https://github.com/rsuite/rsuite/issues/234\n */\n this.handleBodyScroll = (event) => {\n if (event.target !== this.tableBodyRef.current) {\n return;\n }\n const left = scrollLeft(event.target);\n const top = scrollTop(event.target);\n if (top === 0 && left === 0) {\n return;\n }\n this.listenWheel(left, top);\n scrollLeft(event.target, 0);\n scrollTop(event.target, 0);\n };\n this.handleDragEnd = (resultDrag, provided) => {\n const { onDragEnd, onDragEndBefore } = this.props;\n const { data } = this.state;\n let resultBefore = resultDrag;\n if (onDragEndBefore) {\n const result = onDragEndBefore(resultDrag, provided);\n if (result === false) {\n return;\n }\n if (isDropresult(result)) {\n resultBefore = result;\n }\n }\n if (resultBefore && resultBefore.destination) {\n const resData = [...data];\n arrayMove(resData, resultBefore.source.index, resultBefore.destination.index);\n this.setState({\n data: resData,\n });\n if (onDragEnd) {\n onDragEnd({ resultBefore, provided, data: resData });\n }\n }\n };\n this.shouldHandleWheelX = (delta) => {\n const { disabledScroll, loading } = this.props;\n if (delta === 0 || disabledScroll || loading) {\n return false;\n }\n return true;\n };\n this.shouldHandleWheelY = (delta) => {\n const { disabledScroll, loading } = this.props;\n if (delta === 0 || disabledScroll || loading) {\n return false;\n }\n return (delta >= 0 && this.scrollY > this.minScrollY) || (delta < 0 && this.scrollY < 0);\n };\n this.addPrefix = (name) => prefix(this.props.classPrefix)(name);\n this.calculateTableWidth = () => {\n const table = this.tableRef?.current;\n const { width } = this.state;\n if (table) {\n const nextWidth = getWidth(table);\n if (width !== nextWidth) {\n this.scrollX = 0;\n this.scrollbarXRef?.current?.resetScrollBarPosition();\n this._cacheCells = null;\n }\n if (nextWidth !== 0) {\n this.setState({ width: nextWidth });\n }\n }\n this.setOffsetByAffix();\n };\n /**\n * public method\n */\n this.scrollTop = (top = 0) => {\n const [scrollY, handleScrollY] = this.getControlledScrollTopValue(top);\n this.scrollY = scrollY;\n this.scrollbarYRef?.current?.resetScrollBarPosition?.(handleScrollY);\n this.updatePosition();\n /**\n * 当开启 virtualized,调用 scrollTop 后会出现白屏现象,\n * 原因是直接操作 DOM 的坐标,但是组件没有重新渲染,需要调用 forceUpdate 重新进入 render。\n * Fix: rsuite#1044\n */\n if (this.props.virtualized && this.state.contentHeight > this.getTableHeight()) {\n this.forceUpdate();\n }\n };\n // public method\n this.scrollLeft = (left = 0) => {\n const [scrollX, handleScrollX] = this.getControlledScrollLeftValue(left);\n this.scrollX = scrollX;\n this.scrollbarXRef?.current?.resetScrollBarPosition?.(handleScrollX);\n this.updatePosition();\n };\n this.scrollTo = (coord) => {\n const { x, y } = coord || {};\n if (typeof x === 'number') {\n this.scrollLeft(x);\n }\n if (typeof y === 'number') {\n this.scrollTop(y);\n }\n };\n this.bindTableRowsRef = (index, rowData, provided) => (ref) => {\n if (ref) {\n this.tableRows[index] = [ref, rowData];\n if (provided) {\n provided.innerRef(ref);\n }\n }\n };\n this.bindRowClick = (rowIndex, index, rowData) => {\n return (event) => {\n this.onRowClick(rowData, event, rowIndex, index);\n };\n };\n this.bindRowContextMenu = (rowData) => {\n return (event) => {\n this.props.onRowContextMenu?.(rowData, event);\n };\n };\n const { width, height, data, rowKey, defaultExpandAllRows, renderRowExpanded, defaultExpandedRowKeys, children = [], columns = [], isTree, defaultSortType, } = props;\n const expandedRowKeys = defaultExpandAllRows\n ? findRowKeys(data, rowKey, isFunction(renderRowExpanded))\n : defaultExpandedRowKeys || [];\n let shouldFixedColumn = Array.from(children).some((child) => child && child.props && child.props.fixed);\n if (columns && columns.length) {\n shouldFixedColumn = Array.from(columns).some((child) => child && child.fixed);\n }\n if (isTree && !rowKey) {\n throw new Error('The `rowKey` is required when set isTree');\n }\n this.state = {\n isTree,\n expandedRowKeys,\n shouldFixedColumn,\n cacheData: data,\n data: isTree ? flattenData(data) : data,\n width: width || 0,\n height: height || 0,\n columnWidth: 0,\n dataKey: 0,\n contentHeight: 0,\n contentWidth: 0,\n tableRowsMaxHeight: [],\n sortType: defaultSortType,\n scrollY: 0,\n isScrolling: false,\n fixedHeader: false,\n searchText: '',\n pivot: undefined,\n selectedRowKeys: [],\n };\n this.scrollY = 0;\n this.scrollX = 0;\n this._cacheScrollX = 0;\n this._cacheRenderCols = [];\n this.wheelHandler = new WheelHandler(this.listenWheel, this.shouldHandleWheelX, this.shouldHandleWheelY, false);\n this._cacheChildrenSize = flatten(children || columns).length;\n this.translateDOMPositionXY = getTranslateDOMPositionXY({\n enable3DTransform: props.translate3d,\n });\n this.tableRef = React.createRef();\n this.scrollbarYRef = React.createRef();\n this.scrollbarXRef = React.createRef();\n this.tableBodyRef = React.createRef();\n this.affixHeaderWrapperRef = React.createRef();\n this.mouseAreaRef = React.createRef();\n this.headerWrapperRef = React.createRef();\n this.wheelWrapperRef = React.createRef();\n this.tableHeaderRef = React.createRef();\n runInAction(() => {\n const { rowSelection } = this.props;\n if (rowSelection) {\n let rowSelectionFixed = 'left';\n if ('fixed' in rowSelection) {\n rowSelectionFixed = rowSelection.fixed;\n }\n if (columns && columns.length) {\n const columnsWithRowSelectionProps = {\n title: $l('Table', 'select_current_page'),\n key: 'rowSelection',\n width: 50,\n align: 'center',\n fixed: rowSelectionFixed,\n };\n columns.splice(rowSelection.columnIndex || 0, 0, columnsWithRowSelectionProps);\n }\n if (children && children.length) {\n const columnsWithRowSelection = this.renderRowSelection(rowSelectionFixed);\n if (columnsWithRowSelection) {\n if (rowSelectionFixed) {\n children.splice((rowSelectionFixed === true || 'left') ? (rowSelection.columnIndex || 0) : (rowSelection.columnIndex || children.length), 0, columnsWithRowSelection);\n this.setState({ shouldFixedColumn: true });\n }\n else {\n children.splice(rowSelection.columnIndex || 0, 0, columnsWithRowSelection);\n }\n }\n }\n }\n this.tableStore.originalColumns = columns;\n this.tableStore.originalChildren = children;\n });\n }\n static getDerivedStateFromProps(props, state) {\n if (props.data !== state.cacheData || props.isTree !== state.isTree) {\n return {\n cacheData: props.data,\n isTree: props.isTree,\n data: props.isTree ? flattenData(props.data) : props.data,\n };\n }\n return null;\n }\n componentDidMount() {\n this.calculateTableWidth();\n this.calculateTableContextHeight();\n this.calculateRowMaxHeight();\n this.setOffsetByAffix();\n this.initPosition();\n bindElementResize(this.tableRef.current, debounce(this.calculateTableWidth, 400));\n const options = { passive: false };\n const tableBody = this.tableBodyRef.current;\n if (tableBody) {\n if (isMobile()) {\n this.initBScroll(tableBody);\n }\n this.wheelListener = on(tableBody, 'wheel', this.wheelHandler.onWheel, options);\n // this.touchStartListener = on(tableBody, 'touchstart', this.handleTouchStart, options);\n // this.touchMoveListener = on(tableBody, 'touchmove', this.handleTouchMove, options);\n }\n const { affixHeader, affixHorizontalScrollbar } = this.props;\n if (isNumberOrTrue(affixHeader) || isNumberOrTrue(affixHorizontalScrollbar)) {\n this.scrollListener = on(window, 'scroll', this.handleWindowScroll);\n }\n this.props?.bodyRef?.(this.wheelWrapperRef.current);\n }\n shouldComponentUpdate(nextProps, nextState) {\n const _cacheChildrenSize = flatten((nextProps.children || nextProps.columns) || []).length;\n /**\n * 单元格列的信息在初始化后会被缓存,在某些属性被更新以后,需要清除缓存。\n */\n if (_cacheChildrenSize !== this._cacheChildrenSize) {\n this._cacheChildrenSize = _cacheChildrenSize;\n this._cacheCells = null;\n this.tableStore.updateProps(nextProps, this);\n }\n else if (this.props.children !== nextProps.children ||\n this.props.columns !== nextProps.columns ||\n this.props.sortColumn !== nextProps.sortColumn ||\n this.props.sortType !== nextProps.sortType) {\n this._cacheCells = null;\n this.tableStore.updateProps(nextProps, this);\n }\n return !eq(this.props, nextProps) || !isEqual(this.state, nextState);\n }\n componentDidUpdate(prevProps, prevState) {\n const { rowHeight, data, height, virtualized, children, columns } = prevProps;\n if (data !== this.props.data) {\n this.calculateRowMaxHeight();\n this.props.onDataUpdated?.(this.props.data, this.scrollTo);\n const maxHeight = this.props.data.length * (typeof rowHeight === 'function' ? rowHeight({}) : rowHeight);\n // 当开启允许更新滚动条,或者滚动条位置大于表格的最大高度,则初始滚动条位置\n if (this.props.shouldUpdateScroll || Math.abs(this.scrollY) > maxHeight) {\n this.scrollTo({ x: 0, y: 0 });\n }\n }\n else {\n this.updatePosition();\n }\n if (columns !== this.props.columns || children !== this.props.children || this.tableStore.customizable) {\n let shouldFixedColumn = false;\n if ((!columns || columns.length === 0) && this.props.rowSelection && this.props.columns && this.props.columns.length) {\n let rowSelectionFixed = 'left';\n if ('fixed' in this.props.rowSelection) {\n rowSelectionFixed = this.props.rowSelection.fixed;\n }\n const columnsWithRowSelectionProps = {\n title: $l('Table', 'select_current_page'),\n key: 'rowSelection',\n width: 50,\n align: 'center',\n fixed: rowSelectionFixed,\n };\n runInAction(() => {\n this.tableStore.originalColumns = this.props.columns.splice(this.props.rowSelection?.columnIndex || 0, 0, columnsWithRowSelectionProps);\n });\n }\n if (this.props.children) {\n shouldFixedColumn = Array.from(this.props.children).some((child) => child && child.props && child.props.fixed);\n }\n if (this.tableStore.originalColumns && this.tableStore.originalColumns.length) {\n shouldFixedColumn = Array.from(this.tableStore.originalColumns).some((child) => child && child.fixed);\n }\n this.setState({ shouldFixedColumn: shouldFixedColumn });\n }\n if (\n // 当 Table 的 data 发生变化,需要重新计算高度\n data !== this.props.data ||\n // 当 Table 内容区的高度发生变化需要重新计算\n height !== this.props.height ||\n // 当 Table 内容区的高度发生变化需要重新计算\n prevState.contentHeight !== this.state.contentHeight ||\n // 当 expandedRowKeys 发生变化,需要重新计算 Table 高度,如果重算会导致滚动条不显示。\n prevState.expandedRowKeys !== this.state.expandedRowKeys ||\n prevProps.expandedRowKeys !== this.props.expandedRowKeys) {\n this.calculateTableContextHeight(prevProps);\n }\n this.calculateTableContentWidth(prevProps);\n if (virtualized) {\n this.calculateTableWidth();\n }\n const tableBody = this.tableBodyRef.current;\n if (!this.wheelListener && tableBody) {\n const options = { passive: false };\n if (isMobile()) {\n this.initBScroll(tableBody);\n }\n this.wheelListener = on(tableBody, 'wheel', this.wheelHandler.onWheel, options);\n }\n }\n componentWillUnmount() {\n this.wheelHandler = null;\n if (this.tableRef.current) {\n unbindElementResize(this.tableRef.current);\n }\n this.wheelListener?.off();\n this.touchStartListener?.off();\n this.touchMoveListener?.off();\n this.scrollListener?.off();\n }\n getExpandedRowKeys() {\n const { expandedRowKeys } = this.props;\n return typeof expandedRowKeys === 'undefined' ? this.state.expandedRowKeys : expandedRowKeys;\n }\n getSortType() {\n const { sortType } = this.props;\n return typeof sortType === 'undefined' ? this.state.sortType : sortType;\n }\n getScrollCellGroups() {\n return this.tableRef.current?.querySelectorAll(`.${this.addPrefix('cell-group-scroll')}`);\n }\n getFixedLeftCellGroups() {\n return this.tableRef.current?.querySelectorAll(`.${this.addPrefix('cell-group-fixed-left')}`);\n }\n getFixedRightCellGroups() {\n return this.tableRef.current?.querySelectorAll(`.${this.addPrefix('cell-group-fixed-right')}`);\n }\n isRTL() {\n return this.props.rtl || isRTL();\n }\n getRowHeight(rowData = {}) {\n const { rowHeight } = this.props;\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n }\n /**\n * 获取表头高度\n */\n getTableHeaderHeight() {\n const { headerHeight, showHeader } = this.props;\n return showHeader ? headerHeight : 0;\n }\n /**\n * Table 个性化高度变更\n */\n handleHeightTypeChange() {\n this.calculateTableContextHeight();\n }\n /**\n * 获取 Table 需要渲染的高度\n */\n getTableHeight() {\n const { contentHeight } = this.state;\n const { minHeight, height, autoHeight, data, showScrollArrow } = this.props;\n const headerHeight = this.getTableHeaderHeight();\n const { tableStore: { customized: { heightType, height: cusHeight, heightDiff }, tempCustomized, }, } = this;\n let tableHeight = height;\n if (this.tableStore.customizable) {\n const tempHeightType = get(tempCustomized, 'heightType');\n if (tempHeightType) {\n if (tempHeightType === TableHeightType.fixed) {\n tableHeight = get(tempCustomized, 'height');\n }\n if (tempHeightType === TableHeightType.flex) {\n tableHeight = document.documentElement.clientHeight - (get(tempCustomized, 'heightDiff') || 0);\n }\n }\n if (heightType) {\n if (heightType === TableHeightType.fixed) {\n tableHeight = cusHeight;\n }\n if (heightType === TableHeightType.flex) {\n tableHeight = document.documentElement.clientHeight - (heightDiff || 0);\n }\n }\n this.setState({\n height: tableHeight,\n });\n }\n if (data.length === 0 && autoHeight) {\n return tableHeight;\n }\n if (autoHeight) {\n if (showScrollArrow) {\n return Math.max(headerHeight + contentHeight + SCROLLBAR_LARGE_WIDTH, minHeight + SCROLLBAR_LARGE_WIDTH);\n }\n else {\n return Math.max(headerHeight + contentHeight + SCROLLBAR_WIDTH, minHeight + SCROLLBAR_WIDTH);\n }\n }\n else {\n return tableHeight;\n }\n }\n /**\n * 处理 column props\n * @param column\n */\n getColumnProps(column) {\n return omit(column, ['title', 'dataIndex', 'key', 'render']);\n }\n /**\n * 处理columns json -> reactNode\n * @param columns\n */\n processTableColumns(columns) {\n const visibleColumn = columns.filter(col => !col.hidden);\n return visibleColumn.map((column) => {\n const dataKey = column.dataIndex;\n if (column.type === 'ColumnGroup') {\n return React.createElement(ColumnGroup, Object.assign({}, this.getColumnProps(column)), this.processTableColumns(column.children));\n }\n if (column.key === 'rowSelection') {\n return this.renderRowSelection(column.fixed);\n }\n return (\n // @ts-ignore\n React.createElement(Column, Object.assign({}, this.getColumnProps(column), { dataKey: dataKey }),\n React.createElement(HeaderCell, null, typeof column.title === 'function' ? column.title() : column.title),\n typeof column.render === 'function' ? (React.createElement(Cell, { dataKey: dataKey }, (rowData, rowIndex) => column.render({ rowData, rowIndex, dataIndex: dataKey }))) : React.createElement(Cell, { dataKey: dataKey })));\n });\n }\n /**\n * 获取 columns ReactElement 数组\n * - 处理 children 中存在 <Column> 数组的情况\n * - 过滤 children 中的空项\n */\n getTableColumns() {\n const { originalColumns, originalChildren } = this.tableStore;\n let children = originalChildren;\n if (originalColumns && originalColumns.length) {\n children = this.processTableColumns(originalColumns);\n }\n if (!Array.isArray(children) && !isArrayLike(children)) {\n return children;\n }\n // Fix that the `ColumnGroup` array cannot be rendered in the Table\n const flattenColumns = flatten(children).map((column) => {\n if (column) {\n const columnChildren = column.props.children;\n let cellProps = {\n dataIndex: columnChildren.length > 1\n ?\n columnChildren[1].props.dataKey\n :\n columnChildren[0].props.dataKey,\n };\n cellProps.hidden = column.props.hidden;\n if (column.type?.__PRO_TABLE_COLUMN_GROUP) {\n const { header, children: childColumns, align, fixed, verticalAlign } = column.props;\n return childColumns.map((childColumn, index) => {\n // 把 ColumnGroup 设置的属性覆盖到 Column\n const groupCellProps = {\n ...childColumn?.props,\n ...cellProps,\n align,\n fixed,\n verticalAlign,\n };\n /**\n * 为分组中的第一列设置属性:\n * groupCount: 分组子项个数\n * groupHeader: 分组标题\n * resizable: 设置为不可自定义列宽\n */\n if (index === 0) {\n groupCellProps.groupCount = childColumns.length;\n groupCellProps.groupHeader = header;\n }\n return React.cloneElement(childColumn, groupCellProps);\n });\n }\n return React.cloneElement(column, cellProps);\n }\n return column;\n });\n // 把 Columns 中的数组,展平为一维数组,计算 lastColumn 与 firstColumn。\n const flatColumns = flatten(flattenColumns).filter(col => col && col.props && !col.props.hidden);\n /**\n * 将左固定列、右固定列和其他列提取出来\n * 排列成正常显示列的顺序\n * 提供给后面bodyCell使用\n */\n const { fixedLeftCells, fixedRightCells, scrollCells } = this.calculateFixedAndScrollColumn(flatColumns);\n // 重新计算列的时候需清除在虚拟滚动时候的渲染列缓存\n this._cacheRenderCols = [];\n return [...fixedLeftCells, ...scrollCells, ...fixedRightCells];\n }\n getDefaultSelection() {\n const rowSelection = getRowSelection(this.props);\n if (!rowSelection.getCheckboxProps) {\n return [];\n }\n return this.state.data\n .filter((item, rowIndex) => this.getCheckboxPropsByItem(item, rowIndex).defaultChecked)\n .map((record, rowIndex) => this.getRecordKey(record, rowIndex));\n }\n renderRowSelection(fixed) {\n const { rowSelection, classPrefix, rowKey } = this.props;\n if (rowSelection) {\n const flatData = this.state.data.filter((item, index) => {\n if (rowSelection.getCheckboxProps) {\n return !this.getCheckboxPropsByItem(item, index).disabled;\n }\n return true;\n });\n const selectionColumn = {\n key: 'selection-column',\n fixed,\n width: rowSelection.columnWidth || 50,\n title: rowSelection.columnTitle,\n };\n let selectionCheckboxAll = null;\n if (rowSelection.type !== 'radio') {\n const checkboxAllDisabled = flatData.every((item, index) => this.getCheckboxPropsByItem(item, index).disabled);\n selectionCheckboxAll = rowSelection.columnTitle || (React.createElement(SelectionCheckboxAll, { store: this.tableStore, data: flatData, getCheckboxPropsByItem: this.getCheckboxPropsByItem, getRecordKey: this.getRecordKey, disabled: checkboxAllDisabled, prefixCls: classPrefix, onSelect: this.handleSelectRow, selections: rowSelection.selections, hideDefaultSelections: rowSelection.hideDefaultSelections }));\n }\n return (React.createElement(Column, { key: selectionColumn.key, width: selectionColumn.width, align: \"center\", fixed: fixed },\n React.createElement(HeaderCell, null, selectionCheckboxAll),\n React.createElement(Cell, { dataKey: rowKey }, (rowData, rowIndex) => this.renderSelectionBox(rowSelection.type, rowData, rowIndex))));\n }\n }\n getCellDescriptor() {\n if (this._cacheCells) {\n return this._cacheCells;\n }\n let hasCustomTreeCol = false;\n let left = 0; // Cell left margin\n const headerCells = []; // Table header cell\n const bodyCells = []; // Table body cell\n const { children, columns: columnsJson } = this.props;\n let columnHack = children;\n if (columnsJson && columnsJson.length) {\n columnHack = columnsJson;\n }\n if (!columnHack) {\n this._cacheCells = {\n headerCells,\n bodyCells,\n hasCustomTreeCol,\n allColumnsWidth: left,\n };\n return this._cacheCells;\n }\n const columns = this.getTableColumns();\n const { width: tableWidth } = this.state;\n const { sortColumn, rowHeight, showHeader } = this.props;\n const { totalFlexGrow, totalWidth } = getTotalByColumns(columns, this.state);\n const headerHeight = this.getTableHeaderHeight();\n React.Children.forEach(columns, (column, index) => {\n if (React.isValidElement(column)) {\n const columnChildren = column.props.children;\n const { width, resizable, flexGrow, minWidth, onResize, treeCol } = column.props;\n if (treeCol) {\n hasCustomTreeCol = true;\n }\n if (resizable && flexGrow) {\n console.warn(`Cannot set 'resizable' and 'flexGrow' together in <Column>, column index: ${index}`);\n }\n if (columnChildren.length !== 2) {\n throw new Error(`Component <HeaderCell> and <Cell> is required, column index: ${index} `);\n }\n let nextWidth = this.state[`${columnChildren[1].props.dataKey}_${index}_width`] || width || 0;\n if (tableWidth && flexGrow && totalFlexGrow) {\n nextWidth = Math.max(((tableWidth - totalWidth) / totalFlexGrow) * flexGrow, minWidth || 60);\n }\n const cellProps = {\n ...omit(column.props, ['children']),\n 'aria-colindex': index + 1,\n left,\n index,\n headerHeight,\n key: index,\n width: nextWidth,\n height: rowHeight,\n firstColumn: index === 0,\n lastColumn: index === columns.length - 1,\n onCell: column.props.onCell,\n };\n if (showHeader && headerHeight) {\n const headerCellProps = {\n // index 用于拖拽列宽时候(Resizable column),定义的序号\n index,\n dataKey: columnChildren[1].props.dataKey,\n isHeaderCell: true,\n minWidth: column.props.minWidth,\n sortable: column.props.sortable,\n onSortColumn: this.handleSortColumn,\n sortType: this.getSortType(),\n sortColumn,\n flexGrow,\n };\n if (resizable) {\n merge(headerCellProps, {\n onResize,\n onColumnResizeEnd: this.handleColumnResizeEnd,\n onColumnResizeStart: this.handleColumnResizeStart,\n onColumnResizeMove: this.handleColumnResizeMove,\n });\n }\n headerCells.push(\n // @ts-ignore\n React.cloneElement(columnChildren[0], { ...cellProps, ...headerCellProps }));\n }\n // @ts-ignore\n bodyCells.push(React.cloneElement(columnChildren[1], cellProps));\n left += nextWidth;\n }\n });\n if (this.tableStore.customizable) {\n const customizationHeaderProps = {\n 'aria-colindex': 999,\n left: left - 30,\n headerHeight,\n key: CUSTOMIZED_KEY,\n width: 14,\n height: rowHeight,\n fixed: 'right',\n className: this.addPrefix('customization-header'),\n isHeaderCell: true,\n };\n const { tableStore: { customizedColumnHeader } } = this;\n // @ts-ignore\n headerCells.push(React.createElement(HeaderCell, Object.assign({}, customizationHeaderProps), customizedColumnHeader()));\n }\n return (this._cacheCells = {\n headerCells,\n bodyCells,\n allColumnsWidth: left,\n hasCustomTreeCol,\n });\n }\n setSelectedRowKeys(selectedRowKeys, selectionInfo) {\n const { selectWay, record, checked, changeRowKeys, nativeEvent } = selectionInfo;\n const rowSelection = getRowSelection(this.props);\n if (rowSelection) {\n runInAction(() => {\n this.tableStore.selectedRowKeys = selectedRowKeys;\n });\n }\n const { data } = this.state;\n if (!rowSelection.onChange && !rowSelection[selectWay]) {\n return;\n }\n const selectedRows = data.filter((row, i) => selectedRowKeys.indexOf(this.getRecordKey(row, i)) >= 0);\n if (rowSelection.onChange) {\n rowSelection.onChange(selectedRowKeys, selectedRows);\n }\n if (selectWay === 'onSelect' && rowSelection.onSelect) {\n rowSelection.onSelect(record, checked, selectedRows, nativeEvent);\n }\n else if (selectWay === 'onSelectMultiple' && rowSelection.onSelectMultiple) {\n const changeRows = data.filter((row, i) => changeRowKeys.indexOf(this.getRecordKey(row, i)) >= 0);\n rowSelection.onSelectMultiple(checked, selectedRows, changeRows);\n }\n else if (selectWay === 'onSelectAll' && rowSelection.onSelectAll) {\n const changeRows = data.filter((row, i) => changeRowKeys.indexOf(this.getRecordKey(row, i)) >= 0);\n rowSelection.onSelectAll(checked, selectedRows, changeRows);\n }\n else if (selectWay === 'onSelectInvert' && rowSelection.onSelectInvert) {\n rowSelection.onSelectInvert(selectedRowKeys);\n }\n }\n initPosition() {\n if (this.isRTL()) {\n setTimeout(() => {\n const { contentWidth, width } = this.state;\n this.scrollX = width - contentWidth - SCROLLBAR_WIDTH;\n this.updatePosition();\n this.scrollbarXRef?.current?.resetScrollBarPosition?.(-this.scrollX);\n }, 0);\n }\n }\n initBScroll(tableBody) {\n this.bscroll = new BScroll(tableBody, {\n disableMouse: false,\n disableTouch: false,\n useTransition: false,\n scrollbar: false,\n probeType: 3,\n scrollX: true,\n click: true,\n momentumLimitTime: 500,\n });\n const hooks = this.bscroll.scroller.actions.hooks;\n hooks.on('start', this.handleTouchStart);\n const thHooks = this.bscroll.scroller.actionsHandler.hooks;\n thHooks.on('move', this.handleTouchMove);\n this.bscroll.on('scroll', (pos) => {\n this.handleScrollY(this.scrollY - pos.y);\n this.scrollY = pos.y;\n });\n }\n updatePosition() {\n /**\n * 当存在锁定列情况处理\n */\n if (this.state.shouldFixedColumn) {\n this.updatePositionByFixedCell();\n }\n else {\n const wheelStyle = {};\n const headerStyle = {};\n // @ts-ignore\n this.translateDOMPositionXY(wheelStyle, this.scrollX, this.scrollY);\n // @ts-ignore\n this.translateDOMPositionXY(headerStyle, this.scrollX, 0);\n const wheelElement = this.wheelWrapperRef?.current;\n const headerElement = this.headerWrapperRef?.current;\n const affixHeaderElement = this.affixHeaderWrapperRef?.current;\n wheelElement && addStyle(wheelElement, wheelStyle);\n headerElement && addStyle(headerElement, headerStyle);\n if (affixHeaderElement?.hasChildNodes?.()) {\n addStyle(affixHeaderElement.firstChild, headerStyle);\n }\n }\n if (this.tableHeaderRef?.current) {\n toggleClass(this.tableHeaderRef.current, this.addPrefix('cell-group-shadow'), this.scrollY < 0);\n }\n }\n updatePositionByFixedCell() {\n const wheelGroupStyle = {};\n const wheelStyle = {};\n const scrollGroups = this.getScrollCellGroups();\n const fixedLeftGroups = this.getFixedLeftCellGroups();\n const fixedRightGroups = this.getFixedRightCellGroups();\n const { contentWidth, width } = this.state;\n // @ts-ignore\n this.translateDOMPositionXY(wheelGroupStyle, this.scrollX, 0);\n // @ts-ignore\n this.translateDOMPositionXY(wheelStyle, 0, this.scrollY);\n const scrollArrayGroups = Array.from(scrollGroups);\n for (let i = 0; i < scrollArrayGroups.length; i++) {\n const group = scrollArrayGroups[i];\n addStyle(group, wheelGroupStyle);\n }\n if (this.wheelWrapperRef?.current) {\n addStyle(this.wheelWrapperRef.current, wheelStyle);\n }\n const leftShadowClassName = this.addPrefix('cell-group-left-shadow');\n const rightShadowClassName = this.addPrefix('cell-group-right-shadow');\n const showLeftShadow = this.scrollX < 0;\n const showRightShadow = width - contentWidth !== this.scrollX;\n toggleClass(fixedLeftGroups, leftShadowClassName, showLeftShadow);\n toggleClass(fixedRightGroups, rightShadowClassName, showRightShadow);\n }\n shouldRenderExpandedRow(rowData) {\n const { rowKey, renderRowExpanded, isTree } = this.props;\n const expandedRowKeys = this.getExpandedRowKeys() || [];\n return (isFunction(renderRowExpanded) &&\n !isTree &&\n expandedRowKeys.some(key => key === rowData[rowKey]));\n }\n calculateRowMaxHeight() {\n const { wordWrap } = this.props;\n if (wordWrap) {\n const tableRowsMaxHeight = [];\n const tableRows = Object.values(this.tableRows);\n for (let i = 0; i < tableRows.length; i++) {\n const [row] = tableRows[i];\n if (row) {\n const cells = row.querySelectorAll(`.${this.addPrefix('cell-wrap')}`) || [];\n const cellArray = Array.from(cells);\n let maxHeight = 0;\n for (let j = 0; j < cellArray.length; j++) {\n const cell = cellArray[j];\n const h = getHeight(cell);\n maxHeight = Math.max(maxHeight, h);\n }\n // @ts-ignore\n tableRowsMaxHeight.push(maxHeight);\n }\n }\n this.setState({ tableRowsMaxHeight });\n }\n }\n calculateTableContentWidth(prevProps) {\n const table = this.tableRef?.current;\n const row = table.querySelector(`.${this.addPrefix('row')}:not(.virtualized)`);\n const contentWidth = row ? getWidth(row) : 0;\n const { contentHeight } = this.state;\n const height = this.getTableHeight();\n this.setState({ contentWidth });\n // 这里 -SCROLLBAR_WIDTH 是为了让滚动条不挡住内容部分\n this.minScrollX = -(contentWidth - this.state.width) - (contentHeight > height ? SCROLLBAR_WIDTH : 0);\n /**\n * 1.判断 Table 列数是否发生变化\n * 2.判断 Table 内容区域是否宽度有变化\n *\n * 满足 1 和 2 则更新横向滚动条位置\n */\n if (flatten(this.props.children).length !==\n flatten(prevProps.children).length &&\n this.state.contentWidth !== contentWidth) {\n this.scrollLeft(0);\n }\n }\n calculateTableContextHeight(prevProps) {\n const table = this.tableRef.current;\n const rows = table.querySelectorAll(`.${this.addPrefix('row')}`) || [];\n const { autoHeight, affixHeader, showScrollArrow } = this.props;\n const height = this.getTableHeight();\n const headerHeight = this.getTableHeaderHeight();\n const contentHeight = rows.length\n ? Array.from(rows)\n .map((row) => {\n return Math.max(getHeight(row), Number(toPx(row.style.height)), this.getRowHeight()) || this.getRowHeight();\n })\n .reduce((x, y) => x + y)\n : 0;\n // 当设置 affixHeader 属性后要减掉两个 header 的高度\n const nextContentHeight = contentHeight - (affixHeader ? headerHeight * 2 : headerHeight);\n if (nextContentHeight !== this.state.contentHeight) {\n this.setState({ contentHeight: nextContentHeight });\n }\n if (prevProps &&\n // 当 data 更新,或者表格高度更新,则更新滚动条\n (prevProps.height !== height || prevProps.data !== this.props.data) &&\n this.scrollY !== 0) {\n this.scrollTop(Math.abs(this.scrollY));\n this.updatePosition();\n }\n if (!autoHeight) {\n // 这里 -SCROLLBAR_WIDTH 和 -SCROLLBAR_LARGE_WIDTH 是为了让滚动条不挡住内容部分\n if (!showScrollArrow) {\n this.minScrollY = -(contentHeight - height) - SCROLLBAR_WIDTH;\n }\n else {\n this.minScrollY = -(contentHeight - height) - SCROLLBAR_LARGE_WIDTH;\n }\n }\n // 如果内容区域的高度小于表格的高度,则重置 Y 坐标滚动条\n if (contentHeight < height) {\n this.scrollTop(0);\n }\n // 如果 scrollTop 的值大于可以滚动的范围 ,则重置 Y 坐标滚动条\n // 当 Table 为 virtualized 时, wheel 事件触发每次都会进入该逻辑, 避免在滚动到底部后滚动条重置, +SCROLLBAR_WIDTH\n if (Math.abs(this.scrollY) + height - headerHeight > nextContentHeight + SCROLLBAR_WIDTH) {\n this.scrollTop(this.scrollY);\n }\n }\n getControlledScrollTopValue(value) {\n if (this.props.autoHeight) {\n return [0, 0];\n }\n const { contentHeight } = this.state;\n const headerHeight = this.getTableHeaderHeight();\n const height = this.getTableHeight();\n // 滚动值的最大范围判断\n value = Math.min(value, Math.max(0, contentHeight - (height - headerHeight)));\n // value 值是表格理论滚动位置的一个值,通过 value 计算出 scrollY 坐标值与滚动条位置的值\n return [-value, (value / contentHeight) * (height - headerHeight)];\n }\n getControlledScrollLeftValue(value) {\n const { contentWidth, width } = this.state;\n // 滚动值的最大范围判断\n value = Math.min(value, Math.max(0, contentWidth - width));\n return [-value, (value / contentWidth) * width];\n }\n onRowClick(rowData, event, rowIndex, index) {\n const { highLightRow, rowKey, rowDraggable } = this.props;\n const rowNum = rowDraggable ? rowData[rowKey] : rowIndex;\n if (highLightRow) {\n const tableRows = Object.values(this.tableRows);\n let ref = this.tableRows[index] && this.tableRows[index][0];\n if (rowDraggable) {\n ref = tableRows.find(row => row[1][rowKey] === rowData[rowKey]) ?\n tableRows.find(row => row[1][rowKey] === rowData[rowKey])[0] :\n this.tableRows[index][0];\n }\n if (this._lastRowIndex !== rowNum && ref) {\n if (this._lastRowIndex || this._lastRowIndex === 0) {\n this.tableRows[this._lastRowIndex][0].className = ref.className.replace(` ${this.addPrefix('row-highLight')}`, '');\n }\n ref.className = `${ref.className} ${this.addPrefix('row-highLight')}`;\n }\n this._lastRowIndex = rowNum;\n }\n this.props.onRowClick?.(rowData, event);\n }\n renderRowData(bodyCells, rowData, props, shouldRenderExpandedRow) {\n const { renderTreeToggle, rowKey, wordWrap, isTree } = this.props;\n const hasChildren = isTree && rowData.children && Array.isArray(rowData.children);\n const nextRowKey = typeof rowData[rowKey] !== 'undefined' ? rowData[rowKey] : props.key;\n const rowProps = {\n ...props,\n // Fixed Row missing custom rowKey\n key: nextRowKey,\n 'aria-rowindex': props.key + 2,\n rowRef: this.bindTableRowsRef(props.key, rowData),\n onClick: this.bindRowClick(props.rowIndex, props.key, rowData),\n onContextMenu: this.bindRowContextMenu(rowData),\n };\n const expandedRowKeys = this.getExpandedRowKeys() || [];\n const expanded = expandedRowKeys.some(key => key === rowData[rowKey]);\n const cells = [];\n for (let i = 0; i < bodyCells.length; i++) {\n const cell = bodyCells[i];\n cells.push(\n // @ts-ignore\n React.cloneElement(cell, {\n hasChildren,\n rowData,\n wordWrap,\n renderTreeToggle,\n height: props.height,\n rowIndex: props.rowIndex,\n depth: props.depth,\n onTreeToggle: this.handleTreeToggle,\n rowKey: nextRowKey,\n expanded,\n }));\n }\n return this.renderRow(rowProps, cells, shouldRenderExpandedRow, rowData);\n }\n calculateFixedAndScrollColumn(cells) {\n const fixedLeftCells = [];\n const fixedRightCells = [];\n const scrollCells = [];\n let fixedLeftCellGroupWidth = 0;\n let fixedRightCellGroupWidth = 0;\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i];\n const { fixed, width } = cell.props;\n let isFixedStart = fixed === 'left' || fixed === true;\n let isFixedEnd = fixed === 'right';\n if (this.isRTL()) {\n isFixedStart = fixed === 'right';\n isFixedEnd = fixed === 'left' || fixed === true;\n }\n if (isFixedStart) {\n // @ts-ignore\n fixedLeftCells.push(cell);\n fixedLeftCellGroupWidth += width;\n }\n else if (isFixedEnd) {\n // @ts-ignore\n fixedRightCells.push(cell);\n if (cell.key !== CUSTOMIZED_KEY) {\n fixedRightCellGroupWidth += width;\n }\n }\n else {\n // @ts-ignore\n scrollCells.push(cell);\n }\n }\n return { fixedLeftCells, fixedRightCells, scrollCells, fixedLeftCellGroupWidth, fixedRightCellGroupWidth };\n }\n renderRow(props, cells, shouldRenderExpandedRow, rowData) {\n const { rowClassName, highLightRow, virtualized, rowDraggable } = this.props;\n const { shouldFixedColumn, width, contentWidth } = this.state;\n const { depth, rowIndex, isHeaderRow, ...restRowProps } = props;\n const rowKey = rowData && this.getRecordKey(rowData, rowIndex);\n if (typeof rowClassName === 'function') {\n restRowProps.className = rowClassName(rowData);\n }\n else {\n restRowProps.className = rowClassName;\n }\n if (rowKey === this._lastRowIndex && virtualized && highLightRow && !isHeaderRow) {\n restRowProps.className = `${rowClassName} ${this.addPrefix('row-highLight')}`;\n }\n const rowStyles = {};\n let rowRight = 0;\n if (this.isRTL() && contentWidth > width) {\n rowRight = width - contentWidth;\n rowStyles.right = rowRight;\n }\n // 修复合并行的最后一行没有borderBottom 和 合并行后的单元格被遮挡的问题\n for (let i = 0; i < cells.length; i++) {\n const cellUnit = cells[i];\n if (cellUnit.props.onCell) {\n const cellExternalProps = cellUnit.props.onCell({\n rowData,\n }) || {};\n if (cellExternalProps.rowSpan > 1) {\n let setNextRow = rowIndex + cellExternalProps.rowSpan - 1;\n if (!this.setRowBottomBorderList.includes(setNextRow)) {\n this.setRowBottomBorderList.push(setNextRow);\n }\n if (!this.nextRowZIndex.includes(setNextRow) && cellUnit.props.fixed) {\n this.nextRowZIndex.push(setNextRow);\n }\n }\n }\n }\n if (this.setRowBottomBorderList.includes(rowIndex)) {\n restRowProps.className = `${restRowProps.className} ${this.addPrefix('row-span-end')}`;\n }\n // IF there are fixed columns, add a fixed group\n if (shouldFixedColumn && contentWidth > width) {\n if (rowData && uniq(this.tableStore.rowZIndex.slice()).includes(rowIndex)) {\n rowStyles.zIndex = 0;\n }\n if (this.nextRowZIndex.includes(rowIndex)) {\n rowStyles.zIndex = -1;\n }\n const { fixedLeftCells = [], fixedRightCells = [], scrollCells = [], fixedLeftCellGroupWidth = 0, fixedRightCellGroupWidth = 0 } = this.calculateFixedAndScrollColumn(cells);\n if (rowDraggable && !isHeaderRow) {\n return (React.createElement(Draggable, { draggableId: String(rowKey), index: rowIndex, key: rowKey }, (provided, snapshot) => (React.createElement(Row, Object.assign({}, restRowProps, { \"data-depth\": depth, style: rowStyles, rowDraggable: rowDraggable, isHeaderRow: isHeaderRow, provided: provided, snapshot: snapshot, rowRef: this.bindTableRowsRef(props.key, rowData, provided) }),\n fixedLeftCellGroupWidth ? (React.createElement(CellGroup, { provided: provided, snapshot: snapshot, rowDraggable: rowDraggable, fixed: \"left\", height: props.isHeaderRow ? props.headerHeight : props.height, width: fixedLeftCellGroupWidth, \n // @ts-ignore\n style: this.isRTL() ? { right: width - fixedLeftCellGroupWidth - rowRight } : null }, mergeCells(resetLeftForCells(fixedLeftCells)))) : null,\n React.createElement(CellGroup, { provided: provided, snapshot: snapshot, rowDraggable: rowDraggable }, mergeCells(scrollCells)),\n fixedRightCellGroupWidth || fixedRightCells.length ? (React.createElement(CellGroup, { provided: provided, snapshot: snapshot, rowDraggable: rowDraggable, fixed: \"right\", style: this.isRTL()\n ? { right: 0 - rowRight }\n : { left: width - fixedRightCellGroupWidth - SCROLLBAR_WIDTH }, height: props.isHeaderRow ? props.headerHeight : props.height, width: fixedRightCellGroupWidth + SCROLLBAR_WIDTH }, mergeCells(resetLeftForCells(fixedRightCells, SCROLLBAR_WIDTH)))) : null,\n shouldRenderExpandedRow && this.renderRowExpanded(rowData)))));\n }\n return (React.createElement(Row, Object.assign({}, restRowProps, { isHeaderRow: isHeaderRow, \"data-depth\": depth, style: rowStyles }),\n fixedLeftCellGroupWidth ? (React.createElement(CellGroup, { fixed: \"left\", height: props.isHeaderRow ? props.headerHeight : props.height, width: fixedLeftCellGroupWidth, \n // @ts-ignore\n style: this.isRTL() ? { right: width - fixedLeftCellGroupWidth - rowRight } : null }, mergeCells(resetLeftForCells(fixedLeftCells)))) : null,\n React.createElement(CellGroup, null, mergeCells(scrollCells)),\n fixedRightCellGroupWidth || fixedRightCells.length ? (React.createElement(CellGroup, { fixed: \"right\", style: this.isRTL()\n ? { right: 0 - rowRight }\n : { left: width - fixedRightCellGroupWidth - SCROLLBAR_WIDTH }, height: props.isHeaderRow ? props.headerHeight : props.height, width: fixedRightCellGroupWidth + SCROLLBAR_WIDTH }, mergeCells(resetLeftForCells(fixedRightCells, SCROLLBAR_WIDTH)))) : null,\n shouldRenderExpandedRow && this.renderRowExpanded(rowData)));\n }\n if (rowDraggable && !isHeaderRow) {\n return (React.createElement(Draggable, { draggableId: String(rowKey), index: rowIndex, key: rowKey }, (provided, snapshot) => (React.createElement(Row, Object.assign({}, restRowProps, { \"data-depth\": depth, style: rowStyles, rowDraggable: rowDraggable, provided: provided, snapshot: snapshot, isHeaderRow: isHeaderRow, rowRef: this.bindTableRowsRef(props.key, rowData, provided) }),\n React.createElement(CellGroup, { provided: provided, snapshot: snapshot, rowDraggable: rowDraggable }, mergeCells(cells)),\n shouldRenderExpandedRow && this.renderRowExpanded(rowData)))));\n }\n return (React.createElement(Row, Object.assign({}, restRowProps, { isHeaderRow: isHeaderRow, \"data-depth\": depth, style: rowStyles }),\n React.createElement(CellGroup, null, mergeCells(cells)),\n shouldRenderExpandedRow && this.renderRowExpanded(rowData)));\n }\n renderRowExpanded(rowData) {\n const { renderRowExpanded, rowExpandedHeight } = this.props;\n const styles = { height: rowExpandedHeight };\n if (isFunction(renderRowExpanded)) {\n return (React.createElement(\"div\", { className: this.addPrefix('row-expanded'), style: styles }, renderRowExpanded(rowData)));\n }\n return null;\n }\n renderMouseArea() {\n const headerHeight = this.getTableHeaderHeight();\n const styles = { height: this.getTableHeight() };\n const spanStyles = { height: headerHeight - 1 };\n return (React.createElement(\"div\", { ref: this.mouseAreaRef, className: this.addPrefix('mouse-area'), style: styles },\n React.createElement(\"span\", { style: spanStyles })));\n }\n renderTableHeader(headerCells, rowWidth) {\n const { affixHeader } = this.props;\n const { width: tableWidth } = this.state;\n const top = typeof affixHeader === 'number' ? affixHeader : 0;\n const headerHeight = this.getTableHeaderHeight();\n const rowProps = {\n 'aria-rowindex': 1,\n rowRef: this.tableHeaderRef,\n width: rowWidth,\n height: this.getRowHeight(),\n headerHeight,\n isHeaderRow: true,\n top: 0,\n };\n const fixedStyle = {\n position: 'fixed',\n overflow: 'hidden',\n height: this.getTableHeaderHeight(),\n width: tableWidth,\n top,\n };\n // Affix header\n const header = (React.createElement(\"div\", { className: classNames(this.addPrefix('affix-header')), style: fixedStyle, ref: this.affixHeaderWrapperRef }, this.renderRow(rowProps, headerCells)));\n return (React.createElement(React.Fragment, null,\n (affixHeader === 0 || affixHeader) && header,\n React.createElement(\"div\", { role: \"rowgroup\", className: this.addPrefix('header-row-wrapper'), ref: this.headerWrapperRef }, this.renderRow(rowProps, headerCells))));\n }\n renderTableBody(bodyCells, rowWidth) {\n const { rowExpandedHeight, renderRowExpanded, isTree, rowKey, wordWrap, virtualized, rowHeight, rowDraggable, } = this.props;\n const headerHeight = this.getTableHeaderHeight();\n const { tableRowsMaxHeight, isScrolling, data, contentWidth, shouldFixedColumn, width } = this.state;\n const height = this.getTableHeight();\n const bodyHeight = height - headerHeight;\n const minLeft = Math.abs(this.scrollX);\n const bodyStyles = {\n top: headerHeight,\n height: bodyHeight,\n };\n let contentHeight = 0;\n let topHideHeight = 0;\n let bottomHideHeight = 0;\n this._visibleRows = [];\n if (data) {\n let top = 0; // Row position\n let renderCols = bodyCells; // Render Col\n const minTop = Math.abs(this.scrollY);\n // @ts-ignore\n const maxTop = minTop + height + rowExpandedHeight;\n const isCustomRowHeight = isFunction(rowHeight);\n const isUncertainHeight = !!(renderRowExpanded || isCustomRowHeight || isTree);\n /**\n * 如果开启了虚拟滚动 则计算列显示\n * 判断是否有缓存,如果minLeft 没有变化,就取缓存的值,有变化就重新计算\n */\n if (virtualized && contentWidth > width && (this._cacheScrollX !== minLeft || !this._cacheRenderCols.length)) {\n // 计算渲染列数量\n let colIndex = 0; // 列索引\n let displayColWidth = 0; // 显示列的宽度\n let renderLeftFixedCol = []; // 需要渲染的固定左边列\n let renderRightFixedCol = []; // 需要渲染的固定右边列\n let showNum = 0; // 显示列数\n let divideLeftFixedCol = 0;\n let divideRightFixedCol = 0;\n // 找到左固定列\n if (shouldFixedColumn) {\n for (let i = 0; i < bodyCells.length; i++) {\n const bc = bodyCells[i];\n const { fixed } = bc.props;\n if ((fixed && fixed !== 'right') || fixed === 'left') {\n renderLeftFixedCol.push(bc);\n }\n else {\n break;\n }\n }\n // 找到右固定列\n for (let i = bodyCells.length - 1; i >= 0; i--) {\n const bc = bodyCells[i];\n const { fixed } = bc.props;\n if (fixed === 'right') {\n renderRightFixedCol.push(bc);\n }\n else {\n break;\n }\n }\n renderRightFixedCol = renderRightFixedCol.reverse();\n // 计算需要减去左右固定列的宽度和\n divideLeftFixedCol = renderLeftFixedCol.reduce((val, item) => val + item.props.width, 0);\n divideRightFixedCol = renderRightFixedCol.reduce((val, item) => val + item.props.width, 0);\n }\n // 遍历显示列的总宽度与x滚动条关系\n for (let i = 0; i < bodyCells.length; i++) {\n const elem = bodyCells[i];\n displayColWidth += elem.props.width;\n if ((displayColWidth - divideLeftFixedCol) > minLeft) {\n colIndex = i;\n break;\n }\n }\n // 计算显示列开始下标\n const colStartIndex = colIndex > renderLeftFixedCol.length ? colIndex - 1 : colIndex; //\n // 判断当前容器宽度能容纳列数\n let currentDisplayColWidth = 0;\n // 总宽度减去左右固定列的宽度\n const divideWidth = width - divideLeftFixedCol - divideRightFixedCol;\n // 遍历列宽度 与 容器宽度 得出该容器下显示的列数\n for (let i = colIndex + 1 + renderRightFixedCol.length; i < bodyCells.length; i++) {\n const elem = bodyCells[i];\n currentDisplayColWidth += elem.props.width;\n if (currentDisplayColWidth > divideWidth) {\n showNum = i - colIndex;\n break;\n }\n }\n // 计算列显示的结束下标\n const colEndIndex = (showNum ? (colIndex + showNum) + 1 : bodyCells.length) - renderRightFixedCol.length; //\n // 最后slice 需要渲染的部分列\n if (renderLeftFixedCol.length + renderRightFixedCol.length === bodyCells.length) {\n renderCols = [...renderLeftFixedCol, ...renderRightFixedCol];\n }\n else {\n renderCols = [...renderLeftFixedCol, ...bodyCells.slice(colStartIndex, colEndIndex), ...renderRightFixedCol];\n }\n this._cacheScrollX = minLeft;\n this._cacheRenderCols = renderCols;\n }\n else {\n renderCols = this._cacheRenderCols.length ? this._cacheRenderCols : bodyCells;\n }\n /**\n 如果开启了 virtualized 同时 Table 中的的行高是可变的,\n 则需要循环遍历 data, 获取每一行的高度。\n */\n if ((isUncertainHeight && virtualized) || !virtualized) {\n // temp test\n let keyIndex = 0;\n for (let index = 0; index < data.length; index++) {\n const rowData = data[index];\n const maxHeight = tableRowsMaxHeight[index];\n const shouldRenderExpandedRow = this.shouldRenderExpandedRow(rowData);\n let nextRowHeight = 0;\n let depth = 0;\n if (typeof rowHeight === 'function') {\n nextRowHeight = rowHeight(rowData);\n }\n else {\n nextRowHeight = maxHeight\n ? Math.max(maxHeight + CELL_PADDING_HEIGHT, rowHeight)\n : rowHeight;\n if (shouldRenderExpandedRow) {\n // @ts-ignore\n nextRowHeight += rowExpandedHeight;\n }\n }\n if (isTree) {\n const parents = findAllParents(rowData, rowKey);\n const expandedRowKeys = this.getExpandedRowKeys();\n depth = parents.length;\n // 如果是 Tree Table, 判断当前的行是否展开/折叠,如果是折叠则不显示该行。\n // @ts-ignore\n if (!shouldShowRowByExpanded(expandedRowKeys, parents)) {\n continue;\n }\n }\n contentHeight += nextRowHeight;\n const rowProps = {\n key: keyIndex,\n rowIndex: index,\n top,\n width: rowWidth,\n depth,\n height: nextRowHeight,\n };\n top += nextRowHeight;\n if (virtualized && !wordWrap) {\n if (top + nextRowHeight < minTop) {\n topHideHeight += nextRowHeight;\n continue;\n }\n else if (top > maxTop) {\n bottomHideHeight += nextRowHeight;\n continue;\n }\n }\n this._visibleRows.push(\n // @ts-ignore\n this.renderRowData(renderCols, rowData, rowProps, shouldRenderExpandedRow));\n keyIndex++;\n }\n }\n else {\n /**\n 如果 Table 的行高是固定的,则直接通过行高与行数进行计算,\n 减少遍历所有 data 带来的性能消耗\n */\n const nextRowHeight = this.getRowHeight();\n const startIndex = Math.max(Math.floor(minTop / nextRowHeight), 0);\n const endIndex = Math.min(startIndex + Math.ceil(bodyHeight / nextRowHeight), data.length);\n contentHeight = data.length * nextRowHeight;\n topHideHeight = startIndex * nextRowHeight;\n bottomHideHeight = (data.length - endIndex) * nextRowHeight;\n // temp test\n let keyIndex = 0;\n for (let index = startIndex; index < endIndex; index++) {\n const rowData = data[index];\n const rowProps = {\n key: keyIndex,\n rowIndex: index,\n top: index * nextRowHeight,\n width: rowWidth,\n height: nextRowHeight,\n };\n // @ts-ignore\n this._visibleRows.push(this.renderRowData(renderCols, rowData, rowProps, false));\n keyIndex++;\n }\n }\n }\n const wheelStyles = {\n position: 'absolute',\n height: contentHeight,\n minHeight: height,\n pointerEvents: isScrolling ? 'none' : undefined,\n };\n const topRowStyles = { height: topHideHeight };\n const bottomRowStyles = { height: bottomHideHeight };\n const body = (React.createElement(LocaleReceiver, { componentName: \"PerformanceTable\", defaultLocale: defaultLocale.PerformanceTable }, (locale) => {\n return (React.createElement(\"div\", { ref: this.tableBodyRef, role: \"rowgroup\", className: this.addPrefix('body-row-wrapper'), style: bodyStyles, onScroll: this.handleBodyScroll },\n React.createElement(\"div\", { style: wheelStyles, className: this.addPrefix('body-wheel-area'), ref: this.wheelWrapperRef },\n topHideHeight ? React.createElement(Row, { style: topRowStyles, className: \"virtualized\" }) : null,\n this._visibleRows,\n bottomHideHeight ? React.createElement(Row, { style: bottomRowStyles, className: \"virtualized\" }) : null),\n this.renderInfo(locale),\n this.renderScrollbar(),\n this.renderLoading()));\n }));\n return rowDraggable ? (React.createElement(DragDropContext, { onDragEnd: this.handleDragEnd },\n React.createElement(Droppable, { droppableId: \"table\", key: \"table\" }, (droppableProvided) => (React.createElement(\"div\", Object.assign({ ref: droppableProvided.innerRef }, droppableProvided.droppableProps),\n body,\n droppableProvided.placeholder))))) : body;\n }\n renderInfo(locale) {\n const { renderEmpty, loading } = this.props;\n if (this._visibleRows.length || loading) {\n return null;\n }\n const emptyMessage = React.createElement(\"div\", { className: this.addPrefix('body-info') }, locale.emptyMessage);\n return renderEmpty ? renderEmpty(emptyMessage) : emptyMessage;\n }\n renderScrollbar() {\n const { disabledScroll, affixHorizontalScrollbar, id, showScrollArrow, clickScrollLength } = this.props;\n const { contentWidth, contentHeight, width, fixedHorizontalScrollbar } = this.state;\n const bottom = typeof affixHorizontalScrollbar === 'number' ? affixHorizontalScrollbar : 0;\n const headerHeight = this.getTableHeaderHeight();\n const height = this.getTableHeight();\n if (disabledScroll) {\n return null;\n }\n const scrollBarOffset = (contentWidth <= this.state.width) || contentHeight <= (height - headerHeight) ? 40 : 60;\n // 减去border的左右边框像素\n const decScrollBarOffset = showScrollArrow ? scrollBarOffset : 2;\n return (React.createElement(\"div\", null,\n React.createElement(Scrollbar, { tableId: id, showScrollArrow: showScrollArrow, clickScrollLength: clickScrollLength, className: classNames({ fixed: fixedHorizontalScrollbar }), style: { width, bottom: fixedHorizontalScrollbar ? bottom : undefined }, length: this.state.width - decScrollBarOffset, onScroll: this.handleScrollX, scrollLength: contentWidth - decScrollBarOffset, ref: this.scrollbarXRef, scrollBarOffset: decScrollBarOffset }),\n React.createElement(Scrollbar, { vertical: true, tableId: id, showScrollArrow: showScrollArrow, clickScrollLength: clickScrollLength, length: height - headerHeight - decScrollBarOffset, scrollLength: contentHeight - decScrollBarOffset, onScroll: this.handleScrollY, ref: this.scrollbarYRef, scrollBarOffset: decScrollBarOffset })));\n }\n /**\n * show loading\n */\n renderLoading() {\n const { loading, loadAnimation, renderLoading } = this.props;\n if (!loadAnimation && !loading) {\n return null;\n }\n const loadingElement = (React.createElement(\"div\", { className: this.addPrefix('loader-wrapper') },\n React.createElement(\"div\", { className: this.addPrefix('loader') },\n React.createElement(Spin, null))));\n return renderLoading ? renderLoading(loadingElement) : loadingElement;\n }\n renderTableToolbar() {\n const { toolbar, toolBarRender, } = this.props;\n if (toolBarRender === false || !toolbar)\n return null;\n const { header, buttons, settings } = toolbar;\n /** 内置的工具栏 */\n return (React.createElement(Toolbar, { header: header, hideToolbar: settings === false && !header && !toolBarRender && !toolbar, buttons: buttons, settings: settings, toolBarRender: toolBarRender }));\n }\n render() {\n const { children, columns, className, data, width = 0, style, isTree = false, hover, bordered, cellBordered, wordWrap, classPrefix, loading, showHeader, queryBar, ...rest } = this.props;\n const { isColumnResizing } = this.state;\n const { headerCells, bodyCells, allColumnsWidth, hasCustomTreeCol } = this.getCellDescriptor();\n const rowWidth = allColumnsWidth > width ? allColumnsWidth : width;\n const clesses = classNames(classPrefix, className, {\n [this.addPrefix('word-wrap')]: wordWrap,\n [this.addPrefix('treetable')]: isTree,\n [this.addPrefix('bordered')]: bordered,\n [this.addPrefix('cell-bordered')]: cellBordered,\n [this.addPrefix('column-resizing')]: isColumnResizing,\n [this.addPrefix('hover')]: hover,\n [this.addPrefix('loading')]: loading,\n });\n const height = this.getTableHeight();\n const styles = {\n width: width || 'auto',\n height: height,\n lineHeight: `${toPx(this.getRowHeight())}px`,\n ...style,\n };\n runInAction(() => {\n this.tableStore.totalHeight = height;\n });\n const unhandled = getUnhandledProps(propTypes, rest);\n const { tableStore, translateDOMPositionXY } = this;\n return (React.createElement(TableContext.Provider, { value: {\n translateDOMPositionXY,\n rtl: this.isRTL(),\n isTree,\n hasCustomTreeCol,\n tableStore,\n } },\n React.createElement(ModalProvider, null,\n queryBar === false ? null : React.createElement(PerformanceTableQueryBar, null),\n this.renderTableToolbar(),\n React.createElement(\"div\", Object.assign({ role: isTree ? 'treegrid' : 'grid', \"aria-rowcount\": data.length + 1, \"aria-colcount\": this._cacheChildrenSize }, unhandled, { className: clesses, style: styles, ref: this.tableRef }),\n showHeader && this.renderTableHeader(headerCells, rowWidth),\n columns && columns.length ? this.renderTableBody(bodyCells, rowWidth) : children && this.renderTableBody(bodyCells, rowWidth),\n showHeader && this.renderMouseArea()))));\n }\n}\nPerformanceTable.displayName = 'performance';\nPerformanceTable.Column = Column;\nPerformanceTable.Cell = Cell;\nPerformanceTable.ColumnGroup = ColumnGroup;\nPerformanceTable.HeaderCell = HeaderCell;\nPerformanceTable.propTypes = propTypes;\nPerformanceTable.ProfessionalBar = ProfessionalBar;\nPerformanceTable.DynamicFilterBar = DynamicFilterBar;\nPerformanceTable.defaultProps = {\n classPrefix: defaultClassPrefix('performance-table'),\n data: [],\n defaultSortType: SORT_TYPE.ASC,\n height: 200,\n rowHeight: 33,\n headerHeight: 33,\n minHeight: 0,\n rowExpandedHeight: 100,\n hover: true,\n highLightRow: true,\n showHeader: true,\n showScrollArrow: false,\n bordered: true,\n rowKey: 'key',\n translate3d: true,\n shouldUpdateScroll: true,\n locale: {\n emptyMessage: 'No data found',\n loading: 'Loading...',\n },\n clickScrollLength: {\n horizontal: 100,\n vertical: 33,\n },\n};\n","import createContext from './utils/createContext';\nimport translateDOMPositionXY from './utils/translateDOMPositionXY';\nimport isRTL from './utils/isRTL';\nconst TableContext = createContext({\n rlt: isRTL(),\n hasCustomTreeCol: false,\n isTree: false,\n translateDOMPositionXY,\n tableStore: {},\n});\nexport default TableContext;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { action, computed, get, observable, runInAction, set } from 'mobx';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport sortBy from 'lodash/sortBy';\nimport debounce from 'lodash/debounce';\nimport isNil from 'lodash/isNil';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { getConfig, getCustomizable, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport { isCalcSize, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport CustomizationColumnHeader from './customization-settings/CustomizationColumnHeader';\nimport CustomizationSettings from './customization-settings';\nimport { getColumnKey } from './utils';\nimport Column from './Column';\nimport autobind from '../_util/autobind';\nimport { $l } from '../locale-context';\nimport { ColumnLock, TableHeightType } from '../table/enum';\n// import isFragment from '../_util/isFragment';\n// export function normalizeColumns(\n// elements: ReactNode,\n// customizedColumns?: object,\n// parent: ColumnProps | null = null,\n// defaultKey: number[] = [0],\n// columnSort = {\n// left: 0,\n// center: 0,\n// right: 0,\n// },\n// ): any[] {\n// const columns: any[] = [];\n// const leftColumns: any[] = [];\n// const rightColumns: any[] = [];\n// const normalizeColumn = (element) => {\n// if (isValidElement<any>(element)) {\n// const { props, key, type } = element;\n// if (isFragment(element)) {\n// const { children } = props;\n// if (children) {\n// Children.forEach(children, normalizeColumn);\n// }\n// } else if ((type as typeof Column).__PFM_TABLE_COLUMN) {\n// const column: any = {\n// ...props,\n// };\n// if (key) {\n// column.key = key;\n// } else {\n// column.key = `anonymous-${defaultKey[0]++}`;\n// }\n// // tree children todo\n// const { children } = column;\n// if (!isNil(customizedColumns)) {\n// const key = column.dataIndex || children[1].props.dataKey;\n// Object.assign(column, customizedColumns[key.toString()]);\n// }\n// if (parent) {\n// column.fixed = parent.fixed;\n// }\n// if (column.title) {\n// const childrenColumns = children[0];\n// column.children = [React.cloneElement(childrenColumns, { children: column.title }), children[1]];\n// }\n//\n// if (parent || !column.fixed) {\n// if (column.sort === undefined) {\n// column.sort = columnSort.center++;\n// }\n// columns.push(React.cloneElement(element, column));\n// } else if (column.fixed === true || column.fixed === 'left') {\n// if (column.sort === undefined) {\n// column.sort = columnSort.left++;\n// }\n// leftColumns.push(React.cloneElement(element, column));\n// // leftColumns.push(column);\n// } else {\n// if (column.sort === undefined) {\n// column.sort = columnSort.right++;\n// }\n// rightColumns.push(React.cloneElement(element, column));\n// // rightColumns.push(column);\n// }\n// }\n// }\n// };\n// Children.forEach(elements, normalizeColumn);\n// if (parent) {\n// return sortBy(columns, ({ props: { sort } }) => sort);\n// }\n// return [\n// ...sortBy(leftColumns, ({ props: { sort } }) => sort),\n// ...sortBy(columns, ({ props: { sort } }) => sort),\n// ...sortBy(rightColumns, ({ props: { sort } }) => sort),\n// ];\n// }\nexport function getRowSelection(props) {\n return props.rowSelection || {};\n}\nexport function mergeDefaultProps(originalColumns, customizedColumns, parent = null, defaultKey = [0], columnSort = {\n left: 0,\n center: 0,\n right: 0,\n}) {\n const columns = [];\n const leftColumns = [];\n const rightColumns = [];\n originalColumns.forEach((column) => {\n if (isPlainObject(column)) {\n const newColumn = { ...Column.defaultProps, ...column };\n if (isNil(getColumnKey(newColumn))) {\n newColumn.key = `anonymous-${defaultKey[0]++}`;\n }\n const { children } = newColumn;\n if (customizedColumns) {\n Object.assign(newColumn, customizedColumns[getColumnKey(newColumn).toString()]);\n }\n if (parent) {\n newColumn.fixed = parent.fixed;\n }\n if (children) {\n // @ts-ignore\n const childrenColumns = mergeDefaultProps(children, customizedColumns, newColumn, defaultKey);\n newColumn.children = childrenColumns;\n }\n if (parent || !newColumn.fixed) {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.center;\n }\n columnSort.center++;\n columns.push(newColumn);\n }\n else if (newColumn.fixed === true || newColumn.fixed === ColumnLock.left) {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.left;\n }\n columnSort.left++;\n leftColumns.push(newColumn);\n }\n else {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.right;\n }\n columnSort.right++;\n rightColumns.push(newColumn);\n }\n }\n }, []);\n if (parent) {\n return sortBy(columns, ({ sort }) => sort);\n }\n return [\n ...sortBy(leftColumns, ({ sort }) => sort),\n ...sortBy(columns, ({ sort }) => sort),\n ...sortBy(rightColumns, ({ sort }) => sort),\n ];\n}\nexport default class TableStore {\n constructor(node) {\n this.highlightRowIndexs = [];\n this.checkboxPropsCache = {};\n this.saveCustomizedDebounce = debounce(this.saveCustomized, 1000);\n this.setCheckboxPropsCache = (cache) => this.checkboxPropsCache = cache;\n runInAction(() => {\n this.node = node;\n this.rowZIndex = [];\n this.customizedActiveKey = ['columns'];\n this.tempCustomized = { columns: {} };\n this.customized = { columns: {} };\n this.selectedRowKeys = getRowSelection(this.node.props).selectedRowKeys || [];\n this.selectionDirty = false;\n if (this.customizable) {\n this.loadCustomized().then(this.handleLoadCustomized);\n }\n });\n }\n get queryBar() {\n return this.node.props.queryBar;\n }\n /**\n * 表头支持编辑\n */\n get columnTitleEditable() {\n if ('columnTitleEditable' in this.node.props) {\n return this.node.props.columnTitleEditable;\n }\n return getConfig('performanceTableColumnTitleEditable') === true;\n }\n get dataSet() {\n return this.node.props.queryBar?.dataSet;\n }\n // @computed\n // get selectedRowKeys(): string[] {\n // return this.node.props.queryBar?.dataSet;\n // }\n async loadCustomized() {\n const { customizedCode } = this.node.props;\n if (this.customizable && customizedCode) {\n const tableCustomizedLoad = getConfig('tableCustomizedLoad') || getConfig('customizedLoad');\n runInAction(() => {\n this.loading = true;\n });\n try {\n const customized = await tableCustomizedLoad(customizedCode, 'PerformanceTable');\n runInAction(() => {\n this.customized = { columns: {}, ...customized };\n });\n }\n finally {\n runInAction(() => {\n this.loading = false;\n });\n }\n }\n }\n updateProps(props, node) {\n this.node = node;\n this.originalColumns = props.columns;\n this.originalChildren = props.children;\n if (this.customizable && props.columns) {\n this.loadCustomized().then(this.handleLoadCustomized);\n }\n }\n get prefixCls() {\n const { classPrefix } = this.node.props;\n return classPrefix;\n }\n get proPrefixCls() {\n return getProPrefixCls('table');\n }\n get columnHideable() {\n if ('columnHideable' in this.node.props) {\n return this.node.props.columnHideable;\n }\n return getConfig('performanceTableColumnHideable') !== false;\n }\n get customizable() {\n const { customizedCode } = this.node.props;\n if (customizedCode && (this.columnTitleEditable || this.columnDraggable || this.columnHideable)) {\n if ('customizable' in this.node.props) {\n return this.node.props.customizable;\n }\n return getConfig('performanceTableCustomizable') || getCustomizable('PerformanceTable');\n }\n return false;\n }\n get heightType() {\n const tempHeightType = get(this.tempCustomized, 'heightType');\n if (tempHeightType !== undefined) {\n return tempHeightType;\n }\n const { heightType } = this.customized;\n if (heightType !== undefined) {\n return heightType;\n }\n return this.originalHeightType;\n }\n get originalHeightType() {\n const { height, autoHeight } = this.node.props;\n if (autoHeight) {\n return TableHeightType.flex;\n }\n if (height) {\n if (isString(height) && isCalcSize(height)) {\n return TableHeightType.flex;\n }\n if (isNumber(toPx(height))) {\n return TableHeightType.fixed;\n }\n }\n return TableHeightType.auto;\n }\n openCustomizationModal(modal) {\n const { node: { element, props: { height } }, } = this;\n if (height === undefined) {\n this.totalHeight = element.offsetHeight;\n }\n const { customizedCode } = this.node.props;\n const modalProps = {\n drawer: true,\n size: Size.small,\n title: $l('Table', 'customization_settings'),\n children: React.createElement(CustomizationSettings, null),\n bodyStyle: {\n overflow: 'hidden auto',\n padding: 0,\n },\n };\n if (customizedCode) {\n modalProps.okText = $l('Table', 'save_button');\n }\n modal.open(modalProps);\n }\n customizedColumnHeader() {\n return React.createElement(CustomizationColumnHeader, { onHeaderClick: this.openCustomizationModal });\n }\n initColumns() {\n const { customized, customizable } = this;\n const { columns } = this.node.props;\n const customizedColumns = customizable ? customized.columns : undefined;\n this.originalColumns = mergeDefaultProps(columns, customizedColumns);\n this.node._cacheCells = null;\n this.node.forceUpdate();\n }\n handleLoadCustomized() {\n this.initColumns();\n }\n changeCustomizedColumnValue(columnKey, value) {\n const { customized: { columns } } = this;\n const oldCustomized = get(columns, columnKey);\n set(columns, columnKey, {\n ...oldCustomized,\n ...value,\n });\n this.saveCustomizedDebounce();\n }\n saveCustomized(customized) {\n if (this.customizable) {\n const { customizedCode } = this.node.props;\n if (customized) {\n this.customized = customized;\n }\n this.node.forceUpdate();\n if (customizedCode) {\n const tableCustomizedSave = getConfig('tableCustomizedSave') || getConfig('customizedSave');\n tableCustomizedSave(customizedCode, this.customized, 'PerformanceTable');\n }\n }\n }\n ;\n get columnDraggable() {\n if ('columnDraggable' in this.node.props) {\n return this.node.props.columnDraggable;\n }\n return getConfig('performanceTableColumnDraggable') === true;\n }\n}\n__decorate([\n observable\n], TableStore.prototype, \"props\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"originalColumns\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"customizedActiveKey\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"tempCustomized\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"customized\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"totalHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"height\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"loading\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"rowZIndex\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"selectedRowKeys\", void 0);\n__decorate([\n computed\n], TableStore.prototype, \"queryBar\", null);\n__decorate([\n computed\n], TableStore.prototype, \"columnTitleEditable\", null);\n__decorate([\n computed\n], TableStore.prototype, \"dataSet\", null);\n__decorate([\n action\n], TableStore.prototype, \"updateProps\", null);\n__decorate([\n computed\n], TableStore.prototype, \"prefixCls\", null);\n__decorate([\n computed\n], TableStore.prototype, \"proPrefixCls\", null);\n__decorate([\n computed\n], TableStore.prototype, \"columnHideable\", null);\n__decorate([\n computed\n], TableStore.prototype, \"customizable\", null);\n__decorate([\n computed\n], TableStore.prototype, \"heightType\", null);\n__decorate([\n computed\n], TableStore.prototype, \"originalHeightType\", null);\n__decorate([\n autobind,\n action\n], TableStore.prototype, \"openCustomizationModal\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"customizedColumnHeader\", null);\n__decorate([\n action\n], TableStore.prototype, \"initColumns\", null);\n__decorate([\n autobind,\n action\n], TableStore.prototype, \"handleLoadCustomized\", null);\n__decorate([\n action\n], TableStore.prototype, \"changeCustomizedColumnValue\", null);\n__decorate([\n action\n], TableStore.prototype, \"saveCustomized\", null);\n__decorate([\n computed\n], TableStore.prototype, \"columnDraggable\", null);\n","export const LAYER_WIDTH = 30;\nexport const SCROLLBAR_MIN_WIDTH = 14;\nexport const SCROLLBAR_WIDTH = 10;\nexport const SCROLLBAR_LARGE_WIDTH = 20;\nexport const CELL_PADDING_HEIGHT = 26;\nexport const RESIZE_MIN_WIDTH = 20;\n","import React, { useCallback } from 'react';\nimport { FuncType } from '../../button/enum';\nimport { Size } from '../../core/enum';\nimport Button from '../../button/Button';\nimport useModal from '../../use-modal';\nconst CustomizationColumnHeader = (props) => {\n const { onHeaderClick } = props;\n const modal = useModal();\n const openCustomizationModal = useCallback(() => onHeaderClick(modal), [modal, onHeaderClick]);\n return (React.createElement(Button, { funcType: FuncType.flat, size: Size.small, icon: \"predefine\", onClick: openCustomizationModal }));\n};\nCustomizationColumnHeader.displayName = 'CustomizationColumnHeader';\nexport default CustomizationColumnHeader;\n","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { action, set, toJS } from 'mobx';\nimport noop from 'lodash/noop';\nimport Collapse from 'choerodon-ui/lib/collapse';\nimport CollapsePanel from 'choerodon-ui/lib/collapse/CollapsePanel';\nimport ColumnGroups from './column-groups';\nimport { getColumnFixed, getColumnKey } from '../utils';\nimport DataSet from '../../data-set/DataSet';\nimport TableContext from '../TableContext';\nimport { $l } from '../../locale-context';\nimport Button from '../../button/Button';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport { Size } from '../../core/enum';\nimport Form from '../../form/Form';\nimport ObserverNumberField from '../../number-field/NumberField';\nimport SelectBox from '../../select-box/SelectBox';\nimport Option from '../../option/Option';\nimport { TableHeightType } from '../../table/enum';\nimport { LabelLayout } from '../../form/enum';\nimport { ShowHelp } from '../../field/enum';\nimport Icon from '../../icon';\nimport { treeReduce } from '../../_util/treeUtils';\nfunction normalizeColumnsToTreeData(columns) {\n return treeReduce(columns, (list, column, _sort, parentColumn) => list.concat({\n key: getColumnKey(column),\n parentKey: parentColumn && getColumnKey(parentColumn),\n fixed: getColumnFixed(column.fixed),\n width: column.width,\n title: column.title,\n header: column.header,\n hidden: column.hidden,\n sort: column.sort,\n titleEditable: column.titleEditable,\n hideable: column.hideable,\n }), []);\n}\nfunction diff(height = 0) {\n if (typeof document !== 'undefined') {\n return document.documentElement.clientHeight - height;\n }\n return 0;\n}\nconst HEIGHT_CHANGE_KEY = '__heightChange__';\nconst CustomizationSettings = observer((props) => {\n const { modal } = props;\n const { handleOk, handleCancel } = modal || { update: noop, handleOk: noop };\n const { tableStore } = useContext(TableContext);\n const { originalColumns, customized, proPrefixCls: prefixCls } = tableStore;\n const [customizedColumns, setCustomizedColumns] = useState(originalColumns);\n const tableRecord = useMemo(() => new DataSet({\n data: [\n {\n heightType: tableStore.heightType,\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n },\n ],\n events: {\n update({ record, name, value }) {\n record.setState(HEIGHT_CHANGE_KEY, (record.getState(HEIGHT_CHANGE_KEY) || 0) + 1);\n const { tempCustomized } = tableStore;\n if (tempCustomized) {\n set(tempCustomized, name, value);\n if (name === 'heightType') {\n if (value === TableHeightType.fixed) {\n set(tempCustomized, 'height', record.get('height'));\n }\n else if (value === TableHeightType.flex) {\n set(tempCustomized, 'heightDiff', record.get('heightDiff'));\n }\n }\n else if (name === 'height' && record.get('heightType') === TableHeightType.fixed) {\n record.set('heightDiff', diff(value));\n set(tempCustomized, 'heightType', TableHeightType.fixed);\n }\n else if (name === 'heightDiff' && record.get('heightType') === TableHeightType.flex) {\n record.set('height', diff(value));\n set(tempCustomized, 'heightType', TableHeightType.flex);\n }\n }\n record.setState(HEIGHT_CHANGE_KEY, record.getState(HEIGHT_CHANGE_KEY) - 1);\n if (record.getState(HEIGHT_CHANGE_KEY) === 0) {\n tableStore.node.handleHeightTypeChange();\n record.setState(HEIGHT_CHANGE_KEY, undefined);\n }\n },\n },\n }).current, [tableStore]);\n const columnDataSet = useMemo(() => new DataSet({\n data: normalizeColumnsToTreeData(customizedColumns),\n paging: false,\n primaryKey: 'key',\n idField: 'key',\n parentField: 'parentKey',\n fields: [\n { name: 'fixed', group: true },\n ],\n events: {\n update({ record, name, value }) {\n if (name === 'hidden') {\n const { children: records } = record;\n if (records) {\n records.forEach(child => child.set(name, value));\n }\n }\n const { tempCustomized } = tableStore;\n if (tempCustomized) {\n const { key } = record;\n if (!tempCustomized.columns[key]) {\n tempCustomized.columns[key] = {};\n }\n tempCustomized.columns[key][name] = value;\n }\n },\n },\n }), [customizedColumns, tableStore]);\n const handleRestoreTable = useCallback(action((e) => {\n e.stopPropagation();\n const { originalHeightType } = tableStore;\n tableStore.node.handleHeightTypeChange();\n tableRecord.init({\n heightType: originalHeightType,\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n });\n }), [tableRecord, tableStore]);\n const handleRestoreColumns = useCallback(action((e) => {\n e.stopPropagation();\n const { columns } = tableStore.node.props;\n setCustomizedColumns(columns.map((column) => {\n const fixed = getColumnFixed(column.fixed);\n const hidden = column.hidden || false;\n return { ...column, fixed, hidden };\n }));\n tableStore.tempCustomized.columns = {};\n }), [tableRecord, tableStore]);\n const handleOption = useCallback(() => ({\n className: `${prefixCls}-customization-option`,\n }), [prefixCls]);\n const handleCollapseChange = useCallback(action((key) => {\n tableStore.customizedActiveKey = [].concat(key);\n }), [tableStore]);\n useEffect(action(() => {\n tableStore.tempCustomized = {\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n ...toJS(customized),\n };\n }), [tableStore]);\n useEffect(() => {\n if (handleOk) {\n handleOk(action(() => {\n const { tempCustomized } = tableStore;\n tableStore.tempCustomized = { columns: {} };\n tableStore.saveCustomized(tempCustomized);\n tableStore.initColumns();\n tableStore.node.handleHeightTypeChange();\n }));\n }\n if (handleCancel) {\n handleCancel(action(() => {\n tableStore.tempCustomized = { columns: {} };\n tableStore.node.handleHeightTypeChange();\n }));\n }\n }, [handleOk, handleCancel, columnDataSet, tableStore]);\n const renderIcon = useCallback(({ isActive }) => React.createElement(Icon, { type: isActive ? 'expand_more' : 'navigate_next' }), []);\n const tableHeightType = tableRecord.get('heightType');\n return (React.createElement(Collapse, { activeKey: tableStore.customizedActiveKey.slice(), onChange: handleCollapseChange, expandIcon: renderIcon, expandIconPosition: \"text-right\", className: `${prefixCls}-customization`, ghost: true },\n React.createElement(CollapsePanel, { header: React.createElement(\"span\", { className: `${prefixCls}-customization-panel-title` }, $l('Table', 'table_settings')), key: \"table\", extra: React.createElement(Button, { className: `${prefixCls}-customization-header-button`, color: ButtonColor.primary, funcType: FuncType.flat, size: Size.small, onClick: handleRestoreTable }, $l('Table', 'restore_default')) },\n React.createElement(Form, { className: `${prefixCls}-customization-form`, record: tableRecord, labelLayout: LabelLayout.float },\n React.createElement(SelectBox, { vertical: true, name: \"heightType\", label: $l('Table', 'height_settings'), onOption: handleOption },\n React.createElement(Option, { value: TableHeightType.auto }, $l('Table', 'auto_height')),\n React.createElement(Option, { value: TableHeightType.fixed },\n React.createElement(\"span\", { className: `${prefixCls}-customization-option-label` }, $l('Table', 'fixed_height')),\n React.createElement(ObserverNumberField, { className: `${prefixCls}-customization-option-input`, labelLayout: LabelLayout.none, name: \"height\", disabled: tableHeightType !== TableHeightType.fixed, step: 1 })),\n React.createElement(Option, { value: TableHeightType.flex },\n React.createElement(\"span\", { className: `${prefixCls}-customization-option-label` }, $l('Table', 'flex_height')),\n React.createElement(ObserverNumberField, { groupClassName: `${prefixCls}-customization-option-input`, labelLayout: LabelLayout.none, name: \"heightDiff\", disabled: tableHeightType !== TableHeightType.flex, showHelp: ShowHelp.tooltip, help: $l('Table', 'flex_height_help'), step: 1 }))))),\n React.createElement(CollapsePanel, { header: React.createElement(\"span\", { className: `${prefixCls}-customization-panel-title` }, $l('Table', 'column_settings')), key: \"columns\", extra: React.createElement(Button, { className: `${prefixCls}-customization-header-button`, color: ButtonColor.primary, funcType: FuncType.flat, size: Size.small, onClick: handleRestoreColumns }, $l('Table', 'restore_default')) },\n React.createElement(ColumnGroups, { dataSet: columnDataSet }))));\n});\nCustomizationSettings.displayName = 'CustomizationSettings';\nexport default CustomizationSettings;\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport Tree from '../tree/Tree';\nimport SubGroups from './SubGroups';\nconst Group = observer((props) => {\n const prefixCls = 'c7n-pro-table';\n const { header, records, value, onDragEnd, treeNodeRenderer, treeNodeSuffix } = props;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-customization-tree-group-header` }, header),\n React.createElement(Tree, { value: value },\n React.createElement(SubGroups, { records: records, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix }))));\n});\nGroup.displayName = 'Group';\nexport default Group;\n","import React, { useCallback, useContext } from 'react';\nimport { action } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Button from '../../../button/Button';\nimport { FuncType } from '../../../button/enum';\nimport { Size } from '../../../core/enum';\nimport Dropdown from '../../../dropdown/Dropdown';\nimport Menu from '../../../menu';\nimport Switch from '../../../switch/Switch';\nimport TableContext from '../../TableContext';\nimport { Placements } from '../../../dropdown/enum';\nimport { $l } from '../../../locale-context';\nconst { Item } = Menu;\nfunction findRecords(record, groups) {\n const { parent } = record;\n if (parent) {\n return parent.children || [];\n }\n const fixed = record.get('fixed');\n const group = groups.find(({ value }) => value === fixed);\n if (group) {\n return group.records;\n }\n return [];\n}\nconst ItemSuffix = observer((props) => {\n const { record, index, records, groups } = props;\n const { tableStore: { columnHideable, columnTitleEditable, columnDraggable, proPrefixCls: prefixCls } } = useContext(TableContext);\n const changeFixed = useCallback((fixed) => {\n const oldFixed = record.get('fixed');\n const group = groups.find(({ value }) => value === fixed);\n if (group) {\n record.set('sort', group.records.length);\n }\n record.set('fixed', fixed);\n const oldGroup = groups.find(({ value }) => value === oldFixed);\n if (oldGroup) {\n oldGroup.records.filter(r => r !== record).forEach((r, sort) => r.set('sort', sort));\n }\n }, [record, groups]);\n const changeIndex = useCallback((newIndex) => {\n const oldSort = record.get('sort');\n const list = findRecords(record, groups);\n const [removed] = list.splice(oldSort, 1);\n if (removed) {\n list.splice(newIndex, 0, removed);\n }\n list.forEach((r, sort) => r.set('sort', sort));\n }, [record, groups]);\n const handleMenuClick = useCallback(action((arg) => {\n const { key } = arg;\n switch (key) {\n case 'rename':\n record.setState('editing', true);\n break;\n case 'unfixed':\n changeFixed(false);\n break;\n case 'left':\n changeFixed('left');\n break;\n case 'right':\n changeFixed('right');\n break;\n case 'top':\n changeIndex(0);\n break;\n case 'up':\n changeIndex(index - 1);\n break;\n case 'down':\n changeIndex(index + 1);\n break;\n default:\n }\n }), [record, index, changeFixed, changeIndex]);\n const getTreeNodesMenus = useCallback(() => {\n const fixed = record.get('fixed');\n const menus = [];\n if (columnTitleEditable && record.get('titleEditable') !== false) {\n menus.push(React.createElement(Item, { key: \"rename\" }, $l('Table', 'rename')));\n }\n if (columnDraggable) {\n if (!record.parent) {\n if (fixed) {\n menus.push(React.createElement(Item, { key: \"unfixed\" }, $l('Table', 'unlock')));\n }\n else {\n menus.push(React.createElement(Item, { key: \"left\" }, $l('Table', 'left_lock')), React.createElement(Item, { key: \"right\" }, $l('Table', 'right_lock')));\n }\n }\n if (index > 1) {\n menus.push(React.createElement(Item, { key: 'top' }, $l('Table', 'top')));\n }\n if (index > 0) {\n menus.push(React.createElement(Item, { key: \"up\" }, $l('Table', 'up')));\n }\n if (index < records.length - 1) {\n menus.push(React.createElement(Item, { key: \"down\" }, $l('Table', 'down')));\n }\n }\n if (menus.length) {\n return (React.createElement(Menu, { prefixCls: `${prefixCls}-dropdown-menu`, onClick: handleMenuClick }, menus));\n }\n }, [record, index, records, columnTitleEditable, columnDraggable, handleMenuClick]);\n const menu = getTreeNodesMenus();\n return (React.createElement(React.Fragment, null,\n menu && (React.createElement(Dropdown, { overlay: menu, placement: Placements.bottomRight },\n React.createElement(Button, { funcType: FuncType.flat, size: Size.small, icon: \"more_horiz\", className: `${prefixCls}-customization-tree-treenode-hover-button` }))),\n React.createElement(Switch, { record: record, disabled: !columnHideable || record.get('hideable') === false || (record.parent && record.parent.get('hidden')), name: \"hidden\", value: false, unCheckedValue: true })));\n});\nItemSuffix.displayName = 'ItemSuffix';\nexport default ItemSuffix;\n","import React, { isValidElement, useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport ObserverTextField from '../../../text-field/TextField';\nimport TableContext from '../../TableContext';\nimport { $l } from '../../../locale-context';\nfunction getHeader(record, title) {\n if (title !== undefined) {\n if (typeof title === 'function') {\n const dom = title();\n if (dom && dom.type && dom.type.__PRO_CHECKBOX) {\n record.set('titleEditable', false);\n return $l('Table', 'select_current_page');\n }\n return dom;\n }\n return title;\n }\n return record.get('children')[0].props.children;\n}\nconst ItemTitle = observer((props) => {\n const { record, provided } = props;\n const { tableStore } = useContext(TableContext);\n const { columnTitleEditable } = tableStore;\n const editing = record.getState('editing');\n const handleEditBlur = useCallback(() => {\n record.setState('editing', false);\n }, []);\n const handleHeaderChange = useCallback((value) => {\n record.set('title', value);\n }, [record]);\n const title = record.get('title') || record.get('header');\n const header = getHeader(record, title);\n const titleEditable = columnTitleEditable && record.get('titleEditable') !== false;\n return (React.createElement(React.Fragment, null, editing && titleEditable ? (React.createElement(ObserverTextField, { onBlur: handleEditBlur, value: isValidElement(header) ? title : header, onChange: handleHeaderChange, autoFocus: true })) : (React.createElement(\"span\", Object.assign({}, (provided && provided.dragHandleProps), { style: provided ? { cursor: 'move' } : undefined }), header))));\n});\nItemTitle.displayName = 'ItemTitle';\nexport default ItemTitle;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport SubGroups from './SubGroups';\nimport TreeNode from '../tree/TreeNode';\nimport TableContext from '../../TableContext';\nconst SubGroup = observer((props) => {\n const { treeNodeRenderer, treeNodeSuffix, childrenRecords, onDragEnd, ...rest } = props;\n const { tableStore } = useContext(TableContext);\n const treeNode = (React.createElement(TreeNode, Object.assign({}, rest, { isLeaf: false, renderer: treeNodeRenderer, suffix: treeNodeSuffix }),\n React.createElement(SubGroups, { records: childrenRecords, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix })));\n return tableStore.columnDraggable ? (React.createElement(DragDropContext, { onDragEnd: onDragEnd }, treeNode)) : treeNode;\n});\nSubGroup.displayName = 'SubGroup';\nexport default SubGroup;\n","import React, { cloneElement, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport sortBy from 'lodash/sortBy';\nimport { Draggable } from 'react-beautiful-dnd';\nimport TreeNode from '../tree/TreeNode';\nimport SubGroup from './SubGroup';\nimport TableContext from '../../TableContext';\nconst SubGroups = observer((props) => {\n const { treeNodeRenderer, treeNodeSuffix, records, onDragEnd, ...rest } = props;\n const { tableStore: { columnDraggable } } = useContext(TableContext);\n return (React.createElement(React.Fragment, null, sortBy(records, [r => r.get('sort')]).map((record, index, list) => {\n const children = (record.children ? (React.createElement(SubGroup, Object.assign({ key: record.key, record: record, childrenRecords: record.children, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix, index: index, records: list }, rest))) : (React.createElement(TreeNode, Object.assign({ key: record.key, record: record, isLeaf: true, renderer: treeNodeRenderer, suffix: treeNodeSuffix, index: index, records: list }, rest))));\n return columnDraggable ? (React.createElement(Draggable, { key: record.key, draggableId: String(record.key), index: index }, (provided, snapshot) => (cloneElement(children, { provided, snapshot })))) : children;\n })));\n});\nSubGroups.displayName = 'SubGroups';\nexport default SubGroups;\n","import React, { useCallback, useContext, useMemo } from 'react';\nimport { action, observable } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport sortBy from 'lodash/sortBy';\nimport Group from './Group';\nimport { $l } from '../../../locale-context';\nimport ItemTitle from './ItemTitle';\nimport TableContext from '../../TableContext';\nimport ItemSuffix from './ItemSuffix';\nconst ColumnGroups = observer((props) => {\n const { dataSet } = props;\n const { groupedTreeRecords } = dataSet;\n const { tableStore: { columnDraggable, proPrefixCls: prefixCls } } = useContext(TableContext);\n const groups = useMemo(() => {\n const array = [\n { value: 'left', records: [] },\n { value: 'right', records: [] },\n { value: false, records: [] },\n ];\n return array.map((group) => {\n const { value } = group;\n const found = groupedTreeRecords.find((item) => {\n return value === item.value;\n });\n if (found) {\n group.records = observable.array(sortBy(found.records, [r => r.get('sort')]));\n }\n else {\n group.records = observable.array();\n }\n return group;\n });\n }, [groupedTreeRecords]);\n const handleDragTree = useCallback(action((srcIndex, destIndex, srcLock, destLock) => {\n const srcGroup = groups.find((group) => String(group.value) === srcLock);\n if (srcGroup) {\n const { records } = srcGroup;\n const [removed] = records.splice(srcIndex, 1);\n if (srcLock === destLock) {\n records.splice(destIndex, 0, removed);\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n else {\n removed.set('fixed', destLock === 'false' ? false : destLock);\n const destGroup = groups.find((group) => String(group.value) === destLock);\n if (destGroup) {\n const { records: destRecords } = destGroup;\n if (destRecords.length) {\n destRecords.splice(destIndex, 0, removed);\n }\n else {\n destRecords.push(removed);\n }\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n destRecords.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n }\n }\n }), [groups]);\n const handleDragTreeNode = useCallback(action((srcIndex, destIndex, parentId) => {\n const parent = dataSet.find(r => String(r.key) === parentId);\n if (parent) {\n const { children } = parent;\n if (children) {\n const records = sortBy(children, [r => r.get('sort')]);\n const [removed] = records.splice(srcIndex, 1);\n records.splice(destIndex, 0, removed);\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n }\n }), [dataSet]);\n const handleDragEnd = useCallback(({ destination, source: { droppableId: srcDroppableId, index: srcIndex } }) => {\n if (destination) {\n const { droppableId: destDroppableId, index: destIndex } = destination;\n const dest = destDroppableId.split('__--__');\n const src = srcDroppableId.split('__--__');\n if (srcIndex !== destIndex || src[1] !== dest[1]) {\n if (dest[0] === 'tree' && src[0] === 'tree') {\n handleDragTree(srcIndex, destIndex, src[1], dest[1]);\n }\n else if (dest[0] === 'treenode' && src[0] === 'treenode') {\n handleDragTreeNode(srcIndex, destIndex, src[1]);\n }\n }\n }\n }, [handleDragTree, handleDragTreeNode]);\n const treeNodeRenderer = useCallback((record, provided) => (React.createElement(ItemTitle, { record: record, provided: provided })), []);\n const treeNodeSuffix = useCallback((record, index, records) => (React.createElement(ItemSuffix, { record: record, index: index, records: records, groups: groups })), [groups]);\n function getGroupHeader(lock) {\n switch (lock) {\n case 'left':\n return $l('Table', 'left_lock');\n case 'right':\n return $l('Table', 'right_lock');\n default:\n return $l('Table', 'unlocked');\n }\n }\n const groupNodes = groups.map(({ value, records }) => (React.createElement(Group, { key: String(value), value: value, header: getGroupHeader(value), records: records, onDragEnd: handleDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix })));\n return (React.createElement(\"div\", { className: `${prefixCls}-customization-panel-content` }, columnDraggable ? (React.createElement(DragDropContext, { onDragEnd: handleDragEnd }, groupNodes)) : groupNodes));\n});\nColumnGroups.displayName = 'ColumnGroups';\nexport default ColumnGroups;\n","import CustomizationSettings from './CustomizationSettings';\nexport default CustomizationSettings;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Droppable } from 'react-beautiful-dnd';\nimport TableContext from '../../TableContext';\nconst Tree = observer((props) => {\n const { children, value } = props;\n const { tableStore: { columnDraggable, node: { props: { columnsDragRender = {} } }, proPrefixCls: prefixCls } } = useContext(TableContext);\n const { droppableProps, renderClone } = columnsDragRender;\n return columnDraggable ? (React.createElement(Droppable, Object.assign({ droppableId: `tree__--__${value}`, key: \"tree\", renderClone: renderClone }, droppableProps), (droppableProvided) => (React.createElement(\"div\", Object.assign({ ref: droppableProvided.innerRef, className: `${prefixCls}-customization-tree` }, (droppableProvided && droppableProvided.droppableProps)),\n children,\n droppableProvided && droppableProvided.placeholder)))) : (React.createElement(\"div\", { className: `${prefixCls}-customization-tree` }, children));\n});\nTree.displayName = 'Tree';\nexport default Tree;\n","import React, { Children, cloneElement, isValidElement, useCallback, useContext, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport { Droppable } from 'react-beautiful-dnd';\nimport defaultTo from 'lodash/defaultTo';\nimport isFunction from 'lodash/isFunction';\nimport Icon from '../../../icon';\nimport TableContext from '../../TableContext';\nconst TreeNode = observer((props) => {\n const { tableStore: { dataSet, columnDraggable, node: { props: { columnsDragRender = {} } }, proPrefixCls: prefixCls } } = useContext(TableContext);\n const { droppableProps, renderClone, renderIcon } = columnsDragRender;\n const selfPrefixCls = `${prefixCls}-customization-tree-treenode`;\n const { renderer, suffix, children, className, isLeaf, hidden, record, index, records, provided, snapshot } = props;\n const sort = record.get('sort');\n const isExpanded = defaultTo(record.getState('expanded'), true);\n const [expended, setExpanded] = useState(isExpanded);\n const [isHover, setIsHover] = useState(false);\n const toggleExpanded = useCallback(() => {\n record.setState('expanded', !isExpanded);\n if (!expended) {\n setExpanded(true);\n }\n }, [record, isExpanded, expended]);\n const handleMouseEnter = useCallback(() => setIsHover(true), []);\n const handleMouseLeave = useCallback(() => setIsHover(false), []);\n const { isDragging } = snapshot || {};\n useEffect(() => {\n setIsHover(false);\n }, [sort]);\n function renderSwitcherIcon() {\n return !isLeaf && (React.createElement(Icon, { type: \"expand_more\", className: classNames(`${selfPrefixCls}-switcher-icon`, { [`${selfPrefixCls}-switcher-icon-close`]: !isExpanded }), onClick: toggleExpanded }));\n }\n function renderChildren() {\n return Children.map(children, child => isValidElement(child) ? cloneElement(child, {\n hidden: hidden || !isExpanded,\n }) : child);\n }\n function getIcon() {\n if (provided) {\n const iconProps = { ...provided.dragHandleProps, style: { cursor: 'move' } };\n if (isFunction(renderIcon)) {\n const icon = renderIcon({ dataSet, column: record.toData(), snapshot });\n if (isValidElement(icon)) {\n return cloneElement(icon, iconProps);\n }\n return icon;\n }\n return (React.createElement(Icon, Object.assign({ className: `${selfPrefixCls}-drag-icon`, type: \"baseline-drag_indicator\" }, iconProps)));\n }\n }\n return (React.createElement(\"div\", Object.assign({ ref: provided && provided.innerRef }, (provided && provided.draggableProps), { className: classNames({ [`${selfPrefixCls}-dragging`]: isDragging }) }),\n React.createElement(\"div\", { className: classNames(selfPrefixCls, className, { [`${selfPrefixCls}-hover`]: isHover }), style: { display: hidden ? 'none' : '' }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },\n React.createElement(\"div\", { className: `${selfPrefixCls}-content` },\n getIcon(),\n React.createElement(\"div\", { className: `${selfPrefixCls}-title` },\n React.createElement(\"span\", { className: `${selfPrefixCls}-title-text` }, renderer(record, provided)),\n React.createElement(\"span\", { className: classNames(`${selfPrefixCls}-switcher`, { [`${selfPrefixCls}-switcher-noop`]: isLeaf }) }, renderSwitcherIcon())),\n suffix(record, index, records))),\n columnDraggable ? (React.createElement(Droppable, Object.assign({ droppableId: `treenode__--__${record.key}`, key: \"treenode\", renderClone: renderClone }, droppableProps), (droppableProvided) => (React.createElement(\"div\", Object.assign({ style: { paddingLeft: 15 }, ref: droppableProvided && droppableProvided.innerRef }, (droppableProvided && droppableProvided.droppableProps)),\n expended && renderChildren(),\n droppableProvided && droppableProvided.placeholder)))) : (React.createElement(\"div\", { style: { paddingLeft: 15 } }, expended && renderChildren()))));\n});\nTreeNode.displayName = 'TreeNode';\nexport default TreeNode;\n","// export { default as PerformanceTable } from './Table';\n// export { default as Column } from './Column';\n// export { default as Cell } from './Cell';\n// export { default as HeaderCell } from './HeaderCell';\n// export { default as ColumnGroup } from './ColumnGroup';\nimport PerformanceTable from './Table';\nexport default PerformanceTable;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component, isValidElement } from 'react';\nimport { observer } from 'mobx-react';\nimport { action, isArrayLike, observable, runInAction } from 'mobx';\nimport uniq from 'lodash/uniq';\nimport pull from 'lodash/pull';\nimport noop from 'lodash/noop';\nimport map from 'lodash/map';\nimport isObject from 'lodash/isObject';\nimport isEnumEmpty from 'lodash/isEmpty';\nimport isNumber from 'lodash/isNumber';\nimport isFunction from 'lodash/isFunction';\nimport isEqual from 'lodash/isEqual';\nimport isArray from 'lodash/isArray';\nimport isString from 'lodash/isString';\nimport omit from 'lodash/omit';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport Icon from 'choerodon-ui/lib/icon';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport { RecordStatus } from '../../data-set/enum';\nimport Button from '../../button';\nimport Dropdown from '../../dropdown';\nimport TextField from '../../text-field';\nimport TableContext from '../TableContext';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport isEmpty from '../../_util/isEmpty';\nimport FieldList from '../../table/query-bar/FieldList';\nimport QuickFilterMenu from '../../table/query-bar/quick-filter';\nimport ColumnFilter from '../tool-bar/ColumnFilter';\n/**\n * 当前数据是否有值并需要选中\n * @param data\n */\nfunction isSelect(data) {\n if (isObject(data[1])) {\n return !isEnumEmpty(data[1]);\n }\n return data[0] !== '__dirty' && !isEmpty(data[1]);\n}\nfunction isEqualDynamicProps(originalValue, newValue) {\n if (isEqual(newValue, originalValue)) {\n return true;\n }\n if (isObject(newValue) && isObject(originalValue) && Object.keys(newValue).length) {\n return Object.keys(newValue).every(key => {\n const value = newValue[key];\n const oldValue = originalValue[key];\n if (oldValue === value) {\n return true;\n }\n const oEp = isNumber(oldValue) ? isEmpty(oldValue) : isEnumEmpty(oldValue);\n const nEp = isNumber(value) ? isEmpty(value) : isEnumEmpty(value);\n if (oEp && nEp) {\n return true;\n }\n return isEqual(oldValue, value);\n });\n }\n return isEqual(newValue, originalValue);\n}\nfunction getQueryData(queryDataSet) {\n const queryData = omit(queryDataSet?.current?.toData(true), ['__dirty']);\n return Object.keys(queryData).reduce((p, key) => {\n const value = queryData[key];\n if (!isEmpty(value)) {\n p[key] = value;\n }\n return p;\n }, {});\n}\nlet TableDynamicFilterBar = class TableDynamicFilterBar extends Component {\n constructor(props, context) {\n super(props, context);\n this.refDropdown = null;\n this.refFilterWrapper = null;\n this.refEditors = new Map();\n this.originalConditionKeys = [];\n this.enterNum = 0;\n this.handleClickOut = (e) => {\n if (this.refDropdown && !this.refDropdown.contains(e.target)) {\n this.fieldSelectHidden = true;\n }\n };\n /**\n * 勾选\n * @param code\n */\n this.handleSelect = (code) => {\n const codes = Array.isArray(code) ? code : [code];\n this.selectFields = uniq([...this.selectFields, ...codes]);\n };\n /**\n * 取消勾选\n * @param code\n */\n this.handleUnSelect = (code) => {\n const { queryDataSet } = this.props;\n const codes = Array.isArray(code) ? code : [code];\n if (queryDataSet) {\n codes.map((name) => {\n if (queryDataSet.current) {\n queryDataSet.current.set(name, undefined);\n }\n return null;\n });\n }\n this.selectFields = pull([...this.selectFields], ...codes);\n };\n runInAction(() => {\n this.fieldSelectHidden = true;\n this.selectFields = [];\n this.expand = true;\n });\n }\n componentDidMount() {\n this.processDataSetListener(true);\n document.addEventListener('click', this.handleClickOut);\n }\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClickOut);\n this.processDataSetListener(false);\n }\n processDataSetListener(flag) {\n const { queryDataSet } = this.props;\n if (queryDataSet) {\n const handler = flag ? queryDataSet.addEventListener : queryDataSet.removeEventListener;\n handler.call(queryDataSet, 'validate', this.handleDataSetValidate);\n handler.call(queryDataSet, 'update', this.handleDataSetUpdate);\n handler.call(queryDataSet, 'create', this.handleDataSetCreate);\n }\n }\n /**\n * queryDataSet 查询前校验事件 触发展开动态字段\n * @param dataSet 查询DS\n * @param result\n */\n async handleDataSetValidate({ dataSet, result }) {\n if (!await result) {\n const fields = [...dataSet.fields.keys()];\n map(fields, field => {\n if (!dataSet.current.getField(field).isValid()) {\n this.handleSelect(field);\n }\n });\n runInAction(() => {\n this.expand = true;\n });\n this.refFilterWrapper.style.height = '';\n this.refFilterWrapper.style.overflow = '';\n }\n }\n setConditionStatus(value, orglValue) {\n runInAction(() => this.conditionStatus = value);\n if (value === RecordStatus.sync && orglValue) {\n this.originalValue = orglValue;\n }\n }\n /**\n * 筛选条件更新 触发表格查询\n */\n handleDataSetUpdate({ record }) {\n const { dataSet, queryDataSet, onQuery = noop } = this.props;\n let status = RecordStatus.update;\n if (record) {\n status = isEqualDynamicProps(this.originalValue, record.toData()) ? RecordStatus.sync : RecordStatus.update;\n }\n this.setConditionStatus(status);\n dataSet.query();\n const data = getQueryData(queryDataSet);\n onQuery({ dataSet, queryDataSet, data });\n }\n /**\n * queryDS 新建,初始勾选值\n */\n handleDataSetCreate({ dataSet, record }) {\n const conditionData = Object.entries(record.toData());\n this.originalValue = record.toData();\n const keys = [...dataSet.fields.keys()];\n map(conditionData, data => {\n let name = data[0];\n if (!keys.includes(data[0]) &&\n isObject(data[1]) &&\n !isEnumEmpty(data[1]) &&\n !isArray(data[1])) {\n name = `${data[0]}.${Object.keys(data[1])[0]}`;\n }\n if (isSelect(data) && !dataSet.getField(name).get('bind')) {\n this.handleSelect(name);\n }\n });\n }\n /**\n * 注入 onEnterDown 事件\n * @param element\n * @param name\n */\n createFields(element, name) {\n const { onEnterDown } = element.props;\n if (onEnterDown && isFunction(onEnterDown)) {\n return element;\n }\n const props = {\n onEnterDown: () => {\n this.handleQuery();\n },\n ref: (node) => this.refEditors.set(name, node),\n };\n return cloneElement(element, props);\n }\n /**\n * 判断查询值是否为空\n * @param value\n */\n isEmpty(value) {\n return isArrayLike(value) ? !value.length : isEmpty(value);\n }\n /**\n * 渲染展开逻辑\n * @param hidden 是否隐藏全部\n */\n getExpandNode(hidden) {\n const { tableStore: { proPrefixCls } } = this.context;\n return (React.createElement(\"span\", { className: `${proPrefixCls}-filter-menu-expand`, onClick: () => {\n const { height } = this.refFilterWrapper.getBoundingClientRect();\n const { height: childHeight } = this.refFilterWrapper.children[0].getBoundingClientRect();\n runInAction(() => {\n this.expand = hidden ? height <= 0 : height <= (childHeight + 2);\n });\n if (hidden && height) {\n // 收起全部\n this.refFilterWrapper.style.display = 'none';\n }\n else {\n this.refFilterWrapper.style.display = 'flex';\n this.refFilterWrapper.style.height = '';\n this.refFilterWrapper.style.overflow = '';\n }\n if (height > childHeight && !hidden) {\n // 收起留一行高度\n this.refFilterWrapper.style.height = pxToRem(childHeight) || '';\n this.refFilterWrapper.style.overflow = 'hidden';\n }\n else {\n this.refFilterWrapper.style.height = '';\n this.refFilterWrapper.style.overflow = '';\n }\n } }, this.expand ? (React.createElement(React.Fragment, null,\n React.createElement(Icon, { type: \"baseline-arrow_drop_up\" }))) : (React.createElement(React.Fragment, null,\n React.createElement(Icon, { type: \"baseline-arrow_drop_down\" })))));\n }\n /**\n * 获取筛选下拉\n */\n getFilterMenu() {\n const { queryFields, queryDataSet, dataSet, dynamicFilterBar, onReset = noop } = this.props;\n const { tableStore, tableStore: { proPrefixCls, node, highlightRowIndexs } } = this.context;\n const tableFilterAdapter = dynamicFilterBar?.tableFilterAdapter || getConfig('tableFilterAdapter');\n const searchText = dynamicFilterBar?.searchText || getConfig('tableFilterSearchText') || 'params';\n if (queryDataSet && queryFields.length) {\n return (React.createElement(\"div\", { className: `${proPrefixCls}-filter-menu` },\n this.renderPrefix(),\n React.createElement(\"div\", { className: `${proPrefixCls}-filter-search` },\n React.createElement(TextField, { clearButton: true, placeholder: $l('Table', 'enter_search_content'), prefix: React.createElement(Icon, { type: \"search\" }), style: { width: 280 }, value: this.searchText, onChange: () => noop, onKeyDown: (e) => {\n if (e.keyCode === KeyCode.ENTER && dynamicFilterBar?.quickSearch) {\n e.preventDefault();\n const rows = [...new Set(highlightRowIndexs)];\n node.scrollTop(rows[this.enterNum] * node.getRowHeight());\n this.enterNum += 1;\n if (this.enterNum + 1 > rows.length) {\n this.enterNum = 0;\n }\n }\n }, onClear: () => {\n runInAction(() => {\n this.searchText = '';\n if (dynamicFilterBar?.quickSearch) {\n tableStore.searchText = '';\n tableStore.highlightRowIndexs = [];\n node.forceUpdate();\n }\n });\n onReset();\n dataSet.setQueryParameter(searchText, undefined);\n this.handleQuery(true);\n }, onInput: (e) => {\n // @ts-ignore\n const { value } = e.target;\n runInAction(() => {\n this.searchText = value || '';\n if (dynamicFilterBar?.quickSearch) {\n tableStore.highlightRowIndexs = [];\n tableStore.searchText = value || '';\n node.forceUpdate();\n }\n });\n dataSet.setQueryParameter(searchText, value);\n this.handleQuery();\n } })),\n tableFilterAdapter ? (React.createElement(QuickFilterMenu, { prefixCls: proPrefixCls, expand: this.expand, dynamicFilterBar: dynamicFilterBar, dataSet: dataSet, queryDataSet: queryDataSet, onChange: this.handleSelect, conditionStatus: this.conditionStatus, onStatusChange: this.setConditionStatus })) : (React.createElement(\"div\", { className: `${proPrefixCls}-filter-buttons` }, this.conditionStatus === RecordStatus.update && React.createElement(Button, { onClick: () => {\n if (queryDataSet && queryDataSet.current) {\n queryDataSet.current.reset();\n }\n this.handleDataSetCreate({ dataSet: queryDataSet, record: queryDataSet.current });\n this.setConditionStatus(RecordStatus.sync);\n dataSet.query();\n onReset();\n } }, $l('Table', 'reset_button')))),\n React.createElement(\"span\", { className: `${proPrefixCls}-filter-search-divide` }),\n this.getExpandNode(true),\n this.renderSuffix()));\n }\n }\n /**\n * tableFilterSuffix 预留自定义区域\n */\n renderSuffix() {\n const { queryDataSet, dataSet, dynamicFilterBar } = this.props;\n const { tableStore: { proPrefixCls } } = this.context;\n const suffixes = dynamicFilterBar?.suffixes || getConfig('tableFilterSuffix');\n const children = [];\n if (suffixes && suffixes.length) {\n suffixes.forEach(suffix => {\n if (suffix === 'filter') {\n children.push(React.createElement(ColumnFilter, { prefixCls: proPrefixCls }));\n }\n else if (isValidElement(suffix)) {\n children.push(suffix);\n }\n else if (isFunction(suffix)) {\n children.push(suffix({ queryDataSet, dataSet }));\n }\n });\n return (React.createElement(\"div\", { className: `${proPrefixCls}-dynamic-filter-bar-suffix` }, children));\n }\n return null;\n }\n renderPrefix() {\n const { queryDataSet, dataSet, dynamicFilterBar } = this.props;\n const { tableStore: { proPrefixCls } } = this.context;\n const prefixes = dynamicFilterBar?.prefixes;\n const children = [];\n if (prefixes && prefixes.length) {\n prefixes.forEach((prefix) => {\n if (isString(prefix) && prefix === 'filter') {\n children.push(React.createElement(ColumnFilter, { prefixCls: proPrefixCls }));\n }\n else if (isValidElement(prefix)) {\n children.push(prefix);\n }\n else if (isFunction(prefix)) {\n children.push(prefix({ queryDataSet, dataSet }));\n }\n });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${proPrefixCls}-dynamic-filter-bar-prefix` }, children),\n React.createElement(\"span\", { className: `${proPrefixCls}-filter-search-divide` })));\n }\n return null;\n }\n /**\n * 渲染查询条\n */\n getQueryBar() {\n const { prefixCls, queryFieldsLimit = 3, queryFields, queryDataSet } = this.props;\n const { tableStore: { proPrefixCls } } = this.context;\n if (queryDataSet && queryFields.length) {\n return (React.createElement(\"div\", { key: \"query_bar\", className: `${prefixCls}-dynamic-filter-bar` },\n this.getFilterMenu(),\n React.createElement(\"div\", { className: `${proPrefixCls}-filter-wrapper`, ref: (wrapperNode) => this.refFilterWrapper = wrapperNode },\n queryFields.slice(0, queryFieldsLimit).map(element => {\n const { name } = element.props;\n const queryField = queryDataSet.getField(name);\n const itemClassName = `${proPrefixCls}-filter-item ${proPrefixCls}-filter-item-label`;\n return (React.createElement(\"div\", { className: `${proPrefixCls}-filter-content`, key: name, onClick: () => this.refEditors.get(name).focus() },\n React.createElement(\"span\", { className: `${proPrefixCls}-filter-label` }, queryField?.get('label')),\n React.createElement(\"span\", { className: itemClassName }, this.createFields(element, name))));\n }),\n queryFields.slice(queryFieldsLimit).map(element => {\n const { name } = element.props;\n const queryField = queryDataSet.getField(name);\n if (this.selectFields.includes(name)) {\n return (React.createElement(\"div\", { className: `${proPrefixCls}-filter-content`, key: name, onClick: () => this.refEditors.get(name).focus() },\n React.createElement(Icon, { type: \"cancel\", className: `${proPrefixCls}-filter-item-close`, onClick: () => {\n this.handleUnSelect([name]);\n } }),\n React.createElement(\"span\", { className: `${proPrefixCls}-filter-label` }, queryField?.get('label')),\n React.createElement(\"span\", { className: `${proPrefixCls}-filter-item` }, this.createFields(element, name))));\n }\n return null;\n }),\n (queryFieldsLimit < queryFields.length) && (React.createElement(\"div\", { className: `${proPrefixCls}-filter-item` },\n React.createElement(Dropdown, { visible: !this.fieldSelectHidden, overlay: (React.createElement(\"div\", { role: \"none\", ref: (dropdownNode) => this.refDropdown = dropdownNode, onClick: (e) => {\n e.stopPropagation();\n } },\n React.createElement(FieldList, { groups: [{\n title: $l('Table', 'predefined_fields'),\n fields: [...queryDataSet.fields.values()].filter(f => !f.get('bind')).slice(queryFieldsLimit),\n }], prefixCls: `${proPrefixCls}-filter-list` || 'c7n-pro-table-filter-list', closeMenu: () => runInAction(() => this.fieldSelectHidden = true), value: this.selectFields, onSelect: this.handleSelect, onUnSelect: this.handleUnSelect }))), trigger: [Action.click] },\n React.createElement(\"span\", { className: `${proPrefixCls}-add-fields`, onClick: (e) => {\n e.nativeEvent.stopImmediatePropagation();\n runInAction(() => {\n this.fieldSelectHidden = false;\n });\n } },\n React.createElement(Icon, { type: \"add\" }),\n $l('Table', 'add_filter'))))))));\n }\n return null;\n }\n handleQuery(collapse) {\n const { dataSet, queryDataSet, onQuery = noop } = this.props;\n dataSet.query();\n if (!collapse) {\n const data = getQueryData(queryDataSet);\n onQuery({ dataSet, queryDataSet, data, params: this.searchText });\n }\n }\n render() {\n return this.getQueryBar();\n }\n};\nTableDynamicFilterBar.contextType = TableContext;\nTableDynamicFilterBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n queryFieldsLimit: 3,\n};\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"moreFields\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"fieldSelectHidden\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"selectFields\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"expand\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"searchText\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"conditionStatus\", void 0);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleClickOut\", void 0);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"setConditionStatus\", null);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetUpdate\", null);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetCreate\", null);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleSelect\", void 0);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleUnSelect\", void 0);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleQuery\", null);\nTableDynamicFilterBar = __decorate([\n observer\n], TableDynamicFilterBar);\nexport default TableDynamicFilterBar;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component } from 'react';\nimport { observer } from 'mobx-react';\nimport { action, observable, runInAction } from 'mobx';\nimport isFunction from 'lodash/isFunction';\nimport omit from 'lodash/omit';\nimport noop from 'lodash/noop';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport Icon from 'choerodon-ui/lib/icon';\nimport Button from '../../button';\nimport TableContext from '../TableContext';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport Form from '../../form';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport { LabelLayout } from '../../form/enum';\nimport isEmpty from '../../_util/isEmpty';\nimport { TableQueryBarType } from '../../table/enum';\nlet TableProfessionalBar = class TableProfessionalBar extends Component {\n constructor() {\n super(...arguments);\n this.openMore = (fields) => {\n if (this.moreFields && this.moreFields.length) {\n this.moreFields = [];\n }\n else {\n this.moreFields = fields;\n }\n return this.moreFields;\n };\n }\n componentDidMount() {\n const { queryFieldsLimit, queryFields, queryDataSet, defaultExpanded } = this.props;\n if (queryDataSet && queryFields.length && defaultExpanded) {\n runInAction(() => {\n this.moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n });\n }\n this.processDataSetListener(true);\n }\n componentWillUnmount() {\n this.processDataSetListener(false);\n }\n processDataSetListener(flag) {\n const { queryDataSet } = this.props;\n if (queryDataSet) {\n const handler = flag ? queryDataSet.addEventListener : queryDataSet.removeEventListener;\n handler.call(queryDataSet, 'validate', this.handleDataSetValidate);\n }\n }\n /**\n * queryDataSet 查询前校验事件 触发展开动态字段\n * @param dataSet 查询DS\n * @param result\n */\n async handleDataSetValidate({ result }) {\n const { queryFieldsLimit, queryFields } = this.props;\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n if (!await result) {\n runInAction(() => {\n this.moreFields = moreFields;\n });\n }\n }\n handleFieldEnter() {\n this.handleQuery();\n }\n async handleQuery(collapse) {\n const { dataSet, queryDataSet, onQuery = noop } = this.props;\n if (await queryDataSet?.validate()) {\n await dataSet.query();\n if (!collapse) {\n const queryData = omit(queryDataSet?.current?.toData(true), ['__dirty']);\n const data = Object.keys(queryData).reduce((p, key) => {\n const value = queryData[key];\n if (!isEmpty(value)) {\n p[key] = value;\n }\n return p;\n }, {});\n await onQuery({ dataSet, queryDataSet, data });\n }\n }\n }\n getResetButton() {\n const { prefixCls } = this.props;\n return (React.createElement(Button, { key: 'lov_reset_btn', className: `${prefixCls}-professional-reset-btn`, funcType: FuncType.raised, onClick: this.handleQueryReset }, $l('Table', 'reset_button')));\n }\n getMoreFieldsButton(fields) {\n const { prefixCls } = this.props;\n if (fields.length) {\n return (React.createElement(Button, { className: `${prefixCls}-professional-query-more`, funcType: FuncType.raised, onClick: () => this.openMore(fields) },\n $l('Table', 'more'),\n this.moreFields && this.moreFields.length ? React.createElement(Icon, { type: 'expand_less' }) : React.createElement(Icon, { type: 'expand_more' })));\n }\n }\n /**\n * 注入 onEnterDown 事件\n * @param elements\n */\n createFields(elements) {\n return elements.map(element => {\n const { onEnterDown } = element.props;\n if (onEnterDown && isFunction(onEnterDown)) {\n return element;\n }\n const props = {\n onEnterDown: this.handleFieldEnter,\n };\n return cloneElement(element, props);\n });\n }\n getQueryBar() {\n const { prefixCls, queryFieldsLimit, queryFields, queryDataSet, queryFormProps } = this.props;\n if (queryDataSet && queryFields.length) {\n const currentFields = (React.createElement(Form, Object.assign({ dataSet: queryDataSet, columns: queryFieldsLimit, labelLayout: LabelLayout.horizontal }, queryFormProps),\n this.createFields(queryFields.slice(0, queryFieldsLimit)),\n this.moreFields));\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n const moreFieldsButton = this.getMoreFieldsButton(moreFields);\n return (React.createElement(\"div\", { key: \"query_bar\", className: `${prefixCls}-professional-query-bar` },\n currentFields,\n React.createElement(\"span\", { className: `${prefixCls}-professional-query-bar-button` },\n moreFieldsButton,\n this.getResetButton(),\n React.createElement(Button, { color: ButtonColor.primary, wait: 500, onClick: () => this.handleQuery() }, $l('Table', 'query_button')))));\n }\n }\n handleQueryReset() {\n const { queryDataSet, onReset = noop } = this.props;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n onReset();\n }\n this.handleQuery(true);\n }\n }\n render() {\n return this.getQueryBar();\n }\n};\nTableProfessionalBar.contextType = TableContext;\nTableProfessionalBar.defaultProps = {\n prefixCls: getProPrefixCls('performance-table'),\n queryFieldsLimit: 3,\n};\nTableProfessionalBar.__TableQueryBarType = TableQueryBarType.professionalBar;\n__decorate([\n observable\n], TableProfessionalBar.prototype, \"moreFields\", void 0);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleFieldEnter\", null);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleQuery\", null);\n__decorate([\n action\n], TableProfessionalBar.prototype, \"openMore\", void 0);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleQueryReset\", null);\nTableProfessionalBar = __decorate([\n observer\n], TableProfessionalBar);\nexport default TableProfessionalBar;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component, isValidElement } from 'react';\nimport { observer } from 'mobx-react';\nimport isObject from 'lodash/isObject';\nimport { TableQueryBarType } from '../Table';\nimport TableContext from '../TableContext';\nimport autobind from '../../_util/autobind';\nimport { getEditorByField, getPlaceholderByField } from '../../table/utils';\nimport TableProfessionalBar from './TableProfessionalBar';\nimport TableDynamicFilterBar from './TableDynamicFilterBar';\nlet PerformanceTableQueryBar = class PerformanceTableQueryBar extends Component {\n handleQueryReset() {\n const { tableStore: { dataSet: { queryDataSet }, }, } = this.context;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n }\n this.handleQuery();\n }\n }\n handleQuery() {\n const { tableStore: { dataSet }, } = this.context;\n return dataSet.query();\n }\n getQueryFields() {\n const { tableStore: { dataSet, queryBar: { queryFields = {}, type } } } = this.context;\n const { queryDataSet } = dataSet;\n const result = [];\n if (queryDataSet) {\n const { fields } = queryDataSet;\n return [...fields.entries()].reduce((list, [name, field]) => {\n if (!field.get('bind') && !name.includes('__tls')) {\n const element = queryFields[name];\n let filterBarProps = {};\n if (type === TableQueryBarType.filterBar) {\n const placeholder = isValidElement(element) && element.props.placeholder ? element.props.placeholder : getPlaceholderByField(field);\n filterBarProps = {\n placeholder,\n };\n }\n const props = {\n key: name,\n name,\n dataSet: queryDataSet,\n isFlat: type === TableQueryBarType.filterBar,\n ...filterBarProps,\n };\n list.push(isValidElement(element)\n ? cloneElement(element, props)\n : cloneElement(getEditorByField(field, type !== TableQueryBarType.professionalBar, type === TableQueryBarType.filterBar), {\n ...props,\n ...(isObject(element) ? element : {}),\n }));\n }\n return list;\n }, result);\n }\n return result;\n }\n renderProfessionalBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableProfessionalBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n renderDynamicFilterBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableDynamicFilterBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n render() {\n const { tableStore: { queryBar, dataSet } } = this.context;\n if (dataSet) {\n const queryFields = this.getQueryFields();\n const { queryDataSet } = dataSet;\n const props = {\n ...queryBar,\n queryFields,\n queryDataSet,\n };\n if (typeof queryBar.renderer === 'function') {\n return queryBar.renderer(props);\n }\n switch (queryBar.type) {\n case TableQueryBarType.professionalBar:\n return this.renderProfessionalBar(props);\n case TableQueryBarType.filterBar:\n return this.renderDynamicFilterBar(props);\n default:\n }\n }\n return null;\n }\n};\nPerformanceTableQueryBar.displayName = 'PerformanceTableQueryBar';\nPerformanceTableQueryBar.contextType = TableContext;\nPerformanceTableQueryBar.defaultProps = {\n queryFieldsLimit: 3,\n};\n__decorate([\n autobind\n], PerformanceTableQueryBar.prototype, \"handleQueryReset\", null);\n__decorate([\n autobind\n], PerformanceTableQueryBar.prototype, \"handleQuery\", null);\nPerformanceTableQueryBar = __decorate([\n observer\n], PerformanceTableQueryBar);\nexport default PerformanceTableQueryBar;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { action, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Icon from 'choerodon-ui/lib/icon';\nimport Menu, { Item } from 'choerodon-ui/lib/rc-components/menu/index';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport Dropdown from '../../dropdown/Dropdown';\nimport TableContext from '../TableContext';\nimport { Placements } from '../../dropdown/enum';\nimport { stopEvent, stopPropagation } from '../../_util/EventManager';\nimport autobind from '../../_util/autobind';\nimport Column from '../Column';\nfunction handleMenuClick({ domEvent }) {\n domEvent.preventDefault();\n}\nlet ColumnFilter = class ColumnFilter extends Component {\n constructor(props, context) {\n super(props, context);\n this.setDropDownHidden(true);\n }\n saveMenu(node) {\n this.menu = node;\n }\n handleHiddenChange(hidden) {\n this.setDropDownHidden(hidden);\n }\n handleKeyDown(e) {\n if (this.menu && this.menu.onKeyDown(e)) {\n stopEvent(e);\n }\n }\n setDropDownHidden(hidden) {\n this.hidden = hidden;\n }\n render() {\n const { prefixCls } = this.props;\n return (React.createElement(\"div\", { className: `${prefixCls}-columns-chooser`, onFocus: stopPropagation, onMouseDown: stopPropagation, tabIndex: -1 },\n React.createElement(Dropdown, { trigger: [Action.click], placement: Placements.bottomRight, overlay: this.getMenu, hidden: this.hidden, onHiddenChange: this.handleHiddenChange },\n React.createElement(Icon, { type: \"view_column\", onClick: this.handleKeyDown, style: { cursor: 'pointer' } }))));\n }\n handleMenuSelect({ item: { props: { value }, }, }) {\n const { tableStore: { node } } = this.context;\n value.hidden = false;\n node._cacheCells = null;\n node.forceUpdate();\n }\n handleMenuUnSelect({ item: { props: { value }, }, }) {\n const { tableStore: { node } } = this.context;\n value.hidden = true;\n node._cacheCells = null;\n node.forceUpdate();\n }\n getMenu() {\n const { tableStore: { proPrefixCls, originalChildren, originalColumns } } = this.context;\n const selfPrefixCls = `${proPrefixCls}-columns-chooser`;\n const selectedKeys = [];\n const menuColumns = [];\n if (originalColumns && originalColumns.length) {\n originalColumns.forEach((column) => {\n const newColumn = { ...Column.defaultProps, ...column };\n const { hideable, hidden, title, dataIndex, key } = newColumn;\n if (hideable && title) {\n const keys = key || dataIndex;\n if (!hidden) {\n selectedKeys.push(keys);\n }\n const header = typeof title === 'function' ? title() : title;\n menuColumns.push([column, header, keys]);\n }\n });\n }\n else if (originalChildren && originalChildren.length) {\n // todo children hidden\n originalChildren.forEach((column) => {\n if (React.isValidElement(column)) {\n const columnChildren = column.props.children;\n const { hideable, hidden } = column.props;\n if (hideable && columnChildren[0]) {\n const key = columnChildren[1].props.dataKey;\n if (!hidden) {\n selectedKeys.push(key);\n }\n menuColumns.push([column.props, columnChildren[0].props.children, key]);\n }\n }\n });\n }\n return (React.createElement(Menu, { ref: this.saveMenu, multiple: true, defaultActiveFirst: true, prefixCls: `${proPrefixCls}-dropdown-menu`, className: `${selfPrefixCls}-dropdown-menu`, selectedKeys: selectedKeys, onSelect: this.handleMenuSelect, onDeselect: this.handleMenuUnSelect, onClick: handleMenuClick }, this.getOptions(menuColumns)));\n }\n getOptions(columns) {\n return columns.map(([column, header, key]) => (React.createElement(Item, { key: key, value: column },\n React.createElement(\"span\", null, header))));\n }\n};\nColumnFilter.displayName = 'ColumnFilter';\nColumnFilter.contextType = TableContext;\n__decorate([\n observable\n], ColumnFilter.prototype, \"hidden\", void 0);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"saveMenu\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"handleHiddenChange\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"handleKeyDown\", null);\n__decorate([\n action\n], ColumnFilter.prototype, \"setDropDownHidden\", null);\n__decorate([\n autobind,\n action\n], ColumnFilter.prototype, \"handleMenuSelect\", null);\n__decorate([\n autobind,\n action\n], ColumnFilter.prototype, \"handleMenuUnSelect\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"getMenu\", null);\nColumnFilter = __decorate([\n observer\n], ColumnFilter);\nexport default ColumnFilter;\n","import React, { useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport isString from 'lodash/isString';\nimport Tooltip from '../../tooltip';\nimport tableContext from '../TableContext';\nimport ColumnFilter from './ColumnFilter';\n/**\n * 获取配置区域 DOM Item\n *\n * @param setting 配置项\n * @param prefixCls\n */\nfunction getSettingItem(setting, prefixCls) {\n if (isString(setting) && setting === 'columnFilter') {\n return React.createElement(ColumnFilter, { prefixCls: prefixCls });\n }\n if (React.isValidElement(setting)) {\n return setting;\n }\n if (setting) {\n const settingConfig = setting;\n const { icon, tooltip, onClick, key } = settingConfig;\n if (icon && tooltip) {\n return (React.createElement(Tooltip, { title: tooltip },\n React.createElement(\"span\", { key: key, onClick: () => {\n if (onClick) {\n onClick(key);\n }\n } }, icon)));\n }\n return icon;\n }\n return null;\n}\nconst ToolBar = ({ header, hideToolbar, className, style, buttons = [], settings = [], }) => {\n const { tableStore: { prefixCls } } = useContext(tableContext);\n const toolbarPrefixCls = `${prefixCls}-toolbar`;\n const buttonsDom = useMemo(() => {\n if (!Array.isArray(buttons)) {\n return buttons;\n }\n if (buttons.length < 1) {\n return null;\n }\n return (React.createElement(\"div\", { className: `${toolbarPrefixCls}-buttons` }, buttons.map((btn, index) => {\n if (!React.isValidElement(btn)) {\n // eslint-disable-next-line react/no-array-index-key\n return React.createElement(React.Fragment, { key: index }, btn);\n }\n return React.cloneElement(btn, {\n // eslint-disable-next-line react/no-array-index-key\n key: index,\n ...btn?.props,\n });\n })));\n }, [buttons]);\n const headerNode = useMemo(() => (React.createElement(\"div\", { className: `${toolbarPrefixCls}-header` }, header)), [header]);\n const settingsDom = useMemo(() => {\n if (!Array.isArray(settings)) {\n return settings;\n }\n if (settings.length < 1) {\n return null;\n }\n return settings?.length ? (React.createElement(\"div\", { className: `${toolbarPrefixCls}-setting-items` }, settings.map((setting, index) => {\n const settingItem = getSettingItem(setting, prefixCls);\n return (\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"div\", { key: index, className: `${toolbarPrefixCls}-setting-item` }, settingItem));\n }))) : null;\n }, [settings]);\n // 不展示 toolbar\n if (hideToolbar) {\n return null;\n }\n return (React.createElement(\"div\", { style: style, className: classNames(`${toolbarPrefixCls}`, className) },\n React.createElement(\"div\", { className: `${toolbarPrefixCls}-container` },\n headerNode,\n React.createElement(\"div\", { className: `${toolbarPrefixCls}-right` },\n buttonsDom,\n settingsDom))));\n};\nexport default ToolBar;\n","import * as React from 'react';\nexport default function createContext(defaultValue) {\n const context = {\n Provider: React.Fragment,\n Consumer: React.Fragment,\n };\n const ReactContext = React.createContext\n ? React.createContext(defaultValue)\n : context;\n return ReactContext;\n}\n","// @ts-ignore\nexport function addEvent(el, event, handler, inputOptions) {\n if (!el)\n return;\n const options = { capture: true, ...inputOptions };\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n }\n else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n }\n else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nexport function removeEvent(el, event, handler, inputOptions) {\n if (!el)\n return;\n const options = { capture: true, ...inputOptions };\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n }\n else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n }\n else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nexport function findHiddenKeys(children, columns) {\n const hiddenColumnKeys = [];\n if (children && children.length) {\n Array.from(children).map((child) => {\n if (child.props && child.props.hidden) {\n const columnChildren = child.props.children;\n hiddenColumnKeys.push(columnChildren[1].props.dataKey);\n }\n });\n }\n if (columns && columns.length) {\n Array.from(columns).map((child) => {\n if (child && child.hidden) {\n hiddenColumnKeys.push(child.dataIndex);\n }\n });\n }\n return hiddenColumnKeys;\n}\nexport function getColumnKey({ dataIndex, key }) {\n return key || dataIndex;\n}\nexport function getColumnFixed(fixed) {\n if (fixed === true) {\n return 'left';\n }\n if (fixed) {\n return fixed;\n }\n return false;\n}\n","export default function findAllParents(rowData, rowKey) {\n const parents = [];\n if (!rowData) {\n return parents;\n }\n function findParent(data) {\n if (data) {\n // @ts-ignore\n parents.push(data[rowKey]);\n if (data._parent) {\n findParent(data._parent);\n }\n }\n }\n findParent(rowData._parent);\n return parents;\n}\n","export default function findRowKeys(rows, rowKey, expanded) {\n let keys = [];\n for (let i = 0; i < rows.length; i++) {\n const item = rows[i];\n if (item.children) {\n // @ts-ignore\n keys.push(item[rowKey]);\n keys = [...keys, ...findRowKeys(item.children, rowKey)];\n }\n else if (expanded) {\n // @ts-ignore\n keys.push(item[rowKey]);\n }\n }\n return keys;\n}\n","function flattenData(data) {\n const flattenItems = [];\n function loop(data, _parent) {\n if (!Array.isArray(data)) {\n return;\n }\n data.forEach(item => {\n item._parent = _parent;\n // @ts-ignore\n flattenItems.push({\n ...item,\n });\n if (item.children) {\n loop(item.children, item);\n }\n });\n }\n loop(data, null);\n return flattenItems;\n}\nexport default flattenData;\n","import * as React from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nfunction getTotalByColumns(columns, state) {\n let totalFlexGrow = 0;\n let totalWidth = 0;\n const count = items => {\n Array.from(items).forEach((column, index) => {\n const { dataIndex } = column.props;\n // @ts-ignore\n if (React.isValidElement(column)) {\n // @ts-ignore\n const { flexGrow, width = 0 } = column.props;\n totalFlexGrow += flexGrow || 0;\n totalWidth += flexGrow ? 0 : state[`${dataIndex}_${index}_width`] || width;\n }\n else if (Array.isArray(column)) {\n count(column);\n }\n });\n };\n if (Array.isArray(columns)) {\n count(columns);\n }\n else if (isPlainObject(columns)) {\n const { flexGrow, width = 0 } = columns.props;\n totalFlexGrow = flexGrow || 0;\n totalWidth = flexGrow ? 0 : width;\n }\n return {\n totalFlexGrow,\n totalWidth,\n };\n}\nexport default getTotalByColumns;\n","/**\n * Returns an object consisting of props beyond the scope of the Component.\n * Useful for getting and spreading unknown props from the user.\n * @param {object} propTypes\n * @param {object} props A ReactElement props object\n * @returns {{}} A shallow copy of the prop object\n */\n// fix unable to get propTypes after gatsby is compiled\nconst getUnhandledProps = (propTypes, props) => {\n const propTypeKeys = Object.keys(propTypes);\n return Object.keys(props).reduce((acc, prop) => {\n if (prop === 'childKey') {\n return acc;\n }\n if (propTypeKeys.length > 0 && propTypeKeys.indexOf(prop) === -1) {\n acc[prop] = props[prop];\n }\n return acc;\n }, {});\n};\nexport default getUnhandledProps;\n","export * from './prefix';\nexport { default as isNullOrUndefined } from './isNullOrUndefined';\nexport { default as getUnhandledProps } from './getUnhandledProps';\nexport { default as getTotalByColumns } from './getTotalByColumns';\nexport { default as mergeCells } from './mergeCells';\nexport { default as toggleClass } from './toggleClass';\nexport { default as toggle } from './toggle';\nexport { default as flattenData } from './flattenData';\nexport { default as translateDOMPositionXY } from './translateDOMPositionXY';\nexport { default as isRTL } from './isRTL';\nexport { default as findRowKeys } from './findRowKeys';\nexport { default as findAllParents } from './findAllParents';\nexport { default as shouldShowRowByExpanded } from './shouldShowRowByExpanded';\nexport { default as resetLeftForCells } from './resetLeftForCells';\nexport { default as isNumberOrTrue } from './isNumberOrTrue';\nexport * from './requestAnimationTimeout';\nexport * from './domFns';\n","import isNull from 'lodash/isNull';\nimport isUndefined from 'lodash/isUndefined';\nexport default function isNullOrUndefined(value) {\n return isNull(value) || isUndefined(value);\n}\n","export default function isNumberOrTrue(value) {\n return !!value || value === 0;\n}\n","export default function isRTL() {\n return (typeof window !== 'undefined' && (document.body.getAttribute('dir') || document.dir) === 'rtl');\n}\n","import * as React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport ColumnGroup from '../ColumnGroup';\nimport HeaderCell from '../HeaderCell';\nimport isNullOrUndefined from './isNullOrUndefined';\nfunction cloneCell(Cell, props) {\n return React.cloneElement(Cell, props);\n}\nfunction mergeCells(cells) {\n const nextCells = [];\n for (let i = 0; i < cells.length; i += 1) {\n const { width, colSpan, groupCount, groupHeader, isHeaderCell, headerHeight, verticalAlign, } = cells[i].props;\n const groupChildren = [];\n // fix(ColumnGroup): fix column cannot be sorted in ColumnGroup\n /**\n * 为列头添加分组\n */\n if (groupCount && isHeaderCell) {\n let nextWidth = width;\n let left = 0;\n for (let j = 0; j < groupCount; j += 1) {\n const nextCell = cells[i + j];\n const { width: nextCellWidth, sortable, children, dataKey, onSortColumn, sortColumn, sortType, } = nextCell.props;\n if (j !== 0) {\n nextWidth += nextCellWidth;\n left += cells[i + j - 1].props.width;\n cells[i + j] = cloneCell(nextCell, { hidden: true });\n }\n groupChildren.push(React.createElement(HeaderCell, { key: j, left: left, dataKey: dataKey, width: nextCellWidth, sortable: sortable, sortColumn: sortColumn, sortType: sortType, onSortColumn: onSortColumn }, children));\n }\n nextCells.push(cloneCell(cells[i], {\n width: nextWidth,\n children: (React.createElement(ColumnGroup, { width: nextWidth, headerHeight: headerHeight, header: groupHeader, verticalAlign: verticalAlign }, groupChildren)),\n }));\n continue;\n }\n else if (colSpan) {\n /**\n * 如果存在 colSpan 属性,就去找它的下一个 Cell,\n * 看看值是否是 isNullOrUndefined,,如果为空这可以合并这个单元格\n */\n let nextWidth = width;\n for (let j = 0; j < colSpan; j += 1) {\n const nextCell = cells[i + j];\n if (nextCell) {\n const { rowData, rowIndex, children, width: colSpanWidth, isHeaderCell, dataKey, } = nextCell.props;\n const cellText = isFunction(children)\n ? children(rowData, rowIndex)\n : get(rowData, dataKey);\n if ((rowData && isNullOrUndefined(cellText)) ||\n (isHeaderCell && isNullOrUndefined(children))) {\n nextWidth += colSpanWidth;\n cells[i + j] = cloneCell(nextCell, {\n hidden: true,\n });\n }\n }\n }\n nextCells.push(cloneCell(cells[i], {\n width: nextWidth,\n // Fix this use of the variablecolSpan always evaluates to true\n 'aria-colspan': nextWidth > width ? colSpan : undefined,\n }));\n continue;\n }\n nextCells.push(cells[i]);\n }\n return nextCells;\n}\nexport default mergeCells;\n","import curry from 'lodash/curry';\nimport classNames from 'classnames';\nexport const globalKey = 'c7n-';\nexport const getClassNamePrefix = () => {\n return globalKey;\n};\nexport const defaultClassPrefix = name => `${getClassNamePrefix()}${name}`;\nexport const prefix = curry((pre, className) => {\n if (!pre || !className) {\n return '';\n }\n if (Array.isArray(className)) {\n return classNames(className.filter(name => !!name).map(name => `${pre}-${name}`));\n }\n return `${pre}-${className}`;\n});\n","import requestAnimationFramePolyfill from 'dom-lib/lib/animation/requestAnimationFramePolyfill';\nimport cancelAnimationFramePolyfill from 'dom-lib/lib/animation/cancelAnimationFramePolyfill';\nexport const cancelAnimationTimeout = (frame) => cancelAnimationFramePolyfill(frame.id);\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\nexport const requestAnimationTimeout = (callback, delay) => {\n let start;\n // wait for end of processing current event handler, because event handler may be long\n Promise.resolve().then(() => {\n start = Date.now();\n });\n let frame = null;\n const timeout = () => {\n if (Date.now() - start >= delay) {\n callback.call(null);\n }\n else {\n // @ts-ignore\n frame.id = requestAnimationFramePolyfill(timeout);\n }\n };\n // @ts-ignore\n frame = {\n id: requestAnimationFramePolyfill(timeout),\n };\n // @ts-ignore\n return frame;\n};\n","import * as React from 'react';\n/**\n * 重置数组中所有 cell 的相对 left 的距离。\n * @param cells\n * @param extraWidth 额外为最后一个元素添加的的宽度,当存在纵向滚动条的时候设置。\n */\nexport default function resetLeftForCells(cells, extraWidth) {\n let left = 0;\n const nextCells = [];\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i];\n const nextCell = React.cloneElement(cell, {\n left,\n width: i === cells.length - 1 && extraWidth ? cell.props.width + extraWidth : cell.props.width,\n });\n left += cell.props.width;\n // @ts-ignore\n nextCells.push(nextCell);\n }\n return nextCells;\n}\n","import intersection from 'lodash/intersection';\nexport default function shouldShowRowByExpanded(expandedRowKeys = [], parentKeys = []) {\n const intersectionKeys = intersection(expandedRowKeys, parentKeys);\n if (intersectionKeys.length === parentKeys.length) {\n return true;\n }\n return false;\n}\n","/**\n * 根据条件,选择性调用 a 与 b 其中一个方法。\n * @param a\n * @param b\n */\nfunction toggle(a, b) {\n return (target, value) => {\n const options = [target, ...value];\n return condition => {\n if (condition) {\n a(...options);\n }\n else {\n b(...options);\n }\n };\n };\n}\nexport default toggle;\n","import { addClass, removeClass } from 'dom-lib';\nconst toggleClass = (node, className, condition) => {\n if (condition) {\n addClass(node, className);\n }\n else {\n removeClass(node, className);\n }\n};\nexport default (node, className, condition) => {\n if (!node) {\n return;\n }\n if (Array.isArray(node) || Object.getPrototypeOf(node).hasOwnProperty('length')) {\n node = node;\n Array.from(node).forEach(item => {\n toggleClass(item, className, condition);\n });\n return;\n }\n toggleClass(node, className, condition);\n};\n","import { getTranslateDOMPositionXY } from 'dom-lib/lib/transition/translateDOMPositionXY';\nconst translateDOMPositionXY = getTranslateDOMPositionXY({ enable3DTransform: true });\nexport default translateDOMPositionXY;\n","import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useRef, useState, } from 'react';\nimport classNames from 'classnames';\nimport ReactIntersectionObserver from 'react-intersection-observer';\nimport isNumber from 'lodash/isNumber';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport Icon from '../icon';\nimport objectFitPolyfill, { isObjectFitSupport } from '../_util/objectFitPolyfill';\nimport PictureContext, { PictureProvider } from './PictureContext';\nimport modalPreview from '../modal/preview';\nfunction Picture(props, ref) {\n const { src, previewUrl, previewTarget, lazy, className, width, height, prefixCls, style, sources, alt, title, block = true, preview = true, objectFit = 'fill', objectPosition = 'center', status: propStatus, border, index, onClick, children, onPreview, ...rest } = props;\n const url = previewUrl || src;\n const pictureRef = useRef({ src: url });\n const context = useContext(PictureContext);\n const customPrefixCls = getProPrefixCls('picture', prefixCls);\n const imgRef = useRef(null);\n const [status, setStatus] = useState(propStatus || 'empty');\n const [inView, setInView] = useState(!lazy || !!propStatus);\n const handlePreview = useCallback(() => {\n if (preview && !previewTarget && status === 'loaded' && url) {\n if (context && isNumber(index)) {\n context.preview(index);\n }\n else {\n modalPreview({ list: [url] });\n }\n if (onPreview) {\n onPreview();\n }\n }\n }, [context, index, preview, previewTarget, status, url, onPreview]);\n const handleClick = useCallback((e) => {\n handlePreview();\n if (onClick) {\n onClick(e);\n }\n }, [handlePreview, onClick]);\n const wrapperStyle = {\n ...style,\n };\n const elementStyle = {\n objectFit,\n objectPosition,\n };\n if (typeof width !== 'undefined') {\n const w = pxToRem(width) || 0;\n elementStyle.width = w;\n wrapperStyle.width = w;\n }\n if (typeof height !== 'undefined') {\n const h = pxToRem(height) || 0;\n elementStyle.height = h;\n wrapperStyle.height = h;\n }\n useEffect(() => {\n if (!propStatus && inView && src) {\n const img = new Image(width, height);\n const onLoad = () => {\n setStatus('loaded');\n };\n const onError = () => {\n setStatus('error');\n };\n img.addEventListener('load', onLoad, false);\n img.addEventListener('error', onError, false);\n img.src = src;\n return () => {\n img.removeEventListener('load', onLoad, false);\n img.removeEventListener('error', onError, false);\n };\n }\n }, [inView, src, propStatus]);\n useEffect(() => {\n if (propStatus) {\n setStatus(propStatus);\n }\n }, [propStatus]);\n useEffect(() => {\n const { current } = imgRef;\n if (current && !isObjectFitSupport() && objectFit && objectPosition) {\n const onResize = () => objectFitPolyfill(current, objectFit, objectPosition);\n onResize();\n window.addEventListener('resize', onResize, false);\n return () => window.removeEventListener('resize', onResize, false);\n }\n }, [imgRef, objectFit, objectPosition]);\n useEffect(() => {\n if (preview && !previewTarget && context && isNumber(index) && url) {\n pictureRef.current.src = url;\n context.registerPicture(index, pictureRef.current);\n return () => context.unRegisterPicture(index, pictureRef.current);\n }\n }, [index, context, pictureRef, preview, previewTarget, url]);\n useImperativeHandle(ref, () => ({\n preview: handlePreview,\n }), [handlePreview]);\n const renderSources = () => {\n if (sources) {\n return sources.map((source, i) => React.createElement(\"source\", Object.assign({ key: String(i) }, source)));\n }\n };\n const renderImg = () => {\n if (children) {\n return children;\n }\n switch (status) {\n case 'loaded': {\n return (React.createElement(\"img\", Object.assign({ ref: imgRef, style: elementStyle, className: `${customPrefixCls}-img`, src: src, alt: alt || title, title: title }, rest)));\n }\n case 'error':\n return (React.createElement(\"div\", { className: `${customPrefixCls}-icon` },\n React.createElement(Icon, { type: \"sentiment_dissatisfied\" })));\n case 'empty':\n default:\n return (React.createElement(\"div\", { className: `${customPrefixCls}-icon` },\n React.createElement(Icon, { type: \"photo_size_select_actual\" })));\n }\n };\n const classString = classNames(customPrefixCls, {\n [`${customPrefixCls}-border`]: border,\n [`${customPrefixCls}-block`]: block,\n [`${customPrefixCls}-preview`]: preview && status === 'loaded',\n }, className);\n const isPictureSupport = typeof HTMLPictureElement !== 'undefined';\n const Cmp = isPictureSupport ? 'picture' : 'div';\n const img = renderImg();\n const picture = (React.createElement(Cmp, { className: classString, style: wrapperStyle, onClick: handleClick },\n isPictureSupport && renderSources(),\n preview && previewTarget ? (React.createElement(\"a\", { target: previewTarget, href: url }, img)) : img));\n if (lazy && !propStatus && status !== 'loaded') {\n return (React.createElement(ReactIntersectionObserver, { onChange: setInView }, picture));\n }\n return picture;\n}\n;\nconst ForwardPicture = forwardRef(Picture);\nForwardPicture.Provider = PictureProvider;\nForwardPicture.Context = PictureContext;\nForwardPicture.displayName = 'Picture';\nexport default ForwardPicture;\n","import React, { createContext, useCallback, useMemo, useRef } from 'react';\nimport modalPreview from '../modal/preview';\nconst PictureContext = createContext(undefined);\nexport default PictureContext;\nexport const PictureProvider = (props) => {\n const { children } = props;\n const pictureList = useRef([]);\n const registerPicture = useCallback((index, pictureRef) => {\n if (pictureList.current[index] !== pictureRef) {\n pictureList.current[index] = pictureRef;\n }\n }, [pictureList]);\n const unRegisterPicture = useCallback((index, pictureRef) => {\n if (pictureList[index] === pictureRef) {\n pictureList.current[index] = undefined;\n }\n }, [pictureList]);\n const preview = useCallback((index) => {\n modalPreview({\n defaultIndex: index,\n list: pictureList.current.reduce((items, picture) => {\n if (picture && picture.src) {\n items.push(picture.src);\n }\n return items;\n }, []),\n });\n }, [pictureList]);\n const value = useMemo(() => ({\n registerPicture,\n unRegisterPicture,\n preview,\n }), [registerPicture, unRegisterPicture, preview]);\n return (React.createElement(PictureContext.Provider, { value: value }, children));\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport Button from '../button/Button';\nimport { FuncType } from '../button/enum';\nimport Picture from './Picture';\nconst PictureViewer = function PictureViewer(props) {\n const { list, defaultIndex = 0, prefixCls, modal } = props;\n const [index, setIndex] = useState(defaultIndex);\n const customizedPrefixCls = getProPrefixCls('picture-viewer', prefixCls);\n const handlePrev = useCallback(() => setIndex(index - 1), [index]);\n const handleNext = useCallback(() => setIndex(index + 1), [index]);\n const { length } = list;\n useEffect(() => {\n if (modal) {\n modal.update({\n header(title, closeBtn) {\n return (React.createElement(\"div\", { className: `${customizedPrefixCls}-header` },\n React.createElement(\"span\", null, title),\n length > 1 ? React.createElement(\"span\", null,\n index + 1,\n \" / \",\n length) : undefined,\n closeBtn));\n },\n });\n }\n }, [index, length, customizedPrefixCls]);\n if (length) {\n const src = list[index];\n return (React.createElement(\"div\", { className: customizedPrefixCls },\n length > 1 && (React.createElement(Button, { icon: \"navigate_before\", disabled: index === 0, funcType: FuncType.link, onClick: handlePrev, className: `${customizedPrefixCls}-btn`, size: Size.large })),\n React.createElement(\"div\", { className: `${customizedPrefixCls}-picture` },\n React.createElement(Picture, { src: src, objectFit: \"scale-down\", status: \"loaded\", preview: false, lazy: false })),\n length > 1 && (React.createElement(Button, { icon: \"navigate_next\", disabled: index === length - 1, funcType: FuncType.link, onClick: handleNext, className: `${customizedPrefixCls}-btn`, size: Size.large }))));\n }\n return null;\n};\nPictureViewer.displayName = 'PictureViewer';\nexport default PictureViewer;\n","import Picture from './Picture';\nexport default Picture;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport omit from 'lodash/omit';\nimport isNumber from 'lodash/isNumber';\nimport C7NProgress from 'choerodon-ui/lib/progress';\nimport { FormField } from '../field/FormField';\nlet Progress = class Progress extends FormField {\n getValue() {\n const value = super.getValue();\n if (isNumber(value)) {\n return value;\n }\n return this.props.percent;\n }\n render() {\n return (React.createElement(C7NProgress, Object.assign({}, omit(this.props, ['dataSet', 'showHelp', 'renderer']), { percent: this.getValue() })));\n }\n};\nProgress.displayName = 'Progress';\nProgress = __decorate([\n observer\n], Progress);\nexport default Progress;\n","import Progress from './Progress';\nexport default Progress;\n","import 'choerodon-ui/lib/progress/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action, toJS } from 'mobx';\nimport { observer } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { FormField } from '../field/FormField';\nimport autobind from '../_util/autobind';\nimport { ViewMode } from './enum';\nimport { $l } from '../locale-context';\nimport { LabelLayout } from '../form/enum';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport isOverflow from '../overflow-tip/util';\nimport { show } from '../tooltip/singleton';\nexport class Radio extends FormField {\n constructor() {\n super(...arguments);\n this.type = 'radio';\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('Radio', label ? 'value_missing' : 'value_missing_no_label', { label }),\n };\n }\n get checkedValue() {\n const { value = 'on' } = this.props;\n return value;\n }\n saveLabelRef(node) {\n this.labelRef = node;\n }\n getControlled(props) {\n return props.checked !== undefined;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'value',\n 'readOnly',\n 'mode',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.type = this.type;\n otherProps.onMouseDown = this.handleMouseDown;\n otherProps.onClick = otherProps.onChange;\n otherProps.onChange = noop;\n return otherProps;\n }\n showTooltip(e) {\n if (super.showTooltip(e)) {\n return true;\n }\n const { labelTooltip, labelRef } = this;\n if (labelRef && (labelTooltip === TextTooltip.always || (labelTooltip === TextTooltip.overflow && isOverflow(labelRef)))) {\n const labelText = this.getLabelText();\n if (labelText) {\n show(labelRef, {\n title: labelText,\n theme: getTooltipTheme('label'),\n });\n return true;\n }\n }\n return false;\n }\n renderWrapper() {\n const checked = this.isChecked();\n const floatLabel = super.hasFloatLabel ? this.renderSwitchFloatLabel() : undefined;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"label\", Object.assign({ key: \"wrapper\" }, this.getWrapperProps()),\n React.createElement(\"input\", Object.assign({}, this.getOtherProps(), { checked: checked, value: this.checkedValue })),\n this.renderInner(),\n this.getTextNode(),\n this.renderFloatLabel()),\n floatLabel));\n }\n /**\n * 解决form 在float的时候没有表头的问题\n * 也可以在需要不在组件内部展现label的时候使用\n */\n renderSwitchFloatLabel() {\n return undefined;\n }\n renderInner() {\n return React.createElement(\"span\", { className: `${this.prefixCls}-inner` });\n }\n /**\n * 当使用label代替children时,不需要展示float label\n *\n * @readonly\n * @memberof Radio\n */\n get hasFloatLabel() {\n return this.getLabelChildren() ? false : super.hasFloatLabel;\n }\n /**\n * 没有children时,使用label替代children\n *\n * @returns {ReactNode} label\n * @memberof Radio\n */\n getLabelChildren() {\n const { labelLayout } = this;\n return (labelLayout &&\n ![LabelLayout.horizontal, LabelLayout.vertical, LabelLayout.none].includes(labelLayout) &&\n this.getLabel());\n }\n getChildrenText() {\n return toJS(this.props.children);\n }\n getLabelText() {\n return this.getChildrenText() || this.getLabelChildren();\n }\n getTextNode() {\n const { prefixCls } = this;\n const text = this.getLabelText();\n if (text) {\n return React.createElement(\"span\", { ref: this.saveLabelRef, className: `${prefixCls}-label` }, text);\n }\n }\n getWrapperClassNames(...args) {\n const { prefixCls, props: { mode }, } = this;\n return super.getWrapperClassNames({\n [`${prefixCls}-button`]: mode === ViewMode.button,\n }, ...args);\n }\n isChecked() {\n const { checked } = this.props;\n const { name, dataSet, checkedValue } = this;\n if (dataSet && name) {\n return this.getDataSetValue() === checkedValue;\n }\n return checked;\n }\n handleMouseDown(e) {\n // e.stopPropagation();\n const { onMouseDown } = this.props;\n if (typeof onMouseDown === 'function') {\n onMouseDown(e);\n }\n }\n handleChange(e) {\n const { onClick = noop } = this.props;\n const { checked } = e.target;\n onClick(e);\n this.setChecked(checked);\n }\n setChecked(checked) {\n if (checked) {\n this.setValue(this.checkedValue);\n }\n }\n getOldValue() {\n return this.isChecked() ? this.checkedValue : undefined;\n }\n}\nRadio.displayName = 'Radio';\nRadio.propTypes = {\n /**\n * <受控>是否选中\n */\n checked: PropTypes.bool,\n /**\n * 初始是否选中\n */\n defaultChecked: PropTypes.bool,\n /**\n * 显示模式\n * 可选值: button | box\n * @default box\n */\n mode: PropTypes.oneOf([ViewMode.button, ViewMode.box]),\n ...FormField.propTypes,\n};\nRadio.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'radio',\n};\n// eslint-disable-next-line camelcase\nRadio.__PRO_RADIO = true;\n// eslint-disable-next-line camelcase\nRadio.__IS_IN_CELL_EDITOR = true;\n__decorate([\n autobind\n], Radio.prototype, \"saveLabelRef\", null);\n__decorate([\n autobind\n], Radio.prototype, \"handleMouseDown\", null);\n__decorate([\n autobind\n], Radio.prototype, \"handleChange\", null);\n__decorate([\n action\n], Radio.prototype, \"setChecked\", null);\nlet ObserverRadio = class ObserverRadio extends Radio {\n};\nObserverRadio.defaultProps = Radio.defaultProps;\n// eslint-disable-next-line camelcase\nObserverRadio.__PRO_RADIO = true;\n// eslint-disable-next-line camelcase\nObserverRadio.__IS_IN_CELL_EDITOR = true;\nObserverRadio = __decorate([\n observer\n], ObserverRadio);\nexport default ObserverRadio;\n","export var ViewMode;\n(function (ViewMode) {\n ViewMode[\"box\"] = \"box\";\n ViewMode[\"button\"] = \"button\";\n})(ViewMode || (ViewMode = {}));\n","import ObserverRadio from './Radio';\nexport default ObserverRadio;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../field/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { NumberField } from '../number-field/NumberField';\nimport autobind from '../_util/autobind';\nimport EventManager from '../_util/EventManager';\nimport { FieldType } from '../data-set/enum';\nlet Range = class Range extends NumberField {\n constructor() {\n super(...arguments);\n this.dragEvent = new EventManager(typeof window === 'undefined' ? undefined : document);\n this.type = 'range';\n }\n getFieldType() {\n return FieldType.number;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'vertical',\n ]);\n }\n getValue() {\n return super.getValue() || 0;\n }\n getWrapperClassNames() {\n const { props: { vertical }, prefixCls, } = this;\n return super.getWrapperClassNames({\n [`${prefixCls}-vertical`]: vertical,\n });\n }\n renderWrapper() {\n return (React.createElement(\"label\", Object.assign({ key: \"wrapper\" }, this.getWrapperProps()),\n React.createElement(\"input\", Object.assign({}, this.getOtherProps(), { value: this.getValue() })),\n this.renderTrack(),\n this.renderFloatLabel()));\n }\n renderTrack() {\n const percent = this.getPercent();\n const { props: { vertical }, prefixCls, } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-track`, onMouseDown: this.readOnly || this.disabled ? undefined : this.handleTrackClick },\n React.createElement(\"div\", { className: `${prefixCls}-draghandle`, style: vertical ? { bottom: percent } : { left: percent } }),\n React.createElement(\"div\", { className: `${prefixCls}-selection`, style: vertical ? { height: percent } : { width: percent } })));\n }\n handleTrackClick(e) {\n this.track = e.currentTarget;\n this.handleDrag(e);\n this.handleDragStart();\n }\n handleDragStart() {\n this.dragEvent\n .addEventListener('mousemove', this.handleDrag)\n .addEventListener('mouseup', this.handleDragEnd);\n }\n handleDragEnd() {\n this.dragEvent\n .removeEventListener('mousemove', this.handleDrag)\n .removeEventListener('mouseup', this.handleDragEnd);\n }\n handleDrag(e) {\n const { track } = this;\n const { vertical } = this.props;\n const max = this.getProp('max');\n const min = this.getProp('min');\n const step = this.getProp('step');\n const { bottom, left } = track.getBoundingClientRect();\n const length = vertical ? bottom - e.clientY : e.clientX - left;\n const totalLength = vertical ? track.clientHeight : track.clientWidth;\n const oneStepLength = (1 / ((max - min) / step)) * totalLength;\n let value = min;\n if (length <= 0) {\n value = min;\n }\n else if (length >= totalLength) {\n value = max;\n }\n else {\n value = Math.round(length / oneStepLength) * step + min;\n }\n this.setValue(value);\n }\n getPercent() {\n const value = this.getValue();\n const max = this.getProp('max');\n const min = this.getProp('min');\n if (value <= min) {\n return 0;\n }\n if (value >= max) {\n return '100%';\n }\n return `${((value - min) / (max - min)) * 100}%`;\n }\n};\nRange.displayName = 'Range';\nRange.propTypes = {\n /**\n * 是否垂直方向\n * @default\n * false\n */\n vertical: PropTypes.bool,\n ...NumberField.propTypes,\n};\nRange.defaultProps = {\n ...NumberField.defaultProps,\n suffixCls: 'range',\n min: 0,\n step: 1,\n max: 100,\n vertical: false,\n};\n__decorate([\n autobind\n], Range.prototype, \"handleTrackClick\", null);\n__decorate([\n autobind\n], Range.prototype, \"handleDragStart\", null);\n__decorate([\n autobind\n], Range.prototype, \"handleDragEnd\", null);\n__decorate([\n autobind\n], Range.prototype, \"handleDrag\", null);\nRange = __decorate([\n observer\n], Range);\nexport default Range;\n","import Range from './Range';\nexport default Range;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport isString from 'lodash/isString';\nimport noop from 'lodash/noop';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport C7NRate from 'choerodon-ui/lib/rate';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport { FIELD_SUFFIX } from '../form/utils';\nimport { FormField } from '../field/FormField';\nimport { renderValidationMessage } from '../field/utils';\nimport Icon from '../icon';\nimport { LabelLayout, ShowValidation } from '../form/enum';\nimport autobind from '../_util/autobind';\nimport { hide, show } from '../tooltip/singleton';\nexport class Rate extends FormField {\n constructor() {\n super(...arguments);\n this.onChange = (value) => {\n this.setValue(value);\n };\n }\n get hasFloatLabel() {\n const { labelLayout } = this;\n return [LabelLayout.float, LabelLayout.placeholder].includes(labelLayout);\n }\n renderValidationResult(validationResult) {\n const validationMessage = this.getValidationMessage(validationResult);\n const { labelLayout, showValidation } = this.context;\n if (validationMessage) {\n const showIcon = !([LabelLayout.float, LabelLayout.placeholder].includes(labelLayout) || showValidation === ShowValidation.newLine);\n return renderValidationMessage(validationMessage, showIcon);\n }\n }\n handleHelpMouseEnter(e) {\n show(e.currentTarget, {\n title: this.getProp('help'),\n popupClassName: `${getConfig('proPrefixCls')}-tooltip-popup-help`,\n theme: getTooltipTheme('help'),\n });\n }\n handleHelpMouseLeave() {\n hide();\n }\n renderTooltipHelp() {\n const help = this.getProp('help');\n if (help) {\n return (React.createElement(Icon, { type: \"help\", onMouseEnter: this.handleHelpMouseEnter, onMouseLeave: this.handleHelpMouseLeave }));\n }\n }\n renderFloatLabel() {\n if (this.hasFloatLabel) {\n const label = this.getLabel();\n if (label) {\n const { labelTooltip, floatLabelOffsetX } = this;\n const prefixCls = getProPrefixCls(FIELD_SUFFIX);\n const required = this.getProp('required');\n const classString = classNames(`${prefixCls}-label`, {\n [`${prefixCls}-required`]: required,\n [`${prefixCls}-readonly`]: this.readOnly,\n });\n const style = floatLabelOffsetX ? {\n marginLeft: floatLabelOffsetX,\n } : undefined;\n return (React.createElement(\"div\", { className: `${prefixCls}-label-wrapper`, style: style },\n React.createElement(\"div\", { className: classString, title: isString(label) && ![TextTooltip.always, TextTooltip.overflow].includes(labelTooltip) ? label : undefined, onMouseEnter: this.handleFloatLabelMouseEnter, onMouseLeave: this.handleFloatLabelMouseLeave }, label),\n this.renderTooltipHelp()));\n }\n }\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onFocus = noop;\n otherProps.onBlur = noop;\n return otherProps;\n }\n renderWrapper() {\n const value = this.getValue();\n return (React.createElement(\"label\", Object.assign({ key: \"wrapper\" }, this.getWrapperProps()),\n this.renderFloatLabel(),\n React.createElement(\"div\", { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave },\n React.createElement(C7NRate, Object.assign({}, this.getOtherProps(), { onChange: this.onChange, value: value })))));\n }\n renderHelpMessage() {\n const label = this.getLabel();\n if (!this.hasFloatLabel || !label) {\n const help = this.getProp('help');\n if (help) {\n return (React.createElement(\"div\", { key: \"help\", className: `${getProPrefixCls(FIELD_SUFFIX)}-help` }, help));\n }\n }\n }\n}\nRate.displayName = 'Rate';\nRate.propTypes = {\n ...C7NRate.propTypes,\n ...FormField.propTypes,\n};\nRate.defaultProps = {\n ...C7NRate.defaultProps,\n ...FormField.defaultProps,\n suffixCls: 'rate',\n};\n// eslint-disable-next-line camelcase\nRate.__PRO_RATE = true;\n// eslint-disable-next-line camelcase\nRate.__IS_IN_CELL_EDITOR = true;\n__decorate([\n autobind\n], Rate.prototype, \"renderValidationResult\", null);\n__decorate([\n autobind\n], Rate.prototype, \"handleHelpMouseEnter\", null);\nlet ObserverRate = class ObserverRate extends Rate {\n};\nObserverRate.defaultProps = Rate.defaultProps;\n// eslint-disable-next-line camelcase\nObserverRate.__PRO_RATE = true;\n// eslint-disable-next-line camelcase\nObserverRate.__IS_IN_CELL_EDITOR = true;\nObserverRate = __decorate([\n observer\n], ObserverRate);\nexport default ObserverRate;\n","import ObserverRate from './Rate';\nexport default ObserverRate;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { findDOMNode } from 'react-dom';\nimport 'react-quill/dist/quill.snow.css';\nimport isEqual from 'lodash/isEqual';\nimport isObject from 'lodash/isObject';\nimport omit from 'lodash/omit';\nimport LightBox from 'react-image-lightbox';\nimport QuillImageDropAndPaste from './utils/imageDropAndPaste';\nimport autobind from '../_util/autobind';\nimport RichTextViewer from './RichTextViewer';\nimport { RichTextToolbarType } from './enum';\nimport Toolbar from './toolbar';\nlet ReactQuill;\nlet Quill;\nif (typeof window !== 'undefined') {\n // eslint-disable-next-line global-require\n ReactQuill = require('react-quill');\n // eslint-disable-next-line global-require\n Quill = require('react-quill').Quill;\n /**\n * 注册图片拖拽、粘贴\n */\n Quill.register('modules/imageDropAndPaste', QuillImageDropAndPaste);\n}\nlet BaseEditor = class BaseEditor extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n imgOpen: false,\n images: [],\n srcIndex: 0,\n };\n this.handleOpenLightBox = (e) => {\n if (e.target.nodeName === 'IMG' && this.deltaOps) {\n e.stopPropagation();\n const src = e.target.src;\n const imgArr = [];\n this.deltaOps.forEach(item => {\n const image = item.insert.image;\n if (image) {\n imgArr.push(image);\n }\n });\n const index = imgArr.findIndex(img => img === src);\n this.setState({\n imgOpen: true,\n images: imgArr,\n srcIndex: index,\n });\n }\n };\n this.saveRef = name => (ref) => {\n this[name] = ref;\n const { saveRef } = this.props;\n if (saveRef) {\n saveRef(ref);\n }\n };\n }\n setValue(value) {\n if (this.editor) {\n this.editor.getEditor().setContents(value);\n }\n }\n ;\n handleRichTextChange(_, __, ___, editor) {\n const rtDelta = editor.getContents();\n this.deltaOps = rtDelta.ops;\n const { onChange } = this.props;\n if (onChange && rtDelta && rtDelta.ops) {\n onChange(rtDelta.ops);\n }\n }\n ;\n componentDidUpdate() {\n const { value } = this.props;\n let deltaOps;\n if (!isObject(value) && this.editor) {\n deltaOps = this.editor.getEditor().clipboard.convert(value).ops;\n }\n if ('value' in this.props && !isEqual(this.deltaOps, deltaOps || value) && this.editor) {\n this.editor.getEditor().setContents(deltaOps || value);\n }\n }\n getOtherProps() {\n return omit(this.props, ['style', 'toolbar', 'className', 'defaultValue', 'onChange', 'value']);\n }\n componentWillUnmount() {\n const thisNode = findDOMNode(this);\n if (thisNode) {\n thisNode.removeEventListener('click', this.handleOpenLightBox);\n }\n }\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus && this.editor) {\n setTimeout(() => {\n this.editor.focus();\n });\n }\n const thisNode = findDOMNode(this);\n if (thisNode) {\n thisNode.addEventListener('click', this.handleOpenLightBox);\n }\n }\n renderContent() {\n const { style, className, toolbarId, toolbar, dataSet, value, mode } = this.props;\n let deltaOps;\n if (!isObject(value) && this.editor) {\n deltaOps = this.editor.getEditor().clipboard.convert(value).ops;\n }\n if (mode === 'preview') {\n return (React.createElement(RichTextViewer, { style: style, deltaOps: deltaOps || value }));\n }\n if (ReactQuill) {\n return (React.createElement(React.Fragment, null,\n React.createElement(Toolbar, { id: toolbarId, dataSet: dataSet, toolbar: toolbar, prefixCls: className }),\n React.createElement(ReactQuill, Object.assign({}, this.getOtherProps(), { className: `${className}-quill`, defaultValue: value, ref: this.saveRef('editor'), onChange: this.handleRichTextChange, bounds: className }))));\n }\n }\n render() {\n const { imgOpen, images, srcIndex } = this.state;\n const { className, style } = this.props;\n const content = this.renderContent();\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: className, style: style }, content),\n imgOpen && (React.createElement(LightBox, { mainSrc: images[srcIndex], onCloseRequest: () => this.setState({ imgOpen: false }), imageTitle: \"images\", prevSrc: images[srcIndex - 1], nextSrc: images[srcIndex + 1], onMovePrevRequest: () => {\n this.setState({ srcIndex: srcIndex - 1 });\n }, onMoveNextRequest: () => {\n this.setState({ srcIndex: srcIndex + 1 });\n } }))));\n }\n};\nBaseEditor.propTypes = {\n value: PropTypes.any,\n onChange: PropTypes.func,\n options: PropTypes.object,\n saveRef: PropTypes.func,\n autoFocus: PropTypes.bool,\n mode: PropTypes.string,\n toolbarId: PropTypes.string,\n toolbar: PropTypes.oneOfType([\n PropTypes.oneOf([\n RichTextToolbarType.none,\n RichTextToolbarType.normal,\n ]),\n PropTypes.func,\n ]),\n};\n__decorate([\n autobind\n], BaseEditor.prototype, \"setValue\", null);\n__decorate([\n autobind\n], BaseEditor.prototype, \"handleRichTextChange\", null);\n__decorate([\n autobind\n], BaseEditor.prototype, \"renderContent\", null);\nBaseEditor = __decorate([\n observer\n], BaseEditor);\nexport default BaseEditor;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { toJS } from 'mobx';\nimport 'react-quill/dist/quill.snow.css';\nimport isEqual from 'lodash/isEqual';\nimport noop from 'lodash/noop';\nimport { FormField } from '../field/FormField';\nimport autobind from '../_util/autobind';\nimport BaseEditor from './BaseEditor';\nimport RichTextViewer from './RichTextViewer';\nimport { randomWord } from './utils';\nimport { RichTextMode, RichTextToolbarType } from './enum';\nconst defaultRichTextOptions = {\n theme: 'snow',\n};\nlet RichText = class RichText extends FormField {\n constructor() {\n super(...arguments);\n this.toolbarId = randomWord(false, 32, 64);\n this.rtOptions = this.getRichTextOptions();\n }\n getRichTextOptions(options = this.props.options) {\n if (options) {\n if (options.modules && options.modules.imageDropAndPaste !== false) {\n options.modules.imageDropAndPaste = true;\n }\n }\n else {\n options = {\n modules: {\n toolbar: {\n container: `#${this.toolbarId}`,\n },\n imageDropAndPaste: true,\n },\n };\n }\n return { ...defaultRichTextOptions, ...options };\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'defaultValue',\n 'value',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n delete otherProps.disabled;\n return otherProps;\n }\n handleChange(value) {\n this.setValue(value);\n }\n // 禁用与只读表现一致\n // @autobind\n // setDisabled(disabled) {\n // if(this.element && this.element.editor) {\n // this.element.editor.getEditor().enable(!disabled);\n // }\n // }\n componentWillReceiveProps(nextProps, nextContext) {\n const { options } = nextProps;\n if (!isEqual(options, this.props.options)) {\n this.rtOptions = this.getRichTextOptions(options);\n }\n super.componentWillReceiveProps(nextProps, nextContext);\n }\n handleRichTextBlur(props) {\n const { onBlur = noop } = this.props;\n onBlur(props);\n }\n renderWrapper() {\n const { defaultValue, dataSet } = this.props;\n this.rtOptions.readOnly = this.disabled || this.readOnly;\n const deltaOps = this.getValue() || defaultValue;\n return (React.createElement(\"div\", Object.assign({}, this.getWrapperProps()),\n React.createElement(BaseEditor, Object.assign({}, this.getOtherProps(), this.rtOptions, { toolbarId: this.toolbarId, value: toJS(deltaOps), dataSet: dataSet, onBlur: this.handleRichTextBlur })),\n this.renderFloatLabel()));\n }\n};\nRichText.displayName = 'RichText';\nRichText.RichTextViewer = RichTextViewer;\nRichText.propTypes = {\n options: PropTypes.object,\n mode: PropTypes.oneOf([RichTextMode.editor, RichTextMode.preview]),\n toolbar: PropTypes.oneOfType([\n PropTypes.oneOf([\n RichTextToolbarType.none,\n RichTextToolbarType.normal,\n ]),\n PropTypes.func,\n ]),\n ...FormField.propTypes,\n};\nRichText.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'rich-text',\n autoFocus: false,\n mode: 'editor',\n toolbar: RichTextToolbarType.normal,\n};\n__decorate([\n autobind\n], RichText.prototype, \"handleChange\", null);\n__decorate([\n autobind\n], RichText.prototype, \"handleRichTextBlur\", null);\nRichText = __decorate([\n observer\n], RichText);\nexport default RichText;\n","import React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport LightBox from 'react-image-lightbox';\nimport omit from 'lodash/omit';\nimport { toJS } from 'mobx';\nimport classNames from 'classnames';\nimport 'react-quill/dist/quill.snow.css';\nimport { delta2Html } from './utils';\nclass RichTextViewer extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n open: false,\n images: [],\n srcIndex: 0,\n };\n this.open = (e) => {\n if (e.target?.nodeName === 'IMG') {\n e.stopPropagation();\n const { deltaOps } = this.props;\n const imgArr = [];\n deltaOps.forEach(item => {\n const image = item.insert.image;\n if (image) {\n imgArr.push(image);\n }\n });\n const index = imgArr.findIndex(img => img === e.target.src);\n this.setState({\n open: true,\n images: imgArr,\n srcIndex: index,\n });\n }\n };\n this.escape = str => str.replace(/<\\/script/g, '<\\\\/script').replace(/<!--/g, '<\\\\!--');\n }\n componentDidMount() {\n const { deltaOps } = this.props;\n const thisNode = findDOMNode(this);\n if (thisNode && deltaOps) {\n thisNode.addEventListener('click', this.open);\n }\n }\n componentWillUnmount() {\n const thisNode = findDOMNode(this);\n if (thisNode)\n thisNode.removeEventListener('click', this.open);\n }\n getOtherProps() {\n return omit(this.props, ['deltaOps']);\n }\n render() {\n const { deltaOps, className } = this.props;\n const { open, images, srcIndex } = this.state;\n const html = delta2Html(toJS(deltaOps));\n const classString = classNames(className, 'quill');\n return (React.createElement(\"div\", Object.assign({}, this.getOtherProps(), { className: classString }),\n React.createElement(\"div\", { className: \"ql-container ql-snow\" },\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: `${this.escape(html)}` }, className: \"ql-editor\" }),\n open ? (React.createElement(LightBox, { mainSrc: images[srcIndex], onCloseRequest: () => this.setState({ open: false }), imageTitle: \"images\", prevSrc: images[srcIndex - 1], nextSrc: images[srcIndex + 1], onMovePrevRequest: () => {\n this.setState({ srcIndex: srcIndex - 1 });\n }, onMoveNextRequest: () => {\n this.setState({ srcIndex: srcIndex + 1 });\n } })) : null)));\n }\n}\nexport default RichTextViewer;\n","export var RichTextToolbarType;\n(function (RichTextToolbarType) {\n RichTextToolbarType[\"normal\"] = \"normal\";\n RichTextToolbarType[\"none\"] = \"none\";\n})(RichTextToolbarType || (RichTextToolbarType = {}));\nexport var RichTextMode;\n(function (RichTextMode) {\n RichTextMode[\"editor\"] = \"editor\";\n RichTextMode[\"preview\"] = \"preview\";\n})(RichTextMode || (RichTextMode = {}));\n","import RichText from './RichText';\nexport default RichText;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport { RichTextToolbarType } from '../enum';\nconst Toolbar = (props) => {\n const { id, prefixCls } = props;\n return (React.createElement(\"div\", { id: id || 'toolbar', className: `${prefixCls}-toolbar` },\n React.createElement(\"button\", { type: \"button\", className: \"ql-bold\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-italic\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-underline\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-strike\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-blockquote\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-list\", value: \"ordered\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-list\", value: \"bullet\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-image\" }),\n React.createElement(\"button\", { type: \"button\", className: \"ql-link\" }),\n React.createElement(\"select\", { className: \"ql-color\" })));\n};\nlet RichTextToolbar = class RichTextToolbar extends Component {\n renderToolBar(props) {\n const { prefixCls } = this.props;\n return React.createElement(Toolbar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n render() {\n const { id, toolbar, dataSet } = this.props;\n const props = {\n id,\n dataSet,\n };\n if (typeof toolbar === 'function') {\n return toolbar(props);\n }\n switch (toolbar) {\n case RichTextToolbarType.normal:\n return this.renderToolBar(props);\n default:\n return null;\n }\n }\n};\nRichTextToolbar.displayName = 'RichTextToolbar';\nRichTextToolbar = __decorate([\n observer\n], RichTextToolbar);\nexport default RichTextToolbar;\n","const QuillDeltaToHtmlConverter = require('quill-delta-to-html');\nexport function text2Delta(description) {\n if (!description) {\n return undefined;\n }\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(description)) {\n return String(description);\n }\n let temp = description;\n try {\n temp = JSON.parse(description.replace(/\\\\n/g, '\\\\n')\n .replace(/\\\\'/g, '\\\\\\'')\n .replace(/\\\\\"/g, '\\\\\"')\n .replace(/\\\\&/g, '\\\\&')\n .replace(/\\\\r/g, '\\\\r')\n .replace(/\\\\t/g, '\\\\t')\n .replace(/\\\\b/g, '\\\\b')\n .replace(/\\\\f/g, '\\\\f'));\n }\n catch (error) {\n temp = description;\n }\n // return temp;\n return temp || '';\n}\n/**\n * 将quill特有的文本结构转为html\n * @param {*} description\n */\nexport function delta2Html(description) {\n const delta = text2Delta(description);\n const converter = new QuillDeltaToHtmlConverter(delta, {});\n const text = converter.convert();\n if (text.substring(0, 3) === '<p>') {\n return text.substring(3);\n }\n return text;\n}\n/**\n * 生成指定长度的随机字符串\n * @param len 字符串长度\n * @returns {string}\n */\nexport function randomString(len = 32) {\n let code = '';\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const maxPos = chars.length;\n for (let i = 0; i < len; i += 1) {\n code += chars.charAt(Math.floor(Math.random() * (maxPos + 1)));\n }\n return code;\n}\n/**\n * randomWord 产生任意长度随机字母数字组合\n * @param randomFlag 是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位\n * @param min\n * @param max\n * @returns {string}\n */\nexport function randomWord(randomFlag, min, max) {\n let str = '';\n let range = min;\n const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\n // 随机产生\n if (randomFlag) {\n range = Math.round(Math.random() * (max - min)) + min;\n }\n for (let i = 0; i < range; i += 1) {\n const pos = Math.round(Math.random() * (arr.length - 1));\n str += arr[pos];\n }\n return str;\n}\n","class ImageData {\n constructor(dataUrl, type) {\n // @ts-ignore\n this.dataUrl = dataUrl;\n // @ts-ignore\n this.type = type;\n }\n /* minify the image\n */\n minify(options = {}) {\n return new Promise((resolve, reject) => {\n // @ts-ignore\n const maxWidth = options.maxWidth || 800;\n // @ts-ignore\n const maxHeight = options.maxHeight || 800;\n // @ts-ignore\n const quality = options.quality || .8;\n // @ts-ignore\n if (!this.dataUrl) {\n return reject({ message: '[error] QuillImageDropAndPaste: Fail to minify the image, dataUrl should not be empty.' });\n }\n const image = new Image();\n image.onload = () => {\n const width = image.width;\n const height = image.height;\n if (width > height) {\n if (width > maxWidth) {\n image.height = height * maxWidth / width;\n image.width = maxWidth;\n }\n }\n else {\n if (height > maxHeight) {\n image.width = width * maxHeight / height;\n image.height = maxHeight;\n }\n }\n const canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var ctx = canvas.getContext('2d');\n // @ts-ignore\n ctx.drawImage(image, 0, 0, image.width, image.height);\n // @ts-ignore\n const canvasType = this.type || 'image/png';\n const canvasDataUrl = canvas.toDataURL(canvasType, quality);\n resolve(new ImageData(canvasDataUrl, canvasType));\n };\n // @ts-ignore\n image.src = this.dataUrl;\n });\n }\n /* convert blob to file\n */\n toFile(filename) {\n if (!window.File) {\n console.error('[error] QuillImageDropAndPaste: Your browser didnot support File API.');\n return null;\n }\n // @ts-ignore\n return new File([this.toBlob()], filename, { type: this.type });\n }\n /* convert dataURL to blob\n */\n toBlob() {\n // @ts-ignore\n const base64 = this.dataUrl.replace(/^[^,]+,/, '');\n const buff = this.binaryStringToArrayBuffer(atob(base64));\n // @ts-ignore\n return this.createBlob([buff], { type: this.type });\n }\n /* generate array buffer from binary string\n */\n binaryStringToArrayBuffer(binary) {\n const len = binary.length;\n const buffer = new ArrayBuffer(len);\n const arr = new Uint8Array(buffer);\n let i = -1;\n while (++i < len)\n arr[i] = binary.charCodeAt(i);\n return buffer;\n }\n /* create blob\n */\n createBlob(parts = [], properties = {}) {\n if (typeof properties === 'string')\n properties = { type: properties };\n try {\n return new Blob(parts, properties);\n }\n catch (e) {\n if (e.name !== 'TypeError')\n throw e;\n // @ts-ignore\n const Builder = typeof BlobBuilder !== 'undefined'\n // @ts-ignore\n ? BlobBuilder : typeof MSBlobBuilder !== 'undefined'\n // @ts-ignore\n ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined'\n // @ts-ignore\n ? MozBlobBuilder : WebKitBlobBuilder;\n const builder = new Builder();\n for (let i = 0; i < parts.length; i++)\n builder.append(parts[i]);\n // @ts-ignore\n return builder.getBlob(properties.type);\n }\n }\n}\nclass ImageDropAndPaste {\n constructor(quill, options = {}) {\n // @ts-ignore\n this.quill = quill;\n // @ts-ignore\n this.options = options;\n this.handleDrop = this.handleDrop.bind(this);\n this.handlePaste = this.handlePaste.bind(this);\n // @ts-ignore\n this.quill.root.addEventListener('drop', this.handleDrop, false);\n // @ts-ignore\n this.quill.root.addEventListener('paste', this.handlePaste, false);\n }\n /* handle image drop event\n */\n handleDrop(e) {\n e.preventDefault();\n if (e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files.length) {\n if (document.caretRangeFromPoint) {\n const selection = document.getSelection();\n const range = document.caretRangeFromPoint(e.clientX, e.clientY);\n if (selection && range) {\n selection.setBaseAndExtent(range.startContainer, range.startOffset, range.startContainer, range.startOffset);\n }\n }\n this.readFiles(e.dataTransfer.files, (dataUrl, type) => {\n type = type || 'image/png';\n // @ts-ignore\n if (typeof this.options.handler === 'function') {\n // @ts-ignore\n this.options.handler.call(this, dataUrl, type, new ImageData(dataUrl, type));\n }\n else {\n this.insert.call(this, dataUrl, type);\n }\n }, e);\n }\n }\n /* handle image paste event\n */\n handlePaste(e) {\n if (e.clipboardData && e.clipboardData.items && e.clipboardData.items.length) {\n this.readFiles(e.clipboardData.items, (dataUrl, type) => {\n type = type || 'image/png';\n // @ts-ignore\n if (typeof this.options.handler === 'function') {\n // @ts-ignore\n this.options.handler.call(this, dataUrl, type, new ImageData(dataUrl, type));\n }\n else {\n this.insert(dataUrl);\n }\n }, e);\n }\n }\n /* read the files\n */\n readFiles(files, callback, e) {\n [].forEach.call(files, file => {\n var type = file.type;\n if (!type.match(/^image\\/(gif|jpe?g|a?png|svg|webp|bmp)/i))\n return;\n e.preventDefault();\n const reader = new FileReader();\n reader.onload = (e) => {\n // @ts-ignore\n callback(e.target.result, type);\n };\n const blob = file.getAsFile ? file.getAsFile() : file;\n if (blob instanceof Blob)\n reader.readAsDataURL(blob);\n });\n }\n /* insert into the editor\n */\n insert(dataUrl) {\n // @ts-ignore\n const index = (this.quill.getSelection() || {}).index || this.quill.getLength();\n // @ts-ignore\n this.quill.insertEmbed(index, 'image', dataUrl, 'user');\n }\n}\n// @ts-ignore\nImageDropAndPaste.ImageData = ImageData;\nexport default ImageDropAndPaste;\n","import Ripple from 'choerodon-ui/lib/ripple';\nexport default Ripple;\n","import 'choerodon-ui/lib/ripple/style';\n","import { Row } from '../grid';\nexport default Row;\n","import '../../grid/style';\n","import { __decorate } from \"tslib\";\nimport React, { isValidElement } from 'react';\nimport { observer } from 'mobx-react';\nimport Icon from 'choerodon-ui/lib/icon';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { action, computed, isArrayLike, observable, runInAction, toJS } from 'mobx';\nimport isNumber from 'lodash/isNumber';\nimport isNil from 'lodash/isNil';\nimport noop from 'lodash/noop';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { isMoment } from 'moment';\nimport defaultTo from 'lodash/defaultTo';\nimport Row from 'choerodon-ui/lib/row';\nimport classNames from 'classnames';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport ScreeningOption from './ScreeningOption';\nimport normalizeOptions from '../option/normalizeOptions';\nimport autobind from '../_util/autobind';\nimport isEmpty from '../_util/isEmpty';\nimport { getDateFormatByField, toMultipleValue } from '../field/utils';\nimport { FieldType } from '../data-set/enum';\nimport { formatString } from '../formatter';\nimport isSame from '../_util/isSame';\nimport isSameLike from '../_util/isSameLike';\nimport ObserverButton from '../button/Button';\nimport { $l } from '../locale-context';\nconst disabledField = '__disabled';\nconst expandedButton = (iconExpanded) => {\n if (iconExpanded === true) {\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, `${$l('Screening', 'pack_up')}`),\n React.createElement(Icon, { type: \"expand_less\" })));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, `${$l('Screening', 'more')}`),\n React.createElement(Icon, { type: \"expand_more\" })));\n};\nexport function getItemKey(record, text, value) {\n return `item-${value || record.id}-${(isValidElement(text) ? text.key : text) || record.id}`;\n}\nfunction getSimpleValue(value, valueField) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, valueField);\n }\n return value;\n}\nlet Screening = class Screening extends DataSetComponent {\n constructor(props, context) {\n super(props, context);\n this.emptyValue = null;\n this.text = null;\n this.handleExpanedClick = () => {\n this.iconExpanded = !this.iconExpanded;\n };\n /**\n * 提交值,触发dataSet修改和提交方法。\n */\n this.handleConfirm = () => {\n const { onConfirm } = this.props;\n const { value, dataSet, name, observableProps: { dataIndex } } = this;\n if (value && name && dataSet) {\n (this.record || dataSet.create({}, dataIndex)).set(name, value);\n if (onConfirm) {\n onConfirm({\n value: this.value,\n fieldName: this.name,\n });\n }\n }\n };\n this.handleSelect = (info) => {\n const record = info.value;\n this.choose(record);\n };\n this.handleDeselect = (info) => {\n const record = info.value;\n this.unChoose(record);\n };\n this.handleClick = (_info) => {\n };\n this.getScreeningOption = () => {\n const { colProps, optionRenderer } = this.props;\n const { options, textField, valueField, multiple, } = this;\n if (!options) {\n return null;\n }\n const { data } = options;\n if (!isEmpty(data)) {\n return data.map((record) => {\n const value = record.get(valueField);\n const text = record.get(textField);\n const key = getItemKey(record, text, value);\n let isSelected = false;\n const valueRecord = this.processRecordToObject(record);\n const selectedValue = toJS(this.value);\n if (multiple) {\n if (selectedValue && selectedValue.length > 0) {\n isSelected = selectedValue.some(itemValue => {\n return isSame(itemValue, valueRecord);\n });\n }\n }\n else if (isSame(valueRecord, selectedValue)) {\n isSelected = true;\n }\n const textNode = (React.createElement(\"span\", { className: `${this.prefixCls}-option-text` }, text));\n const screeningOptionProps = {\n ...colProps,\n onSelect: this.handleSelect,\n onDeselect: this.handleDeselect,\n onClick: this.handleClick,\n value: record,\n optionkey: key,\n multiple,\n isSelected,\n prefixCls: this.prefixCls,\n children: textNode,\n };\n if (optionRenderer) {\n screeningOptionProps.optionRender = optionRenderer({ record, text, value });\n }\n return (React.createElement(ScreeningOption, Object.assign({ key: key }, screeningOptionProps)));\n });\n }\n return null;\n };\n this.handleMultiple = () => {\n this.screeningMultiple = !this.screeningMultiple;\n };\n this.handleClear = () => {\n this.setValue(this.emptyValue);\n this.value = this.emptyValue;\n this.text = this.emptyValue;\n };\n this.handleCancel = () => {\n this.handleClear();\n this.handleMultiple();\n };\n runInAction(() => {\n this.iconExpanded = false;\n this.screeningMultiple = false;\n if (this.name && this.dataSet && this.record) {\n const value = this.record.get(this.name);\n if (!isNil(value)) {\n this.value = value;\n }\n }\n });\n }\n componentDidMount() {\n super.componentDidMount();\n const { onRef } = this.props;\n if (onRef) {\n onRef(this);\n }\n }\n /**\n * return the record: dataIndex record, current, undefined\n */\n get record() {\n const { record, dataSet, dataIndex } = this.observableProps;\n if (record) {\n return record;\n }\n if (dataSet) {\n if (isNumber(dataIndex)) {\n return dataSet.get(dataIndex);\n }\n return dataSet.current;\n }\n return undefined;\n }\n get value() {\n return this.observableProps.value;\n }\n set value(value) {\n runInAction(() => {\n this.observableProps.value = value;\n });\n }\n // @computed\n get editable() {\n return !this.disabled && !this.isReadOnly();\n }\n /**\n * 判断是否展示更多按钮\n */\n get needExpandButton() {\n const { colProps } = this.props;\n if (colProps) {\n const { span } = colProps;\n if (isNumber(span) && span >= 1) {\n const colNumber = 24 / span;\n if (this.options && (this.options.length < colNumber)) {\n return false;\n }\n }\n }\n return true;\n }\n get name() {\n return this.observableProps.name;\n }\n get primitive() {\n const type = this.getProp('type');\n return this.observableProps.primitiveValue !== false && type !== FieldType.object;\n }\n /**\n * get field message: recordField,dsField,undefined\n */\n get field() {\n const { record, dataSet, name, observableProps } = this;\n const { displayName } = this.constructor;\n if (displayName !== 'Output' && !name) {\n warning(!observableProps.dataSet, `${displayName} with binding DataSet need property name.`);\n warning(!observableProps.record, `${displayName} with binding Record need property name.`);\n }\n if (name) {\n const recordField = record ? record.getField(name) : undefined;\n const dsField = dataSet ? dataSet.getField(name) : undefined;\n if (recordField) {\n return recordField;\n }\n return dsField;\n }\n return undefined;\n }\n getProp(propName) {\n const { field } = this;\n return defaultTo(field && field.get(propName), this.props[propName]);\n }\n handleChange(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n get options() {\n const { field, textField, valueField, multiple, observableProps: { children, options }, } = this;\n return (options ||\n (field && field.options) ||\n normalizeOptions({ textField, valueField, disabledField, multiple, children }));\n }\n get multiple() {\n return toJS(this.screeningMultiple) || !!this.getProp('multiple');\n }\n get textField() {\n return this.getProp('textField') || 'meaning';\n }\n get valueField() {\n return this.getProp('valueField') || 'value';\n }\n getFieldType() {\n const { field } = this;\n return (field && field.get('type')) || FieldType.string;\n }\n getDateFormat() {\n return getDateFormatByField(this.field, this.getFieldType());\n }\n choose(record) {\n if (record) {\n this.handleOptionSelect(record);\n }\n }\n unChoose(record) {\n if (record) {\n this.handleOptionUnSelect(record);\n }\n }\n handleOptionSelect(record) {\n this.prepareSetValue(this.processRecordToObject(record));\n }\n handleOptionUnSelect(record) {\n const { valueField } = this;\n const newValue = record.get(valueField);\n this.removeValue(newValue, -1);\n }\n getDataSetValue() {\n const { record, name } = this;\n if (record) {\n return record.get(name);\n }\n }\n getValue() {\n const { name, multiple } = this;\n if (multiple) {\n return this.value;\n }\n if (this.dataSet && name) {\n return this.getDataSetValue();\n }\n return this.value;\n }\n getValues() {\n return toMultipleValue(this.getValue(), false);\n }\n getOldValue() {\n return this.getValue();\n }\n addValue(...values) {\n if (this.multiple) {\n const oldValues = this.getValues();\n if (values.length) {\n this.setValue([...oldValues, ...values]);\n }\n else if (!oldValues.length) {\n this.setValue(this.emptyValue);\n }\n }\n else {\n this.setValue(values.pop());\n }\n }\n getValueKey(v) {\n if (isArrayLike(v)) {\n return v.join(',');\n }\n return v;\n }\n removeValues(values, index = 0) {\n let repeat;\n this.setValue(values.reduce((oldValues, value) => {\n repeat = 0;\n return oldValues.filter(v => {\n if (this.getValueKey(v) === this.getValueKey(value)) {\n if (index === -1 || repeat === index) {\n this.afterRemoveValue(value, repeat++);\n return false;\n }\n repeat++;\n }\n return true;\n });\n }, this.getValues()));\n }\n afterRemoveValue(_value, _repeat) {\n }\n removeValue(value, index = 0) {\n this.removeValues([value], index);\n }\n isReadOnly() {\n return (this.getProp('readOnly') ||\n (!this.props.onChange));\n }\n setValue(value) {\n const { onConfirm } = this.props;\n if (!this.isReadOnly()) {\n if (this.multiple\n ? isArrayLike(value) && !value.length\n : isNil(value) || value === '') {\n value = this.emptyValue;\n }\n const { name, dataSet, observableProps: { dataIndex }, } = this;\n const { onChange = noop } = this.props;\n const { formNode } = this.context;\n const old = this.getOldValue();\n if (dataSet && name && !this.multiple) {\n (this.record || dataSet.create({}, dataIndex)).set(name, value);\n }\n else {\n value = formatString(value, {});\n }\n // 转成实际的数据再进行判断\n if (!isSame(toJS(old), toJS(value))) {\n onChange(value, toJS(old), formNode);\n if (this.multiple && value) {\n this.text = value.map((item) => {\n return this.processValue(item);\n });\n }\n else if (value) {\n this.text = this.processValue(value);\n if (onConfirm) {\n onConfirm({\n value,\n fieldName: this.name,\n });\n }\n }\n }\n this.value = value;\n }\n }\n prepareSetValue(...value) {\n const values = value.filter(item => !isEmpty(item));\n this.addValue(...values);\n }\n findByValue(value) {\n const { valueField } = this;\n const autoType = this.getProp('type') === FieldType.auto;\n value = getSimpleValue(value, valueField);\n return this.options.find(record => autoType ? isSameLike(record.get(valueField), value) : isSame(record.get(valueField), value));\n }\n processObjectValue(value, textField) {\n if (!isNil(value)) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, textField);\n }\n const found = this.findByValue(value);\n if (found) {\n return found.get(textField);\n }\n }\n }\n processValueNormal(value) {\n if (!isNil(value)) {\n if (isMoment(value)) {\n return value.format(this.getDateFormat());\n }\n return value.toString();\n }\n return '';\n }\n processLookupValue(value) {\n const { field, textField, primitive } = this;\n if (primitive && field && field.lookup) {\n return this.processValueNormal(field.getText(value));\n }\n return this.processValueNormal(this.processObjectValue(value, textField));\n }\n processValue(value) {\n const text = this.processLookupValue(value);\n if (isEmpty(text)) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, this.valueField) || '';\n }\n return this.processValueNormal(value);\n }\n return text;\n }\n processRecordToObject(record) {\n const { primitive, valueField } = this;\n return primitive ? record.get(valueField) : record.toData();\n }\n getTextNode() {\n const text = this.isFocused && this.editable\n ? this.processValue(this.getValue())\n : this.processRenderer(this.getValue());\n return text;\n }\n getText(value) {\n return this.processValue(value);\n }\n processText(value) {\n return value;\n }\n processRenderer(value) {\n const { record, dataSet, props: { renderer, onConfirm }, } = this;\n const text = this.processText(this.getText(value));\n return renderer\n ? renderer({\n options: this.options,\n name: this.name,\n dataSet,\n onConfirm,\n record,\n })\n : text;\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n name: props.name,\n record: 'record' in props ? props.record : context.record,\n dataSet: 'dataSet' in props ? props.dataSet : context.dataSet,\n dataIndex: defaultTo(props.dataIndex, context.dataIndex),\n value: this.observableProps || 'value' in props ? props.value : props.defaultValue,\n primitiveValue: props.primitiveValue,\n };\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'record',\n 'defaultValue',\n 'dataIndex',\n 'onEnterDown',\n 'onClear',\n 'readOnly',\n 'renderer',\n 'pristine',\n 'primitiveValue',\n 'trim',\n 'onRef',\n 'onConfirm',\n 'colProps',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onChange = this.disabled ? noop : this.handleChange;\n return otherProps;\n }\n getLabel() {\n return this.getProp('label');\n }\n render() {\n const { iconExpanded, prefixCls, multiple } = this;\n const { renderer, onConfirm } = this.props;\n const label = this.getLabel();\n const multipleButton = (React.createElement(\"div\", { className: `${prefixCls}-multiple`, onClick: this.handleMultiple },\n React.createElement(Icon, { type: \"add\" }),\n React.createElement(\"span\", null, `${$l('Screening', 'multi_select')}`)));\n const expandButtonContainer = this.needExpandButton && (React.createElement(\"div\", { className: `${prefixCls}-expanded`, onClick: this.handleExpanedClick }, expandedButton(iconExpanded)));\n const labelNode = (React.createElement(\"span\", { className: `${prefixCls}-label` }, `${label}:`));\n const allClassName = classNames({\n [`${prefixCls}-multiple`]: multiple,\n [`${prefixCls}-more`]: iconExpanded,\n }, this.getMergedClassNames());\n return (React.createElement(\"div\", Object.assign({}, this.getMergedProps(), { className: allClassName }), renderer ? renderer({\n options: this.options,\n name: this.name,\n dataSet: this.dataSet,\n onConfirm,\n record: this.record,\n }) : (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-title` }, labelNode),\n React.createElement(\"div\", { className: `${prefixCls}-content` },\n React.createElement(\"div\", { className: `${prefixCls}-scroll` },\n React.createElement(Row, null, this.getScreeningOption()))),\n !this.multiple && (React.createElement(\"div\", { className: `${prefixCls}-operation` },\n expandButtonContainer,\n multipleButton)),\n this.multiple && (React.createElement(\"div\", { className: `${prefixCls}-footer` },\n React.createElement(ObserverButton, { onClick: this.handleConfirm }, `${$l('Screening', 'confirm')}`),\n React.createElement(ObserverButton, { onClick: this.handleCancel }, `${$l('Screening', 'cancel')}`)))))));\n }\n};\nScreening.displayName = 'ScreeningItem';\nScreening.defaultProps = {\n suffixCls: 'screening-item',\n multiple: false,\n colProps: {\n span: 4,\n },\n};\n__decorate([\n observable\n], Screening.prototype, \"iconExpanded\", void 0);\n__decorate([\n observable\n], Screening.prototype, \"observableProps\", void 0);\n__decorate([\n observable\n], Screening.prototype, \"screeningMultiple\", void 0);\n__decorate([\n computed\n], Screening.prototype, \"record\", null);\n__decorate([\n computed\n], Screening.prototype, \"value\", null);\n__decorate([\n computed\n], Screening.prototype, \"needExpandButton\", null);\n__decorate([\n computed\n], Screening.prototype, \"name\", null);\n__decorate([\n computed\n], Screening.prototype, \"primitive\", null);\n__decorate([\n computed\n], Screening.prototype, \"field\", null);\n__decorate([\n autobind\n], Screening.prototype, \"handleChange\", null);\n__decorate([\n computed\n], Screening.prototype, \"options\", null);\n__decorate([\n computed\n], Screening.prototype, \"multiple\", null);\n__decorate([\n computed\n], Screening.prototype, \"textField\", null);\n__decorate([\n computed\n], Screening.prototype, \"valueField\", null);\n__decorate([\n action\n], Screening.prototype, \"handleExpanedClick\", void 0);\n__decorate([\n action\n], Screening.prototype, \"setValue\", null);\n__decorate([\n action\n], Screening.prototype, \"prepareSetValue\", null);\n__decorate([\n action\n], Screening.prototype, \"handleMultiple\", void 0);\n__decorate([\n action\n], Screening.prototype, \"handleClear\", void 0);\nScreening = __decorate([\n observer\n], Screening);\nexport default Screening;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Col from 'choerodon-ui/lib/col';\nimport noop from 'lodash/noop';\nimport CheckBox from 'choerodon-ui/lib/checkbox';\nexport default class ScreeningOption extends Component {\n constructor() {\n super(...arguments);\n this.onMouseLeave = () => {\n const { optionkey, value, onMouseLeave } = this.props;\n const info = {\n key: optionkey,\n value,\n };\n if (onMouseLeave) {\n onMouseLeave(info);\n }\n };\n this.onMouseEnter = () => {\n const { optionkey, value, onMouseEnter } = this.props;\n const info = {\n key: optionkey,\n value,\n };\n if (onMouseEnter) {\n onMouseEnter(info);\n }\n };\n this.onClick = () => {\n const { optionkey, multiple, onClick, onSelect, onDeselect, value, isSelected } = this.props;\n const info = {\n key: optionkey,\n value,\n };\n if (onSelect && onClick) {\n onClick(info);\n if (multiple) {\n if (isSelected && onDeselect) {\n onDeselect(info);\n }\n else {\n onSelect(info);\n }\n }\n else {\n onSelect(info);\n }\n }\n ;\n };\n }\n render() {\n const { prefixCls, disabled, children, optionkey, active, style, multiple, onMouseDown, isSelected, span, order, offset, push, pull, xs, sm, md, lg, xl, xxl, optionRender, } = this.props;\n const ScreeningOptionPrefix = `${prefixCls}-option`;\n const className = classNames(ScreeningOptionPrefix, {\n [`${ScreeningOptionPrefix}-disabled`]: disabled,\n [`${ScreeningOptionPrefix}-selected`]: isSelected,\n [`${ScreeningOptionPrefix}-active`]: active,\n });\n const attrs = {\n optionkey,\n className,\n span,\n order,\n offset,\n push,\n pull,\n xs,\n sm,\n md,\n lg,\n xl,\n xxl,\n };\n let mouseEvent = {};\n if (!disabled) {\n mouseEvent = {\n onClick: this.onClick,\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter,\n onMouseDown,\n };\n }\n const checkbox = multiple ? React.createElement(CheckBox, { checked: isSelected }) : null;\n return (React.createElement(Col, Object.assign({}, attrs, { style: style }),\n React.createElement(\"div\", Object.assign({ className: `${ScreeningOptionPrefix}-content` }, mouseEvent), optionRender || (React.createElement(React.Fragment, null,\n checkbox,\n children)))));\n }\n ;\n}\nScreeningOption.defaultProps = {\n onSelect: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n onMouseDown: noop,\n isSelected: false,\n};\n","import { __decorate } from \"tslib\";\nimport React, { Children, cloneElement } from 'react';\nimport { observer } from 'mobx-react';\nimport { observable, computed, action, runInAction, toJS } from 'mobx';\nimport Tag from 'choerodon-ui/lib/tag';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport omit from 'lodash/omit';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport isArray from 'lodash/isArray';\nimport isSame from '../_util/isSame';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport ScreeningItem from './ScreeningItem';\nimport { $l } from '../locale-context';\nlet Screening = class Screening extends DataSetComponent {\n constructor(props, context) {\n super(props, context);\n this.emptyValue = null;\n // 存下所有子集的ref便于直接调用其中内部方法\n this.child = {};\n this.onRef = (ref, name) => {\n this.child[name] = ref;\n };\n this.handleChange = (value, oldValue) => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(value, oldValue);\n }\n };\n this.handleConfirm = ({ value, fieldName }) => {\n const oldValue = omit(toJS(this.mergeValue), '__dirty');\n if (fieldName) {\n this.mergeValue = {\n ...this.mergeValue, [fieldName]: value,\n };\n }\n const valueNow = omit(toJS(this.mergeValue), '__dirty');\n if (!isSame(oldValue, valueNow)) {\n this.handleChange(valueNow, oldValue);\n }\n };\n this.handleCloseItem = (filedName) => {\n const { dataSet } = this.props;\n if (dataSet && filedName) {\n (this.record || dataSet.create({})).set(filedName, this.emptyValue);\n }\n this.mergeValue[filedName] = this.emptyValue;\n if (this.child && this.child[filedName]) {\n this.child[filedName].handleClear();\n }\n };\n this.findByValue = (value, name) => {\n if (value && this.child && this.child[name]) {\n return this.child[name].processValue(value);\n }\n return value;\n };\n this.renderTag = (mergeValue) => {\n const { dataSet } = this;\n const prefixCls = this.prefixCls;\n const { tagRender } = this.props;\n const tagsProps = [];\n if (dataSet) {\n Object.keys(mergeValue).forEach(key => {\n const value = mergeValue[key];\n const field = dataSet.getField(key);\n let label = key;\n let text = value;\n if (field) {\n label = field.get('label');\n if (isArray(value)) {\n text = value.map(v => {\n let itemText = field.getText(v);\n if (isNil(itemText)) {\n itemText = this.findByValue(v, key);\n }\n return itemText;\n });\n }\n else {\n text = field.getText(value);\n if (isNil(text)) {\n text = this.findByValue(value, key);\n }\n }\n }\n if (text && label) {\n const tagProps = {\n text,\n label,\n handleClose: (filedName) => { this.handleCloseItem(filedName); },\n key,\n };\n tagsProps.push(tagProps);\n }\n });\n const labelTitle = `${$l('Screening', 'selected')}:`;\n const labelNode = (React.createElement(\"span\", { className: `${prefixCls}-choosed-label` }, labelTitle));\n if (tagsProps.length > 0) {\n return tagRender ? tagRender({\n labelTitle,\n tagsProps,\n }) : (React.createElement(\"div\", { className: `${prefixCls}-choosed` },\n React.createElement(\"div\", { className: `${prefixCls}-choosed-title` }, labelNode),\n React.createElement(\"div\", { className: `${prefixCls}-choosed-content` }, tagsProps.map(tagItemProps => (React.createElement(Tag, { onClose: (e) => {\n e.preventDefault();\n tagItemProps.handleClose(tagItemProps.key);\n }, key: tagItemProps.key, closable: true }, `${tagItemProps.label}:${tagItemProps.text}`))))));\n }\n }\n return null;\n };\n const dataSet = this.dataSet;\n const record = this.record;\n runInAction(() => {\n if (dataSet && record) {\n this.mergeValue = record.toData();\n }\n });\n }\n /**\n * return the record: dataIndex record, current, undefined\n */\n get record() {\n const { record, dataSet, dataIndex } = this.observableProps;\n if (record) {\n return record;\n }\n if (dataSet) {\n if (isNumber(dataIndex)) {\n return dataSet.get(dataIndex);\n }\n return dataSet.current;\n }\n return undefined;\n }\n get dataSet() {\n const { record } = this;\n if (record) {\n return record.dataSet;\n }\n return this.observableProps.dataSet;\n }\n render() {\n const dataSet = this.dataSet;\n const { children } = this.props;\n let mergeValue = toJS(this.mergeValue);\n mergeValue = omit(mergeValue, ['__dirty']);\n const filteredChildren = Children.toArray(children).filter(c => !!c);\n return (React.createElement(\"div\", { className: `${this.prefixCls}` },\n this.renderTag(mergeValue),\n Children.map(filteredChildren, (child, _index) => {\n const name = child.props.name;\n if (this.mergeValue && name && isNil(this.mergeValue[name])) {\n const screenProps = {\n onConfirm: this.handleConfirm,\n onChange: this.handleChange,\n dataSet,\n onRef: (ref) => { this.onRef(ref, name); },\n };\n if (!isString(name)) {\n // @ts-ignore\n delete screenProps.onRef;\n warning(false, `ScreeningItem need binding DataSet with property name.`);\n }\n return cloneElement(child, screenProps);\n }\n })));\n }\n};\nScreening.displayName = 'Screening';\nScreening.ScreeningItem = ScreeningItem;\nScreening.defaultProps = {\n suffixCls: 'screening',\n};\n__decorate([\n observable\n], Screening.prototype, \"mergeValue\", void 0);\n__decorate([\n computed\n], Screening.prototype, \"record\", null);\n__decorate([\n computed\n], Screening.prototype, \"dataSet\", null);\n__decorate([\n action\n], Screening.prototype, \"handleConfirm\", void 0);\n__decorate([\n action\n], Screening.prototype, \"handleCloseItem\", void 0);\nScreening = __decorate([\n observer\n], Screening);\nexport default Screening;\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed, isArrayLike } from 'mobx';\nimport classNames from 'classnames';\nimport { Select } from '../select/Select';\nimport ObserverRadio from '../radio/Radio';\nimport ObserverCheckBox from '../check-box/CheckBox';\nimport autobind from '../_util/autobind';\nimport Option from '../option/Option';\nimport OptGroup from '../option/OptGroup';\nimport { $l } from '../locale-context';\nimport { LabelLayout } from '../form/enum';\nimport TextField from '../text-field';\nimport Icon from '../icon';\nimport Button from '../button/Button';\nimport { FuncType } from '../button/enum';\nimport { OTHER_OPTION_PROPS } from '../option/normalizeOptions';\nconst GroupIdGen = (function* (id) {\n while (true) {\n yield `__group-${id++}__`;\n }\n})(1);\nlet SelectBox = class SelectBox extends Select {\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('SelectBox', label ? 'value_missing' : 'value_missing_no_label', {\n label,\n }),\n };\n }\n get name() {\n return this.observableProps.name || GroupIdGen.next().value;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'vertical',\n ]);\n }\n getClassName() {\n const { prefixCls, props: { vertical }, } = this;\n return super.getClassName({\n [`${prefixCls}-vertical`]: vertical,\n });\n }\n isEmpty() {\n return false;\n }\n renderSearcher() {\n if (this.searchable) {\n const { placeholder } = this.props;\n return (React.createElement(TextField, { prefix: React.createElement(Icon, { type: \"search\" }), placeholder: placeholder, value: this.text, onInput: this.handleInput, labelLayout: this.labelLayout }));\n }\n }\n renderWrapper() {\n const { name, options, filteredOptions, textField, valueField, readOnly, disabled } = this;\n const { autoFocus, mode, onOption, optionRenderer, optionsFilter } = this.props;\n const highlight = this.getProp('highlight');\n const items = filteredOptions.reduce((arr, record, index, data) => {\n if (!optionsFilter || optionsFilter(record, index, data)) {\n const optionProps = onOption({ dataSet: options, record });\n const text = record.get(textField);\n const value = record.get(valueField);\n const children = optionRenderer\n ? optionRenderer({ dataSet: options, record, text, value })\n : text;\n const itemProps = {\n ...record.get(OTHER_OPTION_PROPS),\n key: index,\n dataSet: null,\n record: null,\n value,\n checked: this.isChecked(this.getValue(), value),\n name,\n onChange: this.handleItemChange,\n children,\n autoFocus: autoFocus && index === 0,\n readOnly,\n disabled,\n mode,\n noValidate: true,\n labelLayout: LabelLayout.none,\n highlight,\n };\n arr.push(this.renderItem(optionProps ? {\n ...optionProps,\n ...itemProps,\n className: classNames(optionProps.className, itemProps.className),\n style: {\n ...optionProps.style,\n ...itemProps.style,\n },\n disabled: itemProps.disabled || optionProps.disabled,\n } : itemProps));\n }\n return arr;\n }, []);\n const className = this.getClassName();\n const Element = this.context.formNode ? 'div' : 'form';\n return (React.createElement(\"span\", Object.assign({ key: \"wrapper\" }, this.getWrapperProps()),\n this.renderSearcher(),\n this.renderSelectAll(),\n React.createElement(Element, { className: className, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, items),\n this.renderFloatLabel(),\n options.paging && options.currentPage < options.totalPage && (React.createElement(Button, { funcType: FuncType.flat, icon: \"more_horiz\", onClick: this.handleQueryMore }))));\n }\n handleQueryMore() {\n const { options } = this;\n options.queryMore(options.currentPage + 1);\n }\n handleInput(e) {\n const { value } = e.target;\n this.setText(value);\n }\n handleItemChange(value, oldValue) {\n if (this.multiple) {\n const values = this.getValues();\n if (!value) {\n values.splice(values.indexOf(oldValue), 1);\n }\n else {\n values.push(value);\n }\n this.setValue(values);\n }\n else {\n this.setValue(value);\n }\n }\n isChecked(value, checkedValue) {\n if (isArrayLike(value)) {\n return value.indexOf(checkedValue) !== -1;\n }\n return value === checkedValue;\n }\n renderItem(props) {\n if (this.multiple) {\n return React.createElement(ObserverCheckBox, Object.assign({}, props));\n }\n return React.createElement(ObserverRadio, Object.assign({}, props));\n }\n};\nSelectBox.displayName = 'SelectBox';\nSelectBox.propTypes = {\n /**\n * 是否垂直显示\n */\n vertical: PropTypes.bool,\n ...Select.propTypes,\n};\nSelectBox.defaultProps = {\n ...Select.defaultProps,\n suffixCls: 'select-box',\n vertical: false,\n selectAllButton: false,\n checkValueOnOptionsChange: false,\n};\nSelectBox.Option = Option;\nSelectBox.OptGroup = OptGroup;\n// eslint-disable-next-line camelcase\nSelectBox.__IS_IN_CELL_EDITOR = true;\n__decorate([\n computed\n], SelectBox.prototype, \"name\", null);\n__decorate([\n autobind\n], SelectBox.prototype, \"handleQueryMore\", null);\n__decorate([\n autobind\n], SelectBox.prototype, \"handleInput\", null);\n__decorate([\n autobind\n], SelectBox.prototype, \"handleItemChange\", null);\nSelectBox = __decorate([\n observer\n], SelectBox);\nexport default SelectBox;\n","import SelectBox from './SelectBox';\nexport default SelectBox;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../radio/style';\nimport '../../check-box/style';\nimport '../../button/style';\n","import { __decorate } from \"tslib\";\nimport React, { isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport noop from 'lodash/noop';\nimport defer from 'lodash/defer';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { observer } from 'mobx-react';\nimport { action, computed, isArrayLike, isObservableObject, observable, reaction, runInAction, toJS } from 'mobx';\nimport classNames from 'classnames';\nimport Menu, { Item, ItemGroup } from 'choerodon-ui/lib/rc-components/menu';\nimport Tag from 'choerodon-ui/lib/tag';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport TriggerField from '../trigger-field/TriggerField';\nimport autobind from '../_util/autobind';\nimport Option from '../option/Option';\nimport OptGroup from '../option/OptGroup';\nimport { DataSetStatus, FieldType } from '../data-set/enum';\nimport DataSet from '../data-set/DataSet';\nimport Spin from '../spin';\nimport { preventDefault, stopEvent } from '../_util/EventManager';\nimport normalizeOptions, { OTHER_OPTION_PROPS } from '../option/normalizeOptions';\nimport { $l } from '../locale-context';\nimport * as ObjectChainValue from '../_util/ObjectChainValue';\nimport isEmpty from '../_util/isEmpty';\nimport isSame from '../_util/isSame';\nimport isSameLike from '../_util/isSameLike';\nimport isIE from '../_util/isIE';\nimport { getIf } from '../data-set/utils';\nimport ObserverTextField from '../text-field/TextField';\nimport Icon from '../icon';\nimport { ValueChangeAction } from '../text-field/enum';\nimport { LabelLayout } from '../form/enum';\nimport { isFieldValueEmpty } from '../field/utils';\nfunction updateActiveKey(menu, activeKey) {\n const store = menu.getStore();\n const menuId = menu.getEventKey();\n const state = store.getState();\n store.setState({\n activeKey: {\n ...state.activeKey,\n [menuId]: activeKey,\n },\n });\n}\nfunction defaultSearchMatcher({ record, text, textField }) {\n if (record.get(textField) && isString(record.get(textField))) {\n return record.get(textField).indexOf(text) !== -1;\n }\n}\nexport function isSearchTextEmpty(text) {\n return isArrayLike(text) ? !text.length : !text;\n}\nexport const DISABLED_FIELD = '__disabled';\nexport const MORE_KEY = '__more__';\nfunction defaultOnOption({ record }) {\n return {\n disabled: record.get(DISABLED_FIELD),\n };\n}\nexport function getItemKey(record, text, value) {\n return `item-${value || record.id}-${(isValidElement(text) ? text.key : text) || record.id}`;\n}\nfunction getSimpleValue(value, valueField) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, valueField);\n }\n return value;\n}\nexport class Select extends TriggerField {\n constructor() {\n super(...arguments);\n this.doSearch = debounce((value) => {\n if (isString(this.searchMatcher)) {\n this.searchRemote(value);\n }\n this.handleSearch(value);\n }, 500);\n }\n get searchText() {\n if (this.isSearchFieldInPopup()) {\n return this.$searchText;\n }\n return this.text;\n }\n set searchText(searchText) {\n this.$searchText = searchText;\n }\n get searchMatcher() {\n const { searchMatcher = defaultSearchMatcher } = this.observableProps;\n return searchMatcher;\n }\n get paramMatcher() {\n const { paramMatcher } = this.observableProps;\n return paramMatcher;\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('Select', label ? 'value_missing' : 'value_missing_no_label', { label }),\n };\n }\n get textField() {\n return this.getProp('textField') || 'meaning';\n }\n get valueField() {\n return this.getProp('valueField') || 'value';\n }\n get currentComboOption() {\n const { comboOptions } = this;\n return comboOptions && comboOptions.filter(record => !this.isSelected(record))[0];\n }\n get filteredOptions() {\n const { optionsWithCombo, observableProps: { optionsFilter } } = this;\n return this.searchData(optionsFilter ? optionsWithCombo.filter(optionsFilter) : optionsWithCombo);\n }\n get optionsWithCombo() {\n const { comboOptions } = this;\n return comboOptions ? [...comboOptions.data, ...this.cascadeOptions] : this.cascadeOptions;\n }\n get cascadeOptions() {\n const { record, field, options, searchMatcher } = this;\n const { data } = options;\n if (field && !isString(searchMatcher)) {\n const cascadeMap = field.get('cascadeMap');\n if (cascadeMap) {\n if (record) {\n const cascades = Object.keys(cascadeMap);\n return data.filter(item => cascades.every(cascade => isSameLike(record.get(cascadeMap[cascade]), item.get(cascade))));\n }\n return [];\n }\n }\n return data;\n }\n get searchable() {\n const { searchable = getConfig('selectSearchable') } = this.observableProps;\n return !!searchable;\n }\n get multiple() {\n return !!this.getProp('multiple');\n }\n get menuMultiple() {\n return this.multiple;\n }\n get options() {\n const { field, textField, valueField, multiple, observableProps: { children, options }, } = this;\n return (options ||\n (field && field.options) ||\n normalizeOptions({ textField, valueField, disabledField: DISABLED_FIELD, multiple, children }));\n }\n get primitive() {\n const type = this.getProp('type');\n return this.observableProps.primitiveValue !== false && type !== FieldType.object;\n }\n saveMenu(node) {\n this.menu = node;\n }\n getSearchFieldProps() {\n const { searchFieldProps = {} } = this.props;\n return searchFieldProps;\n }\n isSearchFieldInPopup() {\n const { searchFieldInPopup } = this.props;\n return searchFieldInPopup;\n }\n isEmpty() {\n return (this.isEditableLike() || isEmpty(this.text)) && isFieldValueEmpty(this.getValue(), this.range, this.multiple, this.valueField, this.textField) && this.isRenderEmpty();\n }\n isEditable() {\n return super.isEditable() && ((this.searchable && !this.isSearchFieldInPopup()) || !!this.observableProps.combo);\n }\n checkValue() {\n this.checkValueReaction = reaction(() => this.cascadeOptions, () => this.processSelectedData());\n }\n checkCombo() {\n this.checkComboReaction = reaction(() => this.getValue(), value => this.generateComboOption(value));\n }\n clearCheckValue() {\n if (this.checkValueReaction) {\n this.checkValueReaction();\n delete this.checkValueReaction;\n }\n }\n clearCheckCombo() {\n if (this.checkComboReaction) {\n this.checkComboReaction();\n delete this.checkComboReaction;\n }\n }\n clearReaction() {\n this.clearCheckValue();\n this.clearCheckCombo();\n }\n componentWillMount() {\n const { checkValueOnOptionsChange, combo } = this.props;\n if (checkValueOnOptionsChange) {\n this.checkValue();\n }\n if (combo) {\n this.checkCombo();\n this.generateComboOption(this.getValue());\n }\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n this.doSearch.cancel();\n this.clearReaction();\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n const { checkValueOnOptionsChange, combo } = this.props;\n if (checkValueOnOptionsChange && !nextProps.checkValueOnOptionsChange) {\n this.clearCheckValue();\n }\n if (!checkValueOnOptionsChange && nextProps.checkValueOnOptionsChange) {\n this.checkValue();\n }\n if (combo && !nextProps.combo) {\n this.removeComboOptions();\n this.clearCheckCombo();\n }\n if (!combo && nextProps.combo) {\n this.checkCombo();\n if ('value' in nextProps) {\n this.generateComboOption(nextProps.value);\n }\n }\n }\n componentDidUpdate() {\n this.forcePopupAlign();\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'searchable',\n 'searchMatcher',\n 'searchFieldInPopup',\n 'searchFieldProps',\n 'paramMatcher',\n 'combo',\n 'commonItem',\n 'maxCommonTagPlaceholder',\n 'maxCommonTagCount',\n 'maxCommonTagTextLength',\n 'multiple',\n 'value',\n 'name',\n 'options',\n 'optionsFilter',\n 'dropdownMatchSelectWidth',\n 'dropdownMenuStyle',\n 'checkValueOnOptionsChange',\n 'primitiveValue',\n 'optionRenderer',\n 'notFoundContent',\n 'pagingOptionContent',\n 'onOption',\n 'noCache',\n 'reverse',\n 'selectAllButton',\n 'optionTooltip',\n ]);\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n children: props.children,\n options: props.options,\n combo: props.combo,\n commonItem: props.commonItem,\n primitiveValue: props.primitiveValue,\n searchMatcher: props.searchMatcher,\n paramMatcher: props.paramMatcher,\n searchable: props.searchable,\n dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,\n selectReverse: props.reverse,\n optionsFilter: props.optionsFilter,\n };\n }\n getMenuPrefixCls() {\n return `${this.prefixCls}-dropdown-menu`;\n }\n renderMultipleHolder() {\n const { name, multiple } = this;\n if (multiple) {\n return super.renderMultipleHolder();\n }\n return (React.createElement(\"input\", { key: \"value\", type: \"hidden\", value: this.toValueString(this.getValue()) || '', name: name, onChange: noop }));\n }\n getNotFoundContent() {\n const { notFoundContent } = this.props;\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n return getConfig('renderEmpty')('Select');\n }\n getPagingOptionContent() {\n const { pagingOptionContent } = this.props;\n if (pagingOptionContent !== undefined) {\n return pagingOptionContent;\n }\n return getConfig('selectPagingOptionContent');\n }\n getOtherNextNode() {\n const { commonItem } = this.observableProps;\n if (commonItem) {\n const { options } = this;\n if (!options) {\n return undefined;\n }\n const { textField, valueField, props: { maxCommonTagCount, maxCommonTagPlaceholder, maxCommonTagTextLength }, } = this;\n const values = this.getValues();\n const valueLength = commonItem.length;\n const tags = commonItem.slice(0, maxCommonTagCount).map((item) => {\n let text = item;\n let textRecord;\n options.map((record) => {\n if (record.get(valueField) === item) {\n text = maxCommonTagTextLength &&\n isString(record.get(textField)) &&\n record.get(textField).length > maxCommonTagTextLength\n ? `${record.get(textField).slice(0, maxCommonTagTextLength)}...`\n : record.get(textField);\n textRecord = record;\n }\n return null;\n });\n return (React.createElement(Tag, { key: item, className: values.includes(item) ? `${this.prefixCls}-common-item ${this.prefixCls}-common-item-selected` : `${this.prefixCls}-common-item`, \n // @ts-ignore\n onClick: () => this.handleCommonItemClick(textRecord) }, text));\n });\n if (valueLength > maxCommonTagCount) {\n let content = `+ ${valueLength - Number(maxCommonTagCount)} ...`;\n if (maxCommonTagPlaceholder) {\n const omittedValues = commonItem.slice(maxCommonTagCount, valueLength);\n content =\n typeof maxCommonTagPlaceholder === 'function'\n ? maxCommonTagPlaceholder(omittedValues)\n : maxCommonTagPlaceholder;\n }\n tags.push(React.createElement(Tag, { className: `${this.prefixCls}-common-item`, key: \"maxCommonTagPlaceholder\" }, content));\n }\n return (React.createElement(\"div\", { className: `${this.prefixCls}-common-item-wrapper` },\n React.createElement(\"span\", { className: `${this.prefixCls}-common-item-label` }, $l('Select', 'common_item')),\n tags));\n }\n }\n getMenu(menuProps = {}) {\n const { options, } = this;\n if (!options) {\n return null;\n }\n const { disabled: menuDisabled, textField, valueField, props: { dropdownMenuStyle, optionRenderer, onOption, optionTooltip = getTooltip('select-option') }, } = this;\n const groups = options.getGroups();\n const optGroups = [];\n const selectedKeys = [];\n /**\n * fixed when ie the scroll width would cover the item width\n */\n const IeMenuStyle = !this.dropdownMatchSelectWidth && isIE() ? { padding: '.08rem' } : {};\n const IeItemStyle = !this.dropdownMatchSelectWidth && isIE() ? { overflow: 'visible' } : {};\n this.filteredOptions.forEach(record => {\n let previousGroup;\n groups.every(field => {\n const label = record.get(field);\n if (label !== undefined) {\n if (!previousGroup) {\n previousGroup = optGroups.find(item => item.props.title === label);\n if (!previousGroup) {\n previousGroup = (React.createElement(ItemGroup, { key: `group-${label}`, title: label }, []));\n optGroups.push(previousGroup);\n }\n }\n else {\n const { children } = previousGroup.props;\n previousGroup = children.find(item => item.props.title === label);\n if (!previousGroup) {\n previousGroup = (React.createElement(ItemGroup, { key: `group-${label}`, title: label }, []));\n children.push(previousGroup);\n }\n }\n return true;\n }\n return false;\n });\n const value = record.get(valueField);\n const text = record.get(textField);\n const optionProps = onOption({ dataSet: options, record });\n const key = getItemKey(record, text, value);\n if (!('selectedKeys' in menuProps) && this.isSelected(record)) {\n selectedKeys.push(key);\n }\n const itemContent = optionRenderer\n ? optionRenderer({ dataSet: options, record, text, value })\n : text;\n const recordValues = record.get(OTHER_OPTION_PROPS) || {};\n const itemProps = {\n ...recordValues,\n style: {\n ...IeItemStyle,\n ...recordValues.style,\n },\n key,\n value: record,\n disabled: menuDisabled,\n tooltip: optionTooltip,\n tooltipTheme: getTooltipTheme('select-option'),\n };\n const mergedProps = optionProps ? {\n ...optionProps,\n ...itemProps,\n className: classNames(optionProps.className, itemProps.className),\n style: {\n ...optionProps.style,\n ...itemProps.style,\n },\n disabled: itemProps.disabled || optionProps.disabled,\n } : itemProps;\n const option = (React.createElement(Item, Object.assign({}, mergedProps), toJS(itemContent)));\n if (previousGroup) {\n const { children } = previousGroup.props;\n children.push(option);\n }\n else {\n optGroups.push(option);\n }\n });\n if (!optGroups.length) {\n optGroups.push(React.createElement(Item, { key: \"no_data\", disabled: true, checkable: false }, this.loading ? ' ' : this.getNotFoundContent()));\n }\n const menuPrefix = this.getMenuPrefixCls();\n return (React.createElement(Menu, Object.assign({ ref: this.saveMenu, disabled: menuDisabled, defaultActiveFirst: true, multiple: this.menuMultiple, selectedKeys: selectedKeys, prefixCls: menuPrefix, onClick: this.handleMenuClick, onMouseDown: preventDefault, style: { ...IeMenuStyle, ...dropdownMenuStyle }, focusable: false }, menuProps),\n optGroups,\n options.paging && options.currentPage < options.totalPage && (React.createElement(Item, { key: MORE_KEY, checkable: false, className: `${menuPrefix}-item-more` }, this.getPagingOptionContent()))));\n }\n /**\n * 增加lov popupContent 回调参数 用于控制对应交互\n */\n getPopupProps() {\n const { options, textField, field, record, valueField } = this;\n return {\n ...super.getPopupProps(),\n dataSet: options,\n textField,\n valueField,\n field,\n record,\n content: this.getPopupContent(),\n };\n }\n getPopupClassName(defaultClassName) {\n const { multiple, prefixCls } = this;\n return classNames(defaultClassName, {\n [`${prefixCls}-popup-multiple`]: multiple,\n [`${prefixCls}-popup-single`]: !multiple,\n });\n }\n get dropdownMatchSelectWidth() {\n const { dropdownMatchSelectWidth = getConfig('dropdownMatchSelectWidth') } = this.observableProps;\n return dropdownMatchSelectWidth;\n }\n get selectReverse() {\n const { selectReverse = getConfig('selectReverse') } = this.observableProps;\n return selectReverse;\n }\n get loading() {\n const { field, options } = this;\n return options.status === DataSetStatus.loading || !!(field && field.pending);\n }\n handlePopupSearch(value) {\n this.searchText = value;\n this.doSearch(value);\n }\n renderSearchField() {\n const { searchText, prefixCls } = this;\n const searchFieldProps = this.getSearchFieldProps();\n const { multiple, className } = searchFieldProps;\n return (React.createElement(ObserverTextField, Object.assign({ value: searchText, onChange: this.handlePopupSearch, prefix: React.createElement(Icon, { type: \"search\" }), valueChangeAction: multiple ? ValueChangeAction.blur : ValueChangeAction.input, labelLayout: LabelLayout.none, border: false }, searchFieldProps, { className: classNames(`${prefixCls}-search-bar`, className) })));\n }\n renderSelectAll() {\n const { selectAllButton } = this.props;\n if (this.multiple && selectAllButton) {\n const builtInButtons = [\n { key: 'select_all', onClick: this.chooseAll, children: $l('Select', 'select_all') },\n ];\n if (this.selectReverse) {\n builtInButtons.push({ key: 'select_re', onClick: this.chooseRe, children: $l('Select', 'select_re') });\n }\n builtInButtons.push({ key: 'unselect_all', onClick: this.unChooseAll, children: $l('Select', 'unselect_all') });\n const buttons = typeof selectAllButton === 'function' ? selectAllButton(builtInButtons) : builtInButtons;\n return (React.createElement(\"div\", { key: \"check-all\", className: `${this.prefixCls}-select-all-none` }, buttons.map(({ key, onClick, children }, index) => (React.createElement(\"span\", { key: key || String(index), onClick: onClick }, children)))));\n }\n }\n getPopupContent() {\n const menu = (React.createElement(Spin, { key: \"menu\", spinning: this.loading }, this.getMenu()));\n return [\n this.searchable && this.isSearchFieldInPopup() && this.renderSearchField(),\n this.renderSelectAll(),\n menu,\n ];\n }\n getPopupStyleFromAlign(target) {\n if (target) {\n const width = pxToRem(target.getBoundingClientRect().width);\n if (width !== undefined) {\n const { isFlat } = this.props;\n if (!isFlat && this.dropdownMatchSelectWidth) {\n return {\n width,\n };\n }\n return {\n minWidth: width,\n };\n }\n }\n }\n getTriggerIconFont() {\n return this.searchable && !this.isSearchFieldInPopup() && this.isFocused && !this.readOnly ? 'search' : 'baseline-arrow_drop_down';\n }\n handleKeyDown(e) {\n const { menu } = this;\n /**\n * 修复ie出现点击backSpace的页面回到上一页问题\n */\n if (isIE()) {\n if (e.keyCode === KeyCode.BACKSPACE) {\n e.preventDefault();\n }\n }\n if (!this.disabled && !this.readOnly && menu) {\n if (this.popup && menu.onKeyDown(e)) {\n stopEvent(e);\n }\n else {\n switch (e.keyCode) {\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n this.handleKeyDownPrevNext(e, menu, 1);\n break;\n case KeyCode.LEFT:\n case KeyCode.UP:\n this.handleKeyDownPrevNext(e, menu, -1);\n break;\n case KeyCode.END:\n case KeyCode.PAGE_DOWN:\n this.handleKeyDownFirstLast(e, menu, 1);\n break;\n case KeyCode.HOME:\n case KeyCode.PAGE_UP:\n this.handleKeyDownFirstLast(e, menu, -1);\n break;\n // case KeyCode.ENTER:\n // this.handleKeyDownEnter(e);\n // break;\n case KeyCode.ESC:\n this.handleKeyDownEsc(e);\n break;\n case KeyCode.SPACE:\n this.handleKeyDownSpace(e);\n break;\n default:\n }\n }\n }\n super.handleKeyDown(e);\n }\n isMultipleBlockDisabled(v) {\n const { props: { onOption }, } = this;\n const findRecord = this.findByValue(v);\n const optionProps = findRecord ? onOption === defaultOnOption ? defaultOnOption({ record: findRecord }) : onOption({\n dataSet: this.options,\n record: findRecord,\n }) : undefined;\n const optionDisabled = (optionProps && optionProps.disabled);\n return (findRecord && findRecord.get(DISABLED_FIELD) === true) || optionDisabled || this.disabled;\n }\n handleKeyDownFirstLast(e, menu, direction) {\n stopEvent(e);\n // TreeSelect event conflict\n if (!menu.tree) {\n const children = menu.getFlatInstanceArray();\n const activeItem = children[direction < 0 ? 0 : children.length - 1];\n if (activeItem) {\n if (!this.editable || this.popup) {\n updateActiveKey(menu, activeItem.props.eventKey);\n }\n if (!this.editable && !this.popup) {\n this.choose(activeItem.props.value);\n }\n }\n }\n }\n handleKeyDownPrevNext(e, menu, direction) {\n if (!this.multiple && !this.editable && !menu.tree) {\n const activeItem = menu.step(direction);\n if (activeItem) {\n updateActiveKey(menu, activeItem.props.eventKey);\n this.choose(activeItem.props.value);\n }\n e.preventDefault();\n }\n else if (e === KeyCode.DOWN) {\n this.expand();\n e.preventDefault();\n }\n }\n // handleKeyDownEnter(_e) {\n // }\n handleKeyDownEsc(e) {\n if (this.popup) {\n e.preventDefault();\n this.collapse();\n }\n }\n handleKeyDownSpace(e) {\n if (!this.editable) {\n e.preventDefault();\n if (!this.popup) {\n this.expand();\n }\n }\n }\n handleBlur(e) {\n if (!e.isDefaultPrevented()) {\n super.handleBlur(e);\n this.resetFilter();\n }\n }\n expand() {\n const { filteredOptions } = this;\n if (filteredOptions && filteredOptions.length) {\n super.expand();\n }\n }\n syncValueOnBlur(value) {\n if (value) {\n const { comboOptions } = this;\n const data = comboOptions ? comboOptions.data : [];\n this.options.ready().then(() => {\n const record = this.findByTextWithValue(value, data);\n if (record) {\n this.choose(record);\n }\n });\n }\n else if (!this.multiple) {\n this.setValue(this.emptyValue);\n }\n }\n findByTextWithValue(text, data) {\n const { textField } = this;\n const records = [...data, ...this.filteredOptions].filter(record => isSameLike(record.get(textField), text));\n if (records.length > 1) {\n const { valueField, primitive } = this;\n const value = this.getValue();\n if (value) {\n const found = records.find(record => isSameLike(record.get(valueField), primitive ? value : value[valueField]));\n if (found) {\n return found;\n }\n }\n }\n return records[0];\n }\n findByText(text) {\n const { textField } = this;\n return this.optionsWithCombo.find(record => isSameLike(record.get(textField), text));\n }\n findByValue(value) {\n const { valueField } = this;\n const autoType = this.getProp('type') === FieldType.auto;\n value = getSimpleValue(value, valueField);\n return this.optionsWithCombo.find(record => autoType ? isSameLike(record.get(valueField), value) : isSame(record.get(valueField), value));\n }\n isSelected(record) {\n const { valueField } = this;\n const autoType = this.getProp('type') === FieldType.auto;\n return this.getValues().some(value => {\n const simpleValue = getSimpleValue(value, valueField);\n return autoType\n ? isSameLike(record.get(valueField), simpleValue)\n : isSame(record.get(valueField), simpleValue);\n });\n }\n generateComboOption(value, callback) {\n const { currentComboOption, textField, valueField } = this;\n if (value) {\n if (isArrayLike(value)) {\n value.forEach(v => !isNil(v) && this.generateComboOption(v));\n }\n else {\n const found = this.findByText(value) || this.findByValue(value);\n if (found) {\n const text = found.get(textField);\n if (text !== value && callback) {\n callback(text);\n }\n this.removeComboOption();\n }\n else if (currentComboOption) {\n currentComboOption.set(textField, value);\n currentComboOption.set(valueField, value);\n }\n else {\n this.createComboOption(value);\n }\n }\n }\n else {\n this.removeComboOption();\n }\n }\n createComboOption(value) {\n const { textField, valueField, menu } = this;\n const comboOptions = getIf(this, 'comboOptions', () => new DataSet());\n const initData = !this.primitive && isObservableObject(value) ? value : {\n [textField]: value,\n [valueField]: value,\n };\n const record = comboOptions.create(initData, 0);\n if (menu) {\n updateActiveKey(menu, getItemKey(record, initData[valueField], initData[valueField]));\n }\n }\n removeComboOptions() {\n const { comboOptions } = this;\n if (comboOptions) {\n comboOptions.forEach(record => this.removeComboOption(record));\n }\n }\n removeComboOption(record) {\n if (!record) {\n record = this.currentComboOption;\n }\n if (record && !this.isSelected(record)) {\n const { comboOptions } = this;\n if (comboOptions) {\n comboOptions.remove(record);\n }\n }\n }\n handlePopupAnimateAppear() {\n }\n getValueKey(v) {\n if (isArrayLike(v)) {\n return v.map(this.getValueKey, this).join(',');\n }\n const autoType = this.getProp('type') === FieldType.auto;\n const value = getSimpleValue(v, this.valueField);\n return autoType && !isNil(value) ? value.toString() : value;\n }\n handlePopupAnimateEnd(_key, _exists) {\n }\n handleMenuClick({ key, item: { props: { value }, }, }) {\n if (key === MORE_KEY) {\n this.options.queryMore(this.options.currentPage + 1);\n }\n else if (this.multiple && this.isSelected(value)) {\n this.unChoose(value);\n }\n else {\n this.choose(value);\n }\n }\n handleCommonItemClick(value) {\n if (this.multiple && this.isSelected(value)) {\n this.unChoose(value);\n }\n else {\n this.choose(value);\n }\n }\n handleOptionSelect(record) {\n this.prepareSetValue(...(isArrayLike(record) ? record.map(this.processRecordToObject, this) : [this.processRecordToObject(record)]));\n }\n handleOptionUnSelect(record) {\n const { valueField } = this;\n const newValues = isArrayLike(record) ? record.map(r => r.get(valueField)) : [record.get(valueField)];\n this.removeValues(newValues, -1);\n }\n handleSearch(_text) {\n }\n setText(text) {\n super.setText(text);\n if (this.searchable && !this.isSearchFieldInPopup()) {\n this.doSearch(text);\n }\n }\n getSearchPara(searchMatcher, value) {\n const { paramMatcher } = this;\n if (isString(paramMatcher)) {\n if (isArrayLike(value)) {\n return { [searchMatcher]: value.map(v => `${v || ''}${paramMatcher}`) };\n }\n return { [searchMatcher]: `${value || ''}${paramMatcher}` };\n }\n if (isFunction(paramMatcher)) {\n const { record, textField, valueField } = this;\n const searchPara = paramMatcher({ record, text: value, textField, valueField, key: searchMatcher });\n if (searchPara) {\n if (isString(searchPara)) {\n return { [searchMatcher]: value };\n }\n return searchPara;\n }\n }\n return { [searchMatcher]: value };\n }\n searchRemote(text) {\n const { field, searchMatcher } = this;\n if (field && isString(searchMatcher)) {\n const searchPara = this.getSearchPara(searchMatcher, text);\n Object.keys(searchPara).forEach(key => {\n const value = searchPara[key];\n field.setLovPara(key, value === '' ? undefined : value);\n });\n }\n }\n /**\n * 该方法会被onChange和onCompositionend触发\n * @param e 改变事件\n */\n handleChange(e) {\n const { target, target: { value }, type, } = e;\n const restricted = this.restrictInput(value);\n if (restricted !== value) {\n const selectionEnd = target.selectionEnd + restricted.length - value.length;\n target.value = restricted;\n target.setSelectionRange(selectionEnd, selectionEnd);\n }\n this.setText(restricted);\n if (this.observableProps.combo) {\n if (type !== 'compositionend') {\n this.generateComboOption(restricted, text => this.setText(text));\n }\n }\n if (!this.popup) {\n this.expand();\n }\n }\n processRecordToObject(record) {\n const { primitive, valueField } = this;\n // 如果为原始值那么 restricted 失效\n const restricted = this.restrictInput(record.get(valueField));\n return primitive ? restricted : record.toData();\n }\n processObjectValue(value, textField) {\n if (!isNil(value)) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, textField);\n }\n const found = this.findByValue(value);\n if (found) {\n return found.get(textField);\n }\n }\n }\n processLookupValue(value) {\n const { field, textField, primitive } = this;\n if (primitive && field && field.lookup) {\n return super.processValue(field.getText(value));\n }\n return super.processValue(this.processObjectValue(value, textField));\n }\n processValue(value) {\n const text = this.processLookupValue(value);\n if (isEmpty(text)) {\n if (isPlainObject(value)) {\n return ObjectChainValue.get(value, this.valueField) || '';\n }\n return super.processValue(value);\n }\n return text;\n }\n clear() {\n const values = this.getValues();\n const valueLength = values.length;\n const { props: { maxTagCount = valueLength, onClear = noop, onOption = noop }, options, } = this;\n this.setText(undefined);\n if (this.multiple) {\n const valuesDisabled = values.slice(0, maxTagCount).filter(v => {\n const recordItem = this.findByValue(v);\n const findRecord = this.findByValue(v);\n const optionProps = findRecord ? onOption({ dataSet: options, record: findRecord }) : undefined;\n const optionDisabled = (optionProps && optionProps.disabled);\n return (recordItem && recordItem.get(DISABLED_FIELD) === true) || optionDisabled;\n });\n const multipleValue = valuesDisabled.length > 0 ? valuesDisabled : this.emptyValue;\n this.setValue(multipleValue);\n }\n else {\n this.setValue(this.emptyValue);\n }\n this.rangeValue = this.isFocused ? [undefined, undefined] : undefined;\n onClear();\n this.removeComboOptions();\n }\n // 当触发清空操作时候会导致两次触发onchange可搜索不需要设置值\n setRangeTarget(target) {\n if (this.text !== undefined) {\n if (!this.searchable || this.isSearchFieldInPopup()) {\n this.prepareSetValue(this.text);\n }\n this.setText();\n }\n super.setRangeTarget(target);\n defer(() => this.isFocused && this.select());\n }\n resetFilter() {\n this.setText(undefined);\n this.removeComboOption();\n this.forcePopupAlign();\n }\n reset() {\n super.reset();\n this.resetFilter();\n }\n unChoose(record) {\n if (record) {\n this.handleOptionUnSelect(record);\n }\n }\n choose(record) {\n if (!this.multiple) {\n this.collapse();\n }\n if (record) {\n this.handleOptionSelect(record);\n }\n }\n chooseAll() {\n const { options, props: { onOption }, } = this;\n const selectedOptions = this.filteredOptions.filter((record) => {\n const optionProps = onOption({ dataSet: options, record });\n const optionDisabled = (optionProps && optionProps.disabled);\n return !optionDisabled;\n });\n this.choose(selectedOptions);\n }\n /**\n * 反选\n */\n chooseRe() {\n const { options, valueField, props: { onOption }, } = this;\n const values = this.getValues();\n const selectedOptions = this.filteredOptions.filter((record) => {\n const optionProps = onOption({ dataSet: options, record });\n const value = record.get(valueField);\n const optionDisabled = (optionProps && optionProps.disabled);\n const optionIsSelect = values.some((v) => {\n if (typeof v === 'object') {\n return v[valueField] === value;\n }\n return v === value;\n });\n return (!optionDisabled && !optionIsSelect) || (optionDisabled && optionIsSelect);\n });\n this.setValue(selectedOptions.map(this.processRecordToObject, this));\n }\n unChooseAll() {\n this.clear();\n }\n handlePopupHiddenChange(hidden) {\n const noCache = this.getProp('noCache');\n if (!hidden) {\n const { field } = this;\n if (field) {\n field.fetchLookup(noCache);\n }\n this.forcePopupAlign();\n }\n super.handlePopupHiddenChange(hidden);\n }\n async processSelectedData() {\n const { comboOptions } = this;\n if (comboOptions) {\n comboOptions.removeAll();\n }\n const values = this.getValues();\n const { field } = this;\n if (field) {\n await field.ready();\n }\n const { filteredOptions, observableProps: { combo }, } = this;\n runInAction(() => {\n const newValues = values.filter(value => {\n const record = this.findByValue(value);\n if (record) {\n return true;\n }\n if (combo) {\n this.createComboOption(value);\n return true;\n }\n return false;\n });\n if (this.text && combo) {\n this.generateComboOption(this.text);\n }\n if (field &&\n field.get('cascadeMap') &&\n filteredOptions.length &&\n !isEqual(newValues, values)) {\n this.setValue(this.multiple ? newValues : newValues[0]);\n }\n });\n }\n searchData(data) {\n const { searchable, searchMatcher, searchText, } = this;\n return searchable && typeof searchMatcher === 'function' && !isSearchTextEmpty(searchText) ? data.filter((r) => this.matchRecordBySearch(r, searchText)) : data;\n }\n matchRecordBySearch(record, text) {\n const { textField, valueField, searchable, searchMatcher, } = this;\n return !searchable || typeof searchMatcher !== 'function' || searchMatcher({\n record,\n text,\n textField,\n valueField,\n value: record.get(valueField),\n props: record.get(OTHER_OPTION_PROPS),\n });\n }\n renderLengthInfo(_maxLength) {\n return undefined;\n }\n}\nSelect.displayName = 'Select';\nSelect.propTypes = {\n /**\n * 复合输入值\n * @default false\n */\n combo: PropTypes.bool,\n /**\n * 常用项\n * @default undefined\n */\n commonItem: PropTypes.array,\n /**\n * 多值标签超出最大数量时的占位描述\n */\n maxCommonTagPlaceholder: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * 多值标签最大数量\n */\n maxCommonTagCount: PropTypes.number,\n /**\n * 多值标签文案最大长度\n */\n maxCommonTagTextLength: PropTypes.number,\n /**\n * 过滤器\n * @default false\n */\n searchable: PropTypes.bool,\n /**\n * 搜索匹配器。 当为字符串时,作为lookup的参数名来重新请求值列表。\n */\n searchMatcher: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n /**\n * 参数匹配器。 当为字符串时,参数拼接。\n */\n paramMatcher: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n /**\n * 是否为原始值\n * true - 选项中valueField对应的值\n * false - 选项值对象\n */\n primitiveValue: PropTypes.bool,\n /**\n * 渲染Option文本的钩子\n * @example\n * ```js\n * <Select\n * {...props}\n * optionRenderer={({ dataSet, record, text, value }) => text + '$'}\n * />\n * ```\n */\n optionRenderer: PropTypes.func,\n /**\n * 当下拉列表为空时显示的内容\n */\n notFoundContent: PropTypes.node,\n /**\n * 渲染分页 Item 内容\n */\n pagingOptionContent: PropTypes.node,\n /**\n * 设置选项属性,如 disabled;\n */\n onOption: PropTypes.func,\n /**\n * 下拉时自动重新查询\n */\n noCache: PropTypes.bool,\n /**\n * 下拉框匹配输入框宽度\n * @default true\n */\n dropdownMatchSelectWidth: PropTypes.bool,\n /**\n * 多选时显示全选按钮;\n * @default true\n */\n selectAllButton: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n /**\n * 多选是否开启反选\n * @default false\n */\n reverse: PropTypes.bool,\n /**\n * 用tooltip显示选项内容\n * 可选值:`none` `always` `overflow`\n */\n optionTooltip: PropTypes.string,\n ...TriggerField.propTypes,\n};\nSelect.defaultProps = {\n ...TriggerField.defaultProps,\n suffixCls: 'select',\n combo: false,\n checkValueOnOptionsChange: true,\n onOption: defaultOnOption,\n selectAllButton: true,\n trigger: getConfig('selectTrigger'),\n};\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect.__PRO_SELECT = true;\n__decorate([\n observable\n], Select.prototype, \"comboOptions\", void 0);\n__decorate([\n observable\n], Select.prototype, \"$searchText\", void 0);\n__decorate([\n computed\n], Select.prototype, \"searchMatcher\", null);\n__decorate([\n computed\n], Select.prototype, \"paramMatcher\", null);\n__decorate([\n computed\n], Select.prototype, \"textField\", null);\n__decorate([\n computed\n], Select.prototype, \"valueField\", null);\n__decorate([\n computed\n], Select.prototype, \"filteredOptions\", null);\n__decorate([\n computed\n], Select.prototype, \"optionsWithCombo\", null);\n__decorate([\n computed\n], Select.prototype, \"cascadeOptions\", null);\n__decorate([\n computed\n], Select.prototype, \"searchable\", null);\n__decorate([\n computed\n], Select.prototype, \"multiple\", null);\n__decorate([\n computed\n], Select.prototype, \"menuMultiple\", null);\n__decorate([\n computed\n], Select.prototype, \"options\", null);\n__decorate([\n computed\n], Select.prototype, \"primitive\", null);\n__decorate([\n autobind\n], Select.prototype, \"saveMenu\", null);\n__decorate([\n autobind\n], Select.prototype, \"getMenu\", null);\n__decorate([\n autobind\n], Select.prototype, \"getPopupProps\", null);\n__decorate([\n computed\n], Select.prototype, \"dropdownMatchSelectWidth\", null);\n__decorate([\n computed\n], Select.prototype, \"selectReverse\", null);\n__decorate([\n computed\n], Select.prototype, \"loading\", null);\n__decorate([\n autobind,\n action\n], Select.prototype, \"handlePopupSearch\", null);\n__decorate([\n autobind\n], Select.prototype, \"renderSearchField\", null);\n__decorate([\n autobind\n], Select.prototype, \"getPopupStyleFromAlign\", null);\n__decorate([\n autobind\n], Select.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], Select.prototype, \"isMultipleBlockDisabled\", null);\n__decorate([\n autobind\n], Select.prototype, \"handleBlur\", null);\n__decorate([\n action\n], Select.prototype, \"createComboOption\", null);\n__decorate([\n autobind\n], Select.prototype, \"getValueKey\", null);\n__decorate([\n autobind\n], Select.prototype, \"handlePopupAnimateEnd\", null);\n__decorate([\n autobind\n], Select.prototype, \"handleMenuClick\", null);\n__decorate([\n autobind\n], Select.prototype, \"handleCommonItemClick\", null);\n__decorate([\n action\n], Select.prototype, \"setText\", null);\n__decorate([\n autobind,\n action\n], Select.prototype, \"handleChange\", null);\n__decorate([\n action\n], Select.prototype, \"clear\", null);\n__decorate([\n autobind\n], Select.prototype, \"reset\", null);\n__decorate([\n autobind\n], Select.prototype, \"chooseAll\", null);\n__decorate([\n autobind\n], Select.prototype, \"chooseRe\", null);\n__decorate([\n autobind\n], Select.prototype, \"unChooseAll\", null);\n__decorate([\n autobind\n], Select.prototype, \"handlePopupHiddenChange\", null);\n__decorate([\n autobind\n], Select.prototype, \"matchRecordBySearch\", null);\nlet ObserverSelect = class ObserverSelect extends Select {\n};\nObserverSelect.defaultProps = Select.defaultProps;\nObserverSelect.Option = Option;\nObserverSelect.OptGroup = OptGroup;\nObserverSelect.__PRO_SELECT = true;\nObserverSelect = __decorate([\n observer\n], ObserverSelect);\nexport default ObserverSelect;\n","import ObserverSelect from './Select';\nexport default ObserverSelect;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\n// style dependencies\nimport '../../trigger-field/style';\nimport '../../spin/style';\nimport 'choerodon-ui/lib/menu/style';\nimport 'choerodon-ui/lib/checkbox/style';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport C7nAvatar from 'choerodon-ui/lib/skeleton/Avatar';\nimport { observer } from 'mobx-react';\nimport DataSetComponent from '../data-set/DataSetComponent';\nlet Avatar = class Avatar extends DataSetComponent {\n render() {\n const { ...otherProps } = this.props;\n const props = {};\n return React.createElement(C7nAvatar, Object.assign({}, otherProps, props));\n }\n};\nAvatar.displayName = 'Avatar';\nAvatar = __decorate([\n observer\n], Avatar);\nexport default Avatar;\n","import { __decorate } from \"tslib\";\nimport * as React from 'react';\nimport { observer } from 'mobx-react';\nimport C7nSkeletonButton from 'choerodon-ui/lib/skeleton/Button';\nimport DataSetComponent from '../data-set/DataSetComponent';\nlet SkeletonButton = class SkeletonButton extends DataSetComponent {\n render() {\n const { ...otherProps } = this.props;\n const props = {};\n return React.createElement(C7nSkeletonButton, Object.assign({}, otherProps, props));\n }\n};\nSkeletonButton.dispalyName = 'SkeletonButton';\nSkeletonButton = __decorate([\n observer\n], SkeletonButton);\nexport default SkeletonButton;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport C7nSkeletonInput from 'choerodon-ui/lib/skeleton/Input';\nimport DataSetComponent from '../data-set/DataSetComponent';\nlet SkeletonInput = class SkeletonInput extends DataSetComponent {\n render() {\n const { ...otherProps } = this.props;\n const props = {};\n return React.createElement(C7nSkeletonInput, Object.assign({}, otherProps, props));\n }\n};\nSkeletonInput.displayName = 'SkeletonInput';\nSkeletonInput = __decorate([\n observer\n], SkeletonInput);\nexport default SkeletonInput;\n","import { __decorate } from \"tslib\";\nimport C7nSkeleton from 'choerodon-ui/lib/skeleton';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport omit from 'lodash/omit';\nimport { DataSetStatus } from '../data-set/enum';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport SkeletonButton from './Button';\nimport SkeletonInput from './Input';\nimport Avatar from './Avatar';\nlet Skeleton = class Skeleton extends DataSetComponent {\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'skeletonTitle',\n ]);\n }\n render() {\n const { dataSet, skeletonTitle, ...otherProps } = this.props;\n const props = {\n title: skeletonTitle,\n };\n const omitProps = omit(otherProps, 'title');\n if (dataSet) {\n // @ts-ignore\n props.loading = dataSet.status !== DataSetStatus.ready;\n }\n return React.createElement(C7nSkeleton, Object.assign({}, omitProps, props));\n }\n};\nSkeleton.displayName = 'Skeletions';\nSkeleton.Button = SkeletonButton;\nSkeleton.Input = SkeletonInput;\nSkeleton.Avatar = Avatar;\nSkeleton.defaultProps = {\n skeletonTitle: true,\n};\nSkeleton = __decorate([\n observer\n], Skeleton);\nexport default Skeleton;\n","import Skeleton from './Skeleton';\nimport SkeletonButton from './Button';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonInput from './Input';\nexport { SkeletonProps } from './Skeleton';\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nexport default Skeleton;\n","import 'choerodon-ui/lib/skeleton/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport C7NSpin from 'choerodon-ui/lib/spin';\nimport { DataSetStatus } from '../data-set/enum';\nimport DataSetComponent from '../data-set/DataSetComponent';\nlet Spin = class Spin extends DataSetComponent {\n render() {\n const { dataSet, ...otherProps } = this.props;\n const props = {};\n if (dataSet) {\n props.spinning = dataSet.status !== DataSetStatus.ready;\n }\n return React.createElement(C7NSpin, Object.assign({}, otherProps, props));\n }\n};\nSpin.displayName = 'Spin';\nSpin = __decorate([\n observer\n], Spin);\nexport default Spin;\n","import 'choerodon-ui/lib/spin/style';\n","import { getConfig } from 'choerodon-ui/lib/configure';\nimport PromiseMerger from '../_util/PromiseMerger';\nexport class AttachmentStore {\n constructor() {\n this.batchCallback = (uuids) => {\n const { batchFetchCount } = getConfig('attachment');\n if (batchFetchCount) {\n return batchFetchCount(uuids);\n }\n return Promise.resolve({});\n };\n this.merger = new PromiseMerger(this.batchCallback, { maxAge: 60000, max: 100 });\n }\n fetchCountInBatch(uuid) {\n return this.merger.add(uuid);\n }\n}\nexport default new AttachmentStore();\n","import { __decorate } from \"tslib\";\nimport { action } from 'mobx';\nimport isString from 'lodash/isString';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport axios from '../axios';\nimport lovCodeStore from './LovCodeStore';\nimport { FieldType } from '../data-set/enum';\nimport { generateResponseData } from '../data-set/utils';\nimport { getLovPara, processAxiosConfig } from './utils';\nimport cacheAdapterEnhancer from '../axios/cacheAdapterEnhancer';\nimport throttleAdapterEnhancer from '../axios/throttleAdapterEnhancer';\nimport PromiseMerger from '../_util/PromiseMerger';\nconst adapter = throttleAdapterEnhancer(cacheAdapterEnhancer(axios.defaults.adapter));\nconst noCacheAdapter = throttleAdapterEnhancer(axios.defaults.adapter);\nexport class LookupCodeStore {\n constructor() {\n this.batchCallback = (codes, args) => {\n if (args) {\n const [lookupBatchAxiosConfig] = args;\n if (lookupBatchAxiosConfig) {\n return this.axios(lookupBatchAxiosConfig(codes));\n }\n }\n return Promise.resolve({});\n };\n this.merger = new PromiseMerger(this.batchCallback, getConfig('lookupCache'));\n }\n get axios() {\n return getConfig('axios') || axios;\n }\n fetchLookupData(key, axiosConfig = {}) {\n let config = {};\n if (isString(key)) {\n config = {\n ...axiosConfig,\n url: key,\n method: axiosConfig.method || getConfig('lookupAxiosMethod') || 'post',\n };\n }\n else {\n config = key;\n }\n if (config.url) {\n // SSR do not fetch the lookup\n if (typeof window !== 'undefined') {\n return this.axios(config).then((result) => {\n if (result) {\n return generateResponseData(result, getConfig('dataKey'));\n }\n });\n }\n }\n return Promise.resolve(undefined);\n }\n fetchLookupDataInBatch(code, lookupBatchAxiosConfig) {\n const getBatchKey = (defaultKey) => {\n const { url } = lookupBatchAxiosConfig([code]);\n return url ? url.split('?')[0] : defaultKey;\n };\n return this.merger.add(code, getBatchKey, [lookupBatchAxiosConfig]);\n }\n getAxiosConfig(field, noCache) {\n const lookupAxiosConfig = field.get('lookupAxiosConfig') || getConfig('lookupAxiosConfig');\n const { record } = field;\n const params = getLovPara(field, record);\n const config = processAxiosConfig(lookupAxiosConfig, {\n dataSet: field.dataSet,\n record,\n params,\n lookupCode: field.get('lookupCode'),\n });\n return {\n ...config,\n adapter: config.adapter || (noCache ? noCacheAdapter : adapter),\n url: config.url || this.getUrl(field),\n method: config.method || getConfig('lookupAxiosMethod') || 'post',\n params: config.params || params,\n };\n }\n getUrl(field) {\n const type = field.get('type');\n const lovCode = field.get('lovCode');\n const lookupUrl = field.get('lookupUrl');\n const lookupCode = field.get('lookupCode');\n if (typeof lookupUrl === 'function' && lookupCode) {\n return lookupUrl(lookupCode);\n }\n if (isString(lookupUrl)) {\n return lookupUrl;\n }\n if (lovCode && type !== FieldType.object) {\n return lovCodeStore.getQueryAxiosConfig(lovCode, field)({ dataSet: field.dataSet }).url;\n }\n }\n // @deprecate\n clearCache() {\n }\n}\n__decorate([\n action\n], LookupCodeStore.prototype, \"clearCache\", null);\nexport default new LookupCodeStore();\n","import { __decorate } from \"tslib\";\nimport isNil from 'lodash/isNil';\nimport { action, observable, runInAction } from 'mobx';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport DataSet from '../data-set/DataSet';\nimport axios from '../axios';\nimport { FieldType } from '../data-set/enum';\nimport { LovFieldType } from '../lov/enum';\nimport { processAxiosConfig } from './utils';\nfunction getFieldType(conditionFieldType) {\n switch (conditionFieldType) {\n case LovFieldType.INT:\n return FieldType.number;\n case LovFieldType.TEXT:\n return FieldType.string;\n case LovFieldType.DATE:\n return FieldType.date;\n case LovFieldType.DATETIME:\n return FieldType.dateTime;\n case LovFieldType.POPUP:\n return FieldType.object;\n default:\n return conditionFieldType || FieldType.string;\n }\n}\nfunction generateConditionField(fields, { conditionField, conditionFieldType, conditionFieldName, gridFieldName, display, conditionFieldLovCode, conditionFieldSelectCode, conditionFieldSelectUrl, conditionFieldSelectTf, conditionFieldSelectVf, conditionFieldRequired, fieldProps, }) {\n if (conditionField === 'Y') {\n const name = conditionFieldName || gridFieldName;\n const field = {\n name,\n type: getFieldType(conditionFieldType),\n label: display,\n lovCode: conditionFieldLovCode || undefined,\n lookupCode: conditionFieldSelectCode || undefined,\n lookupUrl: conditionFieldSelectUrl || undefined,\n textField: conditionFieldSelectTf || undefined,\n valueField: conditionFieldSelectVf || undefined,\n required: conditionFieldRequired || undefined,\n ...fieldProps,\n };\n fields.push(field);\n if (conditionFieldType === LovFieldType.POPUP) {\n const aliasName = `__lov__${name}`;\n field.name = aliasName;\n fields.push({\n name,\n bind: `${aliasName}.${conditionFieldSelectVf}`,\n });\n }\n }\n}\nfunction generateGridField(fields, { gridField, gridFieldName, display, fieldProps }) {\n if (gridField === 'Y') {\n fields.push({\n name: gridFieldName,\n label: display,\n ...fieldProps,\n });\n }\n}\nexport class LovCodeStore {\n constructor() {\n this.pendings = {};\n this.init();\n }\n get axios() {\n return getConfig('axios') || axios;\n }\n init() {\n this.lovCodes = observable.map();\n }\n getDefineAxiosConfig(code, field) {\n const lovDefineAxiosConfig = (field && field.get('lovDefineAxiosConfig')) || getConfig('lovDefineAxiosConfig');\n const config = processAxiosConfig(lovDefineAxiosConfig, code, field);\n return {\n ...config,\n url: config.url || this.getConfigUrl(code, field),\n method: config.method || 'post',\n };\n }\n getConfig(code) {\n return this.lovCodes.get(code);\n }\n async fetchConfig(code, field) {\n let config = this.getConfig(code);\n // SSR do not fetch the lookup\n if (!config && typeof window !== 'undefined') {\n const axiosConfig = this.getDefineAxiosConfig(code, field);\n if (axiosConfig) {\n try {\n const pending = this.pendings[code] || this.axios(axiosConfig);\n this.pendings[code] = pending;\n config = await pending;\n runInAction(() => {\n if (config) {\n this.lovCodes.set(code, config);\n }\n });\n }\n finally {\n delete this.pendings[code];\n }\n }\n }\n return config;\n }\n // lovCode 作为key 缓存了 ds\n getLovDataSet(code, field, dataSetProps) {\n const config = this.getConfig(code);\n if (config) {\n const { lovPageSize, lovItems, parentIdField, idField, treeFlag, dataSetProps: configDataSetProps } = config;\n const valueField = field ? field.get('valueField') : config.valueField;\n const dsProps = {\n transport: {\n read: this.getQueryAxiosConfig(code, field, config),\n },\n primaryKey: valueField,\n cacheSelection: true,\n };\n if (!isNil(lovPageSize) && !isNaN(Number(lovPageSize))) {\n dsProps.pageSize = Number(lovPageSize);\n }\n else {\n dsProps.paging = false;\n }\n if (treeFlag === 'Y' && parentIdField && idField) {\n dsProps.parentField = parentIdField;\n dsProps.idField = idField;\n }\n if (lovItems && lovItems.length) {\n const { querys, fields } = lovItems\n .sort(({ conditionFieldSequence }, { conditionFieldSequence: conditionFieldSequence2 }) => conditionFieldSequence - conditionFieldSequence2)\n .reduce((obj, configItem) => {\n generateConditionField(obj.querys, configItem);\n generateGridField(obj.fields, configItem);\n return obj;\n }, { querys: [], fields: [] });\n if (querys.length) {\n dsProps.queryFields = querys;\n }\n if (fields.length) {\n dsProps.fields = fields;\n }\n }\n return new DataSet({ ...dsProps, ...configDataSetProps, ...dataSetProps });\n }\n warning(false, `LOV: code<${code}> is not exists`);\n return undefined;\n }\n getConfigUrl(code, field) {\n const lovDefineUrl = (field && field.get('lovDefineUrl')) || getConfig('lovDefineUrl');\n if (typeof lovDefineUrl === 'function') {\n return lovDefineUrl(code);\n }\n return lovDefineUrl;\n }\n getQueryAxiosConfig(code, field, config) {\n return (props) => {\n const lovQueryAxiosConfig = (field && field.get('lovQueryAxiosConfig')) || getConfig('lovQueryAxiosConfig');\n const lovQueryUrl = this.getQueryUrl(code, field, props);\n const axiosConfig = processAxiosConfig(lovQueryAxiosConfig, code, config, props, lovQueryUrl);\n return {\n ...axiosConfig,\n url: axiosConfig.url || lovQueryUrl,\n method: axiosConfig.method || 'post',\n };\n };\n }\n getQueryUrl(code, field, props) {\n const config = this.getConfig(code);\n if (config) {\n const { customUrl } = config;\n if (customUrl) {\n return customUrl;\n }\n }\n const lovQueryUrl = (field && field.get('lovQueryUrl')) || getConfig('lovQueryUrl');\n if (typeof lovQueryUrl === 'function') {\n return lovQueryUrl(code, config, props);\n }\n return lovQueryUrl;\n }\n clearCache(codes) {\n if (codes) {\n codes.forEach(code => {\n this.lovCodes.delete(code);\n });\n }\n else {\n this.lovCodes.clear();\n }\n }\n}\n__decorate([\n observable\n], LovCodeStore.prototype, \"lovCodes\", void 0);\n__decorate([\n action\n], LovCodeStore.prototype, \"init\", null);\n__decorate([\n action\n], LovCodeStore.prototype, \"clearCache\", null);\nexport default new LovCodeStore();\n","import lookupStore from './LookupCodeStore';\nimport lovStore from './LovCodeStore';\nconst stores = {\n LovCodeStore: lovStore,\n LookupCodeStore: lookupStore,\n};\nexport default stores;\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n","export function getLovPara(field, record) {\n const lovPara = { ...field.get('lovPara') };\n const cascadeMap = field.get('cascadeMap');\n if (record && cascadeMap) {\n Object.keys(cascadeMap).forEach(cascade => (lovPara[cascade] = record.get(cascadeMap[cascade])));\n }\n return lovPara;\n}\nexport function processAxiosConfig(axiosConfig = {}, ...args) {\n if (typeof axiosConfig === 'function') {\n return axiosConfig(...args);\n }\n return axiosConfig;\n}\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { CheckBox } from '../check-box/CheckBox';\nimport autobind from '../_util/autobind';\nlet Switch = class Switch extends CheckBox {\n handleKeyDown(e) {\n if (e.keyCode === KeyCode.LEFT) {\n this.setChecked(false);\n }\n else if (e.keyCode === KeyCode.RIGHT) {\n this.setChecked(true);\n }\n super.handleKeyDown(e);\n }\n getLabelText() {\n return undefined;\n }\n getTextNode() {\n const { prefixCls, props: { children, unCheckedChildren }, } = this;\n const text = this.isChecked() ? children : unCheckedChildren || children;\n return React.createElement(\"span\", { className: `${prefixCls}-label` }, text);\n }\n renderSwitchFloatLabel() {\n const { prefixCls, } = this;\n return (React.createElement(\"span\", { className: `${prefixCls}-float-label` }, this.getLabelChildren()));\n }\n renderInner() {\n return undefined;\n }\n};\nSwitch.displayName = 'Switch';\n/**\n * tooltip disable sign\n */\n// eslint-disable-next-line camelcase\nSwitch.__PRO_SWITCH = true;\n// eslint-disable-next-line camelcase\nSwitch.__IS_IN_CELL_EDITOR = true;\nSwitch.defaultProps = {\n ...CheckBox.defaultProps,\n suffixCls: 'switch',\n};\n__decorate([\n autobind\n], Switch.prototype, \"handleKeyDown\", null);\nSwitch = __decorate([\n observer\n], Switch);\nexport default Switch;\n","import Switch from './Switch';\nexport default Switch;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import React, { useCallback, useContext } from 'react';\nimport { action } from 'mobx';\nimport TableContext from './TableContext';\nimport Dropdown from '../dropdown/Dropdown';\nimport Menu from '../menu';\nimport { $l } from '../locale-context';\nconst AggregationButton = (props) => {\n const { expanded, record, columnGroup } = props;\n const { tableStore, prefixCls } = useContext(TableContext);\n const handleMenuClick = useCallback(action(({ key }) => {\n switch (key) {\n case 'cell':\n tableStore.setAggregationCellExpanded(record, columnGroup.key, !expanded);\n break;\n case 'row':\n tableStore.columnGroups.allLeafs.forEach(({ column: col, key: columnKey }) => col.aggregation && tableStore.setAggregationCellExpanded(record, columnKey, !expanded));\n break;\n case 'column': {\n const { dataSet } = record;\n if (dataSet) {\n dataSet.forEach(r => tableStore.setAggregationCellExpanded(r, columnGroup.key, !expanded));\n }\n break;\n }\n default:\n }\n }), [tableStore, record, columnGroup, expanded]);\n const handleClick = useCallback(() => {\n handleMenuClick({ key: tableStore.aggregationExpandType });\n }, [handleMenuClick, tableStore]);\n const getOverlay = useCallback(() => (React.createElement(Menu, { prefixCls: `${prefixCls}-dropdown-menu`, onClick: handleMenuClick },\n React.createElement(Menu.Item, { key: \"cell\" }, $l('Table', expanded ? 'collapse_cell' : 'expand_cell')),\n React.createElement(Menu.Item, { key: \"row\" }, $l('Table', expanded ? 'collapse_row' : 'expand_row')),\n React.createElement(Menu.Item, { key: \"column\" }, $l('Table', expanded ? 'collapse_column' : 'expand_column')))), [prefixCls, handleMenuClick, expanded]);\n return (React.createElement(\"span\", { className: `${prefixCls}-cell-expand` },\n React.createElement(\"button\", { type: \"button\", className: `${prefixCls}-cell-expand-btn`, onClick: handleClick }, $l('Table', expanded ? 'collapse' : 'expand_button')),\n React.createElement(Dropdown, { overlay: getOverlay },\n React.createElement(\"span\", { className: `${prefixCls}-cell-expand-menu-btn` }))));\n};\nexport default AggregationButton;\n","import { get } from 'mobx';\nimport { ShowHelp } from '../field/enum';\nexport const defaultMinWidth = 100;\nexport const defaultAggregationMinWidth = 250;\nexport function defaultAggregationRenderer({ text }) {\n return text;\n}\nexport const ColumnDefaultProps = {\n hidden: false,\n lock: false,\n resizable: true,\n sortable: false,\n hideable: true,\n aggregationLimit: 4,\n showHelp: ShowHelp.tooltip,\n};\nconst Column = function Column() {\n return null;\n};\nColumn.__PRO_TABLE_COLUMN = true;\nColumn.defaultProps = ColumnDefaultProps;\nexport default Column;\nexport function minColumnWidth(col) {\n const hidden = get(col, 'hidden');\n if (hidden) {\n return 0;\n }\n const width = get(col, 'width');\n const min = get(col, 'minWidth');\n const aggregation = get(col, 'aggregation');\n const minWidth = min === undefined ? aggregation ? defaultAggregationMinWidth : defaultMinWidth : min;\n if (width === undefined) {\n return minWidth;\n }\n return Math.min(width, minWidth);\n}\nexport function columnWidth(col) {\n const hidden = get(col, 'hidden');\n if (hidden) {\n return 0;\n }\n const width = get(col, 'width');\n if (width === undefined) {\n const minWidth = get(col, 'minWidth');\n if (minWidth === undefined) {\n const aggregation = get(col, 'aggregation');\n return aggregation ? defaultAggregationMinWidth : defaultMinWidth;\n }\n return minWidth;\n }\n return width;\n}\n","import { __decorate } from \"tslib\";\nimport { action, computed, observable } from 'mobx';\nimport { columnWidth } from './Column';\nimport ColumnGroups from './ColumnGroups';\nimport { getColumnKey, getColumnLock } from './utils';\nexport default class ColumnGroup {\n constructor(column, parent) {\n this.column = column;\n this.key = getColumnKey(column);\n this.parent = parent;\n const { children } = column;\n const { aggregation } = parent;\n if ((!column.aggregation || !aggregation) && children && children.length > 0) {\n this.children = new ColumnGroups(children, aggregation, this);\n }\n }\n get lock() {\n return getColumnLock(this.column.lock);\n }\n get rowSpan() {\n return this.parent.deep - this.deep + 1;\n }\n get colSpan() {\n const { children } = this;\n return children ? children.wide : 1;\n }\n get deep() {\n const { children } = this;\n return children ? children.deep + 1 : this.hidden ? 0 : 1;\n }\n get hidden() {\n const { children } = this;\n return children ? children.hidden : !!this.column.hidden;\n }\n get lastLeaf() {\n const { leafs } = this;\n const { length } = leafs;\n return length ? leafs[length - 1] : undefined;\n }\n get width() {\n const { children } = this;\n return children ? children.width : columnWidth(this.column);\n }\n get left() {\n const { prev } = this;\n if (prev) {\n return prev.left + prev.width;\n }\n const { parent } = this;\n if (parent) {\n return parent.left;\n }\n return 0;\n }\n get right() {\n const { next } = this;\n if (next) {\n return next.right + next.width;\n }\n const { parent } = this;\n if (parent) {\n return parent.right;\n }\n return 0;\n }\n get allLeafs() {\n const { children } = this;\n if (children) {\n return children.leafs;\n }\n return [this];\n }\n get leafs() {\n const { hidden } = this;\n if (!hidden) {\n return this.allLeafs;\n }\n return [];\n }\n setInView(inView) {\n this.inView = inView;\n }\n}\n__decorate([\n observable\n], ColumnGroup.prototype, \"inView\", void 0);\n__decorate([\n computed\n], ColumnGroup.prototype, \"left\", null);\n__decorate([\n computed\n], ColumnGroup.prototype, \"right\", null);\n__decorate([\n computed\n], ColumnGroup.prototype, \"allLeafs\", null);\n__decorate([\n computed\n], ColumnGroup.prototype, \"leafs\", null);\n__decorate([\n action\n], ColumnGroup.prototype, \"setInView\", null);\n","import { __decorate } from \"tslib\";\nimport { computed } from 'mobx';\nimport { columnWidth } from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport { ColumnLock } from './enum';\nexport default class ColumnGroups {\n constructor(columns, aggregation, parent) {\n this.aggregation = aggregation;\n this.parent = parent;\n let prev;\n this.columns = columns.map(col => {\n const group = new ColumnGroup(col, this);\n if (prev) {\n prev.next = group;\n group.prev = prev;\n }\n prev = group;\n return group;\n });\n }\n get wide() {\n return this.columns.reduce((sum, { colSpan, hidden }) => (hidden ? sum : sum + colSpan), 0);\n }\n get deep() {\n return Math.max(...this.columns.map(({ deep }) => deep));\n }\n get hidden() {\n return this.columns.every(({ hidden }) => hidden);\n }\n get width() {\n return this.columns.reduce((sum, { width }) => sum + width, 0);\n }\n get left() {\n const { parent } = this;\n if (parent) {\n return parent.left;\n }\n return 0;\n }\n get right() {\n const { parent } = this;\n if (parent) {\n return parent.right;\n }\n return 0;\n }\n get lastLeaf() {\n const { leafs } = this;\n const { length } = leafs;\n return length ? leafs[length - 1] : undefined;\n }\n get allLeafs() {\n const { aggregation } = this;\n return this.columns.reduce((leafs, group) => leafs.concat(aggregation && group.column.aggregation ? group : group.allLeafs), []);\n }\n get inView() {\n return this.allLeafs.some(group => group.inView !== false);\n }\n get leafs() {\n const { aggregation, hidden } = this;\n return hidden ? [] : this.columns.reduce((leafs, group) => leafs.concat(aggregation && group.column.aggregation ? group : group.leafs), []);\n }\n get leftLeafs() {\n if (!this.parent) {\n const { aggregation } = this;\n return this.columns.reduce((leafs, group) => group.lock === ColumnLock.left ? leafs.concat(aggregation && group.column.aggregation ? group : group.leafs) : leafs, []);\n }\n return [];\n }\n get rightLeafs() {\n if (!this.parent) {\n const { aggregation } = this;\n return this.columns.reduce((leafs, group) => group.lock === ColumnLock.right ? leafs.concat(aggregation && group.column.aggregation ? group : group.leafs) : leafs, []);\n }\n return [];\n }\n get leftLeafColumnsWidth() {\n return this.leftLeafs.reduce((total, { column }) => total + columnWidth(column), 0);\n }\n get rightLeafColumnsWidth() {\n return this.rightLeafs.reduce((total, { column }) => total + columnWidth(column), 0);\n }\n}\n__decorate([\n computed\n], ColumnGroups.prototype, \"wide\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"deep\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"hidden\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"width\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"allLeafs\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"inView\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"leafs\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"leftLeafs\", null);\n__decorate([\n computed\n], ColumnGroups.prototype, \"rightLeafs\", null);\n","import React, { memo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nconst ExpandIcon = memo(function ExpandIcon(props) {\n const { prefixCls, expanded, expandable, onChange } = props;\n const iconPrefixCls = `${prefixCls}-expand-icon`;\n const classString = classNames(iconPrefixCls, {\n [`${iconPrefixCls}-expanded`]: expanded,\n [`${iconPrefixCls}-spaced`]: !expandable,\n });\n const handleClick = useCallback((e) => {\n e.stopPropagation();\n onChange(e);\n }, [onChange]);\n return (React.createElement(Icon, { type: \"baseline-arrow_right\", className: classString, onClick: expandable ? handleClick : undefined, tabIndex: expandable ? 0 : -1 }));\n});\nExpandIcon.displayName = 'ExpandIcon';\nexport default ExpandIcon;\n","import { observer } from 'mobx-react-lite';\nimport isFunction from 'lodash/isFunction';\nconst ExpandedRow = observer(function ExpandedRow(props) {\n const { isExpanded, children = null, columnGroups, record } = props;\n if (isFunction(children)) {\n const child = children(columnGroups, record, isExpanded);\n if (child) {\n return child;\n }\n }\n return children;\n});\nExpandedRow.displayName = 'ExpandedRow';\nexport default ExpandedRow;\n","import React, { memo, useCallback } from 'react';\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\nconst ResizeObservedRow = memo(function ResizeObservedRow(props) {\n const { children, onResize, rowIndex } = props;\n const handleResize = useCallback((_width, height) => {\n onResize(rowIndex, height);\n }, [onResize, rowIndex]);\n return (React.createElement(ReactResizeObserver, { resizeProp: \"height\", onResize: handleResize, immediately: true }, children));\n});\nResizeObservedRow.displayName = 'ResizeObservedRow';\nexport default ResizeObservedRow;\n","import React, { useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { action } from 'mobx';\nimport { $l } from '../locale-context';\nimport TableContext from './TableContext';\nimport Tooltip from '../tooltip';\nimport Button from '../button/Button';\nimport { FuncType } from '../button/enum';\nconst SelectionTips = observer(function SelectionTips() {\n const { prefixCls, dataSet, tableStore, showSelectionCachedButton, onShowCachedSelectionChange } = useContext(TableContext);\n const { showCachedSelection } = tableStore;\n const handleSwitch = useCallback(action(() => {\n const newShowCachedSelection = !showCachedSelection;\n tableStore.showCachedSelection = newShowCachedSelection;\n if (onShowCachedSelectionChange) {\n onShowCachedSelectionChange(newShowCachedSelection);\n }\n }), [showCachedSelection, onShowCachedSelectionChange]);\n const cachedButton = showSelectionCachedButton && dataSet.cacheSelectionKeys && dataSet.cachedSelected.length > 0 ? (React.createElement(Tooltip, { title: $l('Table', showCachedSelection ? 'hide_cached_seletion' : 'show_cached_seletion') },\n React.createElement(Button, { className: `${prefixCls}-switch`, funcType: FuncType.flat, icon: showCachedSelection ? 'visibility_off' : 'visibility', onClick: handleSwitch }))) : null;\n return tableStore.showSelectionTips ? (React.createElement(\"div\", { className: `${prefixCls}-selection-tips` },\n React.createElement(\"span\", null, $l('Table', 'selection_tips', { count: React.createElement(\"b\", null, dataSet.selected.length) })),\n cachedButton)) : cachedButton;\n});\nSelectionTips.displayName = 'SelectionTips';\nexport default SelectionTips;\n","import React, { useCallback } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { stopPropagation } from 'choerodon-ui/lib/_util/EventManager';\nimport { SELECTION_KEY } from './TableStore';\nimport ObserverCheckBox from '../check-box/CheckBox';\nconst SelectionTreeBox = observer(function SelectionTreeBox(props) {\n const { record } = props;\n const handleChange = useCallback((value) => {\n const { dataSet } = record;\n if (dataSet) {\n if (value) {\n dataSet.treeSelect(record);\n }\n else {\n dataSet.treeUnSelect(record);\n }\n }\n }, [record]);\n return (React.createElement(ObserverCheckBox, { checked: record.isSelected, onChange: handleChange, onClick: stopPropagation, disabled: !record.selectable, \"data-selection-key\": SELECTION_KEY, indeterminate: record.isSelectionIndeterminate, value: true }));\n});\nSelectionTreeBox.displayName = 'SelectionTreeBox';\nexport default SelectionTreeBox;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport TableContext from './TableContext';\nimport { onlyCustomizedColumn } from './utils';\nconst StickyShadow = observer(function StickyShadow(props) {\n const { position, children } = props;\n const { tableStore, prefixCls } = useContext(TableContext);\n const { columnGroups } = tableStore;\n const disabled = !children && ((position === 'left' && columnGroups.leftLeafs.length === 0) ||\n (position === 'right' && onlyCustomizedColumn(tableStore)));\n if (disabled) {\n return null;\n }\n const classString = classNames({\n [`${prefixCls}-sticky-shadow`]: !children,\n [`${prefixCls}-fixed-left`]: children && position === 'left',\n [`${prefixCls}-fixed-right`]: children && position === 'right',\n [`${prefixCls}-sticky-left`]: position === 'left' && tableStore.stickyLeft,\n [`${prefixCls}-sticky-right`]: position === 'right' && tableStore.stickyRight,\n });\n const style = {};\n if (!children) {\n const scrollBarWidth = measureScrollbar();\n if (position === 'left') {\n style.left = pxToRem(columnGroups.leftLeafColumnsWidth - 1);\n }\n else if (position === 'right') {\n style.right = pxToRem(columnGroups.rightLeafColumnsWidth + (tableStore.overflowY ? scrollBarWidth : 0));\n }\n style.bottom = pxToRem(scrollBarWidth);\n }\n return (React.createElement(\"div\", { className: classString, style: style }, children));\n});\nStickyShadow.displayName = 'StickyShadow';\nexport default StickyShadow;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { observer } from 'mobx-react';\nimport defaultTo from 'lodash/defaultTo';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport isNumber from 'lodash/isNumber';\nimport isUndefined from 'lodash/isUndefined';\nimport debounce from 'lodash/debounce';\nimport noop from 'lodash/noop';\nimport { action, get, reaction, toJS } from 'mobx';\nimport { DragDropContext, } from 'react-beautiful-dnd';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport { isCalcSize, pxToRem, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\nimport Column from './Column';\nimport TableRow from './TableRow';\nimport TableHeaderCell from './TableHeaderCell';\nimport TableStore from './TableStore';\nimport TableHeader from './TableHeader';\nimport autobind from '../_util/autobind';\nimport Pagination from '../pagination/Pagination';\nimport Spin from '../spin';\nimport DataSetComponent from '../data-set/DataSetComponent';\nimport { TableContextProvider } from './TableContext';\nimport TableWrapper from './TableWrapper';\nimport TableTBody from './TableTBody';\nimport TableFooter from './TableFooter';\nimport { ColumnLock, DragColumnAlign, HighLightRowType, ScrollPosition, SelectionMode, TableAutoHeightType, TableButtonType, TableEditMode, TableHeightType, TableMode, TablePaginationPosition, TableQueryBarType, RowBoxPlacement, } from './enum';\nimport TableQueryBar from './query-bar';\nimport ToolBar from './query-bar/TableToolBar';\nimport FilterBar from './query-bar/TableFilterBar';\nimport AdvancedQueryBar from './query-bar/TableAdvancedQueryBar';\nimport ProfessionalBar from './query-bar/TableProfessionalBar';\nimport DynamicFilterBar from './query-bar/TableDynamicFilterBar';\nimport { findCell, findIndexedSibling, getHeight, getPaginationPosition, isCanEdictingRow, isDropresult, isStickySupport, onlyCustomizedColumn, } from './utils';\nimport TableBody from './TableBody';\nimport VirtualWrapper from './VirtualWrapper';\nimport SelectionTips from './SelectionTips';\nimport { DataSetEvents, DataSetSelection } from '../data-set/enum';\nimport { Size } from '../core/enum';\nimport StickyShadow from './StickyShadow';\nexport const buttonsEnumType = PropTypes.oneOf([\n TableButtonType.add,\n TableButtonType.save,\n TableButtonType.remove,\n TableButtonType.delete,\n TableButtonType.reset,\n TableButtonType.query,\n TableButtonType.export,\n TableButtonType.expandAll,\n TableButtonType.collapseAll,\n]);\nlet _instance;\n// 构造一个单例table来防止body下不能有table元素的报错\nexport const instance = (wrapperClassName, prefixCls) => {\n // Using a table as the portal so that we do not get react\n // warnings when mounting a tr element\n const _tableContain = () => {\n const table = document.createElement('table');\n if (wrapperClassName) {\n table.className = wrapperClassName;\n }\n const thead = document.createElement('thead');\n thead.className = `${prefixCls}-thead`;\n table.appendChild(thead);\n const headtr = document.createElement('tr');\n thead.appendChild(headtr);\n const tbody = document.createElement('tbody');\n tbody.className = `${prefixCls}-tbody`;\n table.appendChild(tbody);\n if (!document.body) {\n throw new Error('document.body required a body to append');\n }\n document.body.appendChild(table);\n return {\n // @ts-ignore\n tbody,\n // @ts-ignore\n headtr,\n };\n };\n if (_instance) {\n return _instance;\n }\n return _instance = _tableContain();\n};\nlet Table = class Table extends DataSetComponent {\n constructor() {\n super(...arguments);\n this.tableStore = new TableStore(this);\n this.wrapperWidth = [];\n /**\n * 滚动结束隐藏spin\n */\n this.setSpin = debounce(() => {\n const { refSpin } = this;\n if (refSpin) {\n refSpin.style.display = 'none';\n }\n }, 300);\n }\n get currentRow() {\n const { prefixCls } = this;\n return this.element.querySelector(`.${prefixCls}-row-current`);\n }\n get firstRow() {\n const { prefixCls } = this;\n return this.element.querySelector(`.${prefixCls}-row:first-child`);\n }\n get lastRow() {\n const { prefixCls } = this;\n return this.element.querySelector(`.${prefixCls}-row:last-child`);\n }\n saveVirtualSpinRef(node) {\n this.refSpin = node;\n }\n saveResizeRef(node) {\n this.resizeLine = node;\n }\n useFocusedClassName() {\n return false;\n }\n setCode(props) {\n const { customizedCode } = props;\n if (customizedCode) {\n this.code = customizedCode;\n }\n else {\n super.setCode(props);\n }\n }\n handleResize(width) {\n const { element, tableStore, wrapperWidth } = this;\n if (width !== undefined) {\n const duplicate = wrapperWidth.includes(width);\n wrapperWidth.unshift(width);\n window.clearTimeout(this.wrapperWidthTimer);\n this.wrapperWidthTimer = window.setTimeout(() => {\n wrapperWidth.pop();\n }, 500);\n if (wrapperWidth.length > 2) {\n wrapperWidth.pop();\n }\n if (duplicate) {\n return;\n }\n }\n if (!element.offsetParent) {\n tableStore.styledHidden = true;\n }\n else if (!tableStore.hidden) {\n this.syncSizeInFrame(width);\n }\n else {\n tableStore.styledHidden = false;\n }\n }\n handleWindowResize() {\n this.handleResize();\n }\n handleDataSetLoad() {\n const { tableStore } = this;\n if (tableStore.performanceEnabled) {\n tableStore.performanceOn = true;\n }\n this.initDefaultExpandedRows();\n }\n handleDataSetCreate({ record, dataSet }) {\n const { tableStore } = this;\n if (tableStore.inlineEdit) {\n if (tableStore.currentEditRecord) {\n tableStore.currentEditRecord.reset();\n dataSet.remove(record);\n }\n else {\n tableStore.currentEditRecord = record;\n }\n }\n }\n async handleDataSetValidate({ result, dataSet }) {\n if (!await result) {\n const [firstInvalidRecord] = dataSet.getValidationErrors();\n if (firstInvalidRecord) {\n const { errors, record } = firstInvalidRecord;\n if (errors.length) {\n const [{ field: { name } }] = errors;\n const cell = findCell(this.tableStore, name, undefined, record);\n if (cell) {\n cell.focus();\n }\n }\n }\n }\n }\n handleKeyDown(e) {\n const { tableStore } = this;\n const { keyboard } = tableStore;\n if (!tableStore.editing) {\n try {\n const { dataSet } = this.props;\n const ctrlKey = e.ctrlKey || e.metaKey;\n const altKey = e.altKey;\n const shiftKey = e.shiftKey;\n switch (e.keyCode) {\n case KeyCode.UP:\n if (shiftKey && keyboard) {\n this.handleKeyDownUpShift(e);\n }\n else {\n this.handleKeyDownUp(e);\n }\n break;\n case KeyCode.DOWN:\n if (shiftKey && keyboard) {\n this.handleKeyDownDownShift(e);\n }\n else {\n this.handleKeyDownDown(e);\n }\n break;\n case KeyCode.RIGHT:\n this.handleKeyDownRight(e);\n break;\n case KeyCode.LEFT:\n this.handleKeyDownLeft(e);\n break;\n case KeyCode.PAGE_UP:\n e.preventDefault();\n dataSet.prePage();\n break;\n case KeyCode.PAGE_DOWN:\n e.preventDefault();\n dataSet.nextPage();\n break;\n case KeyCode.HOME:\n this.handleKeyDownHome(e);\n break;\n case KeyCode.END:\n this.handleKeyDownEnd(e);\n break;\n case KeyCode.S:\n if (ctrlKey === true && keyboard)\n this.handleKeyDownCTRLS(e);\n break;\n case KeyCode.N:\n if (altKey === true && keyboard)\n this.handleKeyDownCTRLN(e);\n break;\n case KeyCode.D:\n if (ctrlKey === true && keyboard)\n this.handleKeyDownCTRLD(e);\n break;\n case KeyCode.DELETE:\n if (altKey === true && keyboard)\n this.handleKeyDownCTRLDELETE(e);\n break;\n default:\n }\n }\n catch (error) {\n warning(false, error.message);\n }\n }\n const { onKeyDown = noop } = this.props;\n onKeyDown(e);\n }\n focusRow(row) {\n if (row) {\n const { index } = row.dataset;\n if (index) {\n const { dataSet } = this.props;\n const record = dataSet.findRecordById(index);\n if (record) {\n dataSet.current = record;\n return record;\n }\n }\n }\n }\n async handleKeyDownHome(e) {\n e.preventDefault();\n const { dataSet } = this.props;\n if (!this.tableStore.isTree) {\n await dataSet.first();\n }\n this.focusRow(this.firstRow);\n }\n async handleKeyDownEnd(e) {\n e.preventDefault();\n const { dataSet } = this.props;\n if (!this.tableStore.isTree) {\n await dataSet.last();\n }\n this.focusRow(this.lastRow);\n }\n async handleKeyDownCTRLS(e) {\n e.preventDefault();\n const { tableStore: { dataSet }, } = this;\n dataSet.submit();\n }\n async handleKeyDownCTRLN(e) {\n const { tableStore: { dataSet, editors }, } = this;\n if (editors.size) {\n e.preventDefault();\n dataSet.create({}, 0);\n }\n }\n // TODO: To be optimized\n async handleKeyDownCTRLD(e) {\n e.preventDefault();\n const { currentRow, tableStore } = this;\n const { dataSet } = tableStore;\n let currentElementSibling = null;\n // to justice it can be change or standards compliant\n if (isCanEdictingRow(currentRow)) {\n currentElementSibling = currentRow;\n }\n if (currentElementSibling && tableStore && dataSet) {\n const previousElementSibling = findIndexedSibling(currentElementSibling, -1);\n if (previousElementSibling) {\n const { index } = previousElementSibling.dataset;\n const { index: currentIndex } = currentElementSibling.dataset;\n if (index && currentIndex) {\n const record = dataSet.findRecordById(index);\n const currentRecord = dataSet.findRecordById(currentIndex);\n // exculde the primery key and merge has columns which has edictor\n if (record && currentRecord && tableStore) {\n const cloneRecodData = record.clone().toData() || {};\n const dealCloneRecodData = {};\n const editeColumn = tableStore.columns\n .filter((column) => !!column.editor)\n .reduce((accumulator, nowValue) => [...accumulator, nowValue.name], [])\n .filter((v) => !(v === null || v === undefined || v === ''));\n if (editeColumn && editeColumn.length > 0) {\n editeColumn.forEach(element => {\n if (element) {\n dealCloneRecodData[element] = cloneRecodData[element];\n }\n });\n }\n // remove the unique name of fields\n const uniqueFieldIterator = new Map([...dataSet.fields.entries()]\n .filter(([_key, field]) => !!field.get('unique'))).keys();\n const uniqueFieldNames = Array.from(uniqueFieldIterator);\n if (uniqueFieldNames && uniqueFieldNames.length > 0) {\n uniqueFieldNames.forEach(element => {\n if (element) {\n delete dealCloneRecodData[element];\n }\n });\n }\n currentRecord.set(dealCloneRecodData);\n }\n }\n }\n }\n }\n async handleKeyDownCTRLDELETE(e) {\n e.preventDefault();\n const { tableStore: { dataSet }, } = this;\n dataSet.delete(dataSet.selected);\n }\n async handleKeyDownUp(e) {\n e.preventDefault();\n const { currentRow } = this;\n let returnRecod;\n if (currentRow) {\n const previousElementSibling = findIndexedSibling(currentRow, -1);\n if (previousElementSibling) {\n returnRecod = this.focusRow(previousElementSibling);\n }\n else {\n const { dataSet } = this.props;\n await dataSet.prePage();\n returnRecod = this.focusRow(this.lastRow);\n }\n if (returnRecod) {\n return Promise.resolve(returnRecod);\n }\n }\n return Promise.reject();\n }\n async handleKeyDownDown(e) {\n e.preventDefault();\n const { currentRow } = this;\n let returnRecod;\n if (currentRow) {\n const nextElementSibling = findIndexedSibling(currentRow, 1);\n if (nextElementSibling) {\n returnRecod = this.focusRow(nextElementSibling);\n }\n else {\n const { dataSet } = this.props;\n await dataSet.nextPage();\n returnRecod = this.focusRow(this.firstRow);\n }\n if (returnRecod) {\n return Promise.resolve(returnRecod);\n }\n }\n return Promise.reject();\n }\n async handleKeyDownDownShift(e) {\n e.preventDefault();\n const { dataSet } = this.tableStore;\n const { currentRow } = this;\n if (currentRow && isCanEdictingRow(currentRow)) {\n const { index } = currentRow.dataset;\n if (index) {\n const record = dataSet.findRecordById(index);\n if (record) {\n if (!record.selectable) {\n this.handleKeyDownDown(e);\n }\n else if (!record.isSelected) {\n dataSet.select(record);\n }\n else {\n const currentRecord = await this.handleKeyDownDown(e);\n if (currentRecord && dataSet) {\n dataSet.select(currentRecord);\n }\n }\n }\n }\n }\n else {\n this.handleKeyDownDown(e);\n }\n }\n async handleKeyDownUpShift(e) {\n e.preventDefault();\n const { dataSet } = this.tableStore;\n const { currentRow } = this;\n if (currentRow && isCanEdictingRow(currentRow)) {\n const { index } = currentRow.dataset;\n if (index) {\n const record = dataSet.findRecordById(index);\n if (record) {\n if (!record.selectable) {\n this.handleKeyDownUp(e);\n }\n else if (!record.isSelected) {\n dataSet.select(record);\n }\n else {\n const currentRecord = await this.handleKeyDownUp(e);\n if (currentRecord) {\n dataSet.select(currentRecord);\n }\n }\n }\n }\n }\n else {\n this.handleKeyDownUp(e);\n }\n }\n handleKeyDownRight(e) {\n const { tableStore, props: { expandedRowRenderer, dataSet }, } = this;\n if (tableStore.isTree || expandedRowRenderer) {\n const { current } = dataSet;\n if (current) {\n e.preventDefault();\n tableStore.setRowExpanded(current, true);\n }\n }\n }\n handleKeyDownLeft(e) {\n const { tableStore, props: { expandedRowRenderer, dataSet }, } = this;\n if (tableStore.isTree || expandedRowRenderer) {\n const { current } = dataSet;\n if (current) {\n e.preventDefault();\n tableStore.setRowExpanded(current, false);\n }\n }\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'columns',\n 'header',\n 'showHeader',\n 'footer',\n 'border',\n 'columnEditorBorder',\n 'selectionMode',\n 'rowBoxPlacement',\n 'alwaysShowRowBox',\n 'showSelectionTips',\n 'showSelectionCachedButton',\n 'showCachedSelection',\n 'onShowCachedSelectionChange',\n 'showAllPageSelectionButton',\n 'onRow',\n 'onColumnResize',\n 'rowRenderer',\n 'buttons',\n 'buttonsLimit',\n 'rowHeight',\n 'queryFields',\n 'queryFieldsLimit',\n 'summaryFieldsLimit',\n 'queryBar',\n 'queryBarProps',\n 'autoFocus',\n 'summaryBar',\n 'defaultRowExpanded',\n 'expandRowByClick',\n 'expandedRowRenderer',\n 'expandIconColumnIndex',\n 'indentSize',\n 'filter',\n 'mode',\n 'editMode',\n 'filterBarFieldName',\n 'filterBarPlaceholder',\n 'pagination',\n 'highLightRow',\n 'selectedHighLightRow',\n 'columnResizable',\n 'columnTitleEditable',\n 'pristine',\n 'expandIcon',\n 'spin',\n 'virtual',\n 'virtualCell',\n 'virtualSpin',\n 'autoWidth',\n 'autoHeight',\n 'autoFootHeight',\n 'useMouseBatchChoose',\n 'autoMaxWidth',\n 'dragColumnAlign',\n 'columnDraggable',\n 'rowDraggable',\n 'onDragEnd',\n 'rowDragRender',\n 'columnsDragRender',\n 'editorNextKeyEnterDown',\n 'onDragEndBefore',\n 'keyboard',\n 'dynamicFilterBar',\n 'parityRow',\n 'rowNumber',\n 'treeAsync',\n 'treeLoadData',\n 'customizable',\n 'customizedCode',\n 'dragColumn',\n 'dragRow',\n 'clientExportQuantity',\n 'treeQueryExpanded',\n 'summary',\n 'aggregation',\n 'onAggregationChange',\n 'showRemovedRow',\n 'searchCode',\n ]);\n }\n getWrapperProps(props = {}) {\n const { autoWidth } = this.props;\n const wrapperProps = {\n ...props,\n };\n if (autoWidth) {\n const { columnGroups, overflowY, border } = this.tableStore;\n wrapperProps.style = {\n width: columnGroups.width + (overflowY ? measureScrollbar() : 0) + (border ? 2 : 0),\n };\n }\n return super.getWrapperProps(wrapperProps);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n otherProps.onKeyDown = this.handleKeyDown;\n const { rowHeight } = this.tableStore;\n if (rowHeight === 'auto') {\n delete otherProps.style;\n }\n else {\n otherProps.style = { lineHeight: pxToRem(rowHeight) };\n }\n return otherProps;\n }\n getClassName() {\n const { tableStore: { border, parityRow, aggregation, size }, prefixCls, } = this;\n return super.getClassName({\n [`${prefixCls}-${size}`]: size !== Size.default,\n [`${prefixCls}-bordered`]: border,\n [`${prefixCls}-parity-row`]: parityRow,\n [`${prefixCls}-aggregation`]: aggregation,\n });\n }\n /**\n * 获取传入的 Spin props\n */\n getSpinProps() {\n const { spin, dataSet } = this.props;\n if (spin && !isUndefined(spin.spinning))\n return { ...spin };\n const { loading } = this.tableStore;\n if (loading) {\n return {\n ...spin,\n spinning: true,\n };\n }\n return {\n ...spin,\n dataSet,\n };\n }\n componentWillMount() {\n this.initDefaultExpandedRows();\n this.connect();\n }\n componentDidMount() {\n super.componentDidMount();\n this.syncSize();\n this.syncSizeInFrame();\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n this.disconnect();\n this.tableStore.updateProps(nextProps);\n this.connect();\n }\n componentWillUnmount() {\n this.disconnect();\n if (this.scrollId !== undefined) {\n raf.cancel(this.scrollId);\n }\n const { bodyHeightReaction } = this;\n if (bodyHeightReaction) {\n bodyHeightReaction();\n }\n }\n connect() {\n this.processDataSetListener(true);\n const { style } = this.props;\n const { maxHeight, minHeight } = style || {};\n if (this.tableStore.heightType === TableHeightType.flex || (isString(maxHeight) && isCalcSize(maxHeight)) || (isString(minHeight) && isCalcSize(minHeight))) {\n window.addEventListener('resize', this.handleWindowResize, false);\n }\n }\n disconnect() {\n this.processDataSetListener(false);\n window.removeEventListener('resize', this.handleWindowResize, false);\n }\n processDataSetListener(flag) {\n const { isTree, dataSet, inlineEdit, performanceEnabled } = this.tableStore;\n if (dataSet) {\n const handler = flag ? dataSet.addEventListener : dataSet.removeEventListener;\n if (isTree || performanceEnabled) {\n handler.call(dataSet, DataSetEvents.load, this.handleDataSetLoad);\n }\n if (inlineEdit) {\n handler.call(dataSet, DataSetEvents.create, this.handleDataSetCreate);\n }\n handler.call(dataSet, DataSetEvents.validate, this.handleDataSetValidate);\n }\n }\n render() {\n const { tableStore: { virtual, overflowX, overflowY, isAnyColumnsLeftLock, isAnyColumnsRightLock }, props: { dataSet, style, treeQueryExpanded, spin, virtualSpin, buttons, buttonsLimit, queryFields, queryFieldsLimit, summaryFieldsLimit, filterBarFieldName, filterBarPlaceholder, summaryBar, dynamicFilterBar, clientExportQuantity, indentSize, selectionMode, rowRenderer, onRow, onColumnResize, expandedRowRenderer, expandRowByClick, rowDragRender, columnsDragRender, mode, pristine, showSelectionCachedButton, onShowCachedSelectionChange, autoMaxWidth, summary, searchCode, }, tableStore, prefixCls, } = this;\n const content = this.getTable();\n const pagination = this.getPagination(TablePaginationPosition.top);\n const tableSpinProps = getConfig('tableSpinProps');\n const tableButtonsLimit = isNil(buttonsLimit) ? getConfig('tableButtonsLimit') : buttonsLimit;\n const styleHeight = style ? toPx(style.height) : 0;\n return (React.createElement(ReactResizeObserver, { resizeProp: \"width\", onResize: this.handleResize },\n React.createElement(\"div\", Object.assign({}, this.getWrapperProps()),\n React.createElement(TableContextProvider, { code: this.code, prefixCls: prefixCls, dataSet: dataSet, tableStore: tableStore, indentSize: indentSize, selectionMode: selectionMode, onRow: onRow, onColumnResize: onColumnResize, rowRenderer: rowRenderer, expandedRowRenderer: expandedRowRenderer, expandRowByClick: expandRowByClick, rowDragRender: rowDragRender, columnsDragRender: columnsDragRender, showSelectionCachedButton: showSelectionCachedButton, onShowCachedSelectionChange: onShowCachedSelectionChange, autoMaxWidth: autoMaxWidth, pristine: pristine, summary: summary, isTree: mode === TableMode.tree },\n this.getHeader(),\n React.createElement(TableQueryBar, { buttons: buttons, buttonsLimit: tableButtonsLimit, pagination: pagination, queryFields: queryFields, clientExportQuantity: clientExportQuantity, summaryBar: summaryBar, dynamicFilterBar: dynamicFilterBar, queryFieldsLimit: queryFieldsLimit, summaryFieldsLimit: summaryFieldsLimit, filterBarFieldName: filterBarFieldName, filterBarPlaceholder: filterBarPlaceholder, treeQueryExpanded: treeQueryExpanded, searchCode: searchCode }),\n React.createElement(Spin, Object.assign({}, tableSpinProps, this.getSpinProps(), { key: \"content\" }),\n virtual && virtualSpin && (React.createElement(\"div\", { ref: this.saveVirtualSpinRef, style: { display: 'none' } },\n React.createElement(Spin, Object.assign({ key: \"virtual\", spinning: true, style: {\n height: pxToRem(styleHeight),\n lineHeight: pxToRem(styleHeight),\n position: 'absolute',\n width: '100%',\n zIndex: 4,\n } }, tableSpinProps, spin)))),\n React.createElement(\"div\", Object.assign({}, this.getOtherProps()),\n React.createElement(\"div\", { className: classNames(`${prefixCls}-content`, { [`${prefixCls}-content-overflow`]: isStickySupport() && overflowX && !overflowY }), onScroll: this.handleBodyScroll },\n !isStickySupport() && isAnyColumnsLeftLock && overflowX && this.getLeftFixedTable(),\n content,\n !isStickySupport() && isAnyColumnsRightLock && overflowX && this.getRightFixedTable()),\n isStickySupport() && overflowX && React.createElement(StickyShadow, { position: \"left\" }),\n isStickySupport() && overflowX && React.createElement(StickyShadow, { position: \"right\" }),\n React.createElement(\"div\", { ref: this.saveResizeRef, className: `${prefixCls}-split-line` }))),\n this.getFooter(),\n this.getPagination(TablePaginationPosition.bottom)))));\n }\n reorderDataSet(startIndex, endIndex) {\n const { dataSet } = this.tableStore;\n dataSet.move(startIndex, endIndex);\n }\n ;\n handleDragEnd(resultDrag, provided) {\n const { onDragEnd, onDragEndBefore } = this.props;\n let resultBefore = resultDrag;\n if (onDragEndBefore) {\n const result = onDragEndBefore(this.tableStore.dataSet, toJS(this.tableStore.columns), resultDrag, provided);\n if (result === false) {\n return;\n }\n if (isDropresult(result)) {\n resultBefore = result;\n }\n }\n if (resultBefore && resultBefore.destination) {\n this.reorderDataSet(resultBefore.source.index, resultBefore.destination.index);\n }\n /**\n * 相应变化后的数据\n */\n if (onDragEnd) {\n onDragEnd(this.tableStore.dataSet, toJS(this.tableStore.columns), resultBefore, provided);\n }\n }\n handleBodyScroll(e) {\n const { currentTarget } = e;\n const handle = () => {\n this.handleBodyScrollTop(e, currentTarget);\n this.handleBodyScrollLeft(e, currentTarget);\n };\n if (isStickySupport()) {\n handle();\n }\n else {\n e.persist();\n this.scrollId = raf(handle);\n }\n }\n handleBodyScrollTop(e, currentTarget) {\n const { target } = e;\n const { tableStore } = this;\n if ((isStickySupport() && !tableStore.virtual) ||\n // (![TableHeightType.fixed, TableHeightType.flex].includes(tableStore.heightType)) ||\n !tableStore.overflowY ||\n currentTarget !== target ||\n target === this.tableFootWrap) {\n return;\n }\n const fixedColumnsBodyLeft = this.fixedColumnsBodyLeft;\n const bodyTable = this.tableBodyWrap;\n const fixedColumnsBodyRight = this.fixedColumnsBodyRight;\n const { scrollTop } = target;\n if (scrollTop !== tableStore.lastScrollTop) {\n if (fixedColumnsBodyLeft && target !== fixedColumnsBodyLeft) {\n fixedColumnsBodyLeft.scrollTop = scrollTop;\n }\n if (bodyTable && target !== bodyTable) {\n bodyTable.scrollTop = scrollTop;\n }\n if (fixedColumnsBodyRight && target !== fixedColumnsBodyRight) {\n fixedColumnsBodyRight.scrollTop = scrollTop;\n }\n const { refSpin } = this;\n if (refSpin) {\n refSpin.style.display = 'block';\n this.setSpin();\n }\n this.tableStore.setLastScrollTop(scrollTop);\n }\n }\n handleBodyScrollLeft(e, currentTarget) {\n const { target } = e;\n const { tableStore } = this;\n const headTable = this.tableHeadWrap;\n const bodyTable = this.tableBodyWrap;\n const footTable = this.tableFootWrap;\n if (!tableStore.overflowX ||\n currentTarget !== target ||\n target === this.fixedColumnsBodyRight ||\n target === this.fixedColumnsBodyLeft) {\n return;\n }\n const { scrollLeft } = target;\n if (scrollLeft !== this.lastScrollLeft) {\n if (isStickySupport()) {\n [...tableStore.editors.values()].forEach((editor) => {\n if (editor.lock && editor.cellNode) {\n if (tableStore.inlineEdit) {\n editor.alignEditor(editor.cellNode);\n }\n else {\n editor.hideEditor();\n }\n }\n });\n }\n if (headTable && target !== headTable) {\n headTable.scrollLeft = scrollLeft;\n }\n if (bodyTable && target !== bodyTable) {\n bodyTable.scrollLeft = scrollLeft;\n }\n if (footTable && target !== footTable) {\n footTable.scrollLeft = scrollLeft;\n }\n this.setScrollPositionClassName(target);\n }\n this.lastScrollLeft = scrollLeft;\n }\n setScrollPositionClassName(target) {\n const { tableStore } = this;\n if (tableStore.isAnyColumnsLock && tableStore.overflowX) {\n const node = target || this.tableBodyWrap;\n if (node) {\n const scrollToLeft = node.scrollLeft === 0;\n const table = node.querySelector('table');\n const scrollToRight = table && node.scrollLeft >= table.offsetWidth - node.offsetWidth;\n if (scrollToLeft && scrollToRight) {\n this.setScrollPosition(ScrollPosition.both);\n }\n else if (scrollToLeft) {\n this.setScrollPosition(ScrollPosition.left);\n }\n else if (scrollToRight) {\n this.setScrollPosition(ScrollPosition.right);\n }\n else {\n this.setScrollPosition(ScrollPosition.middle);\n }\n }\n }\n }\n setScrollPosition(position) {\n const { tableStore } = this;\n if (tableStore.scrollPosition !== position) {\n tableStore.scrollPosition = position;\n }\n }\n renderTable(hasHeader, hasBody, hasFooter, lock) {\n const { tableStore } = this;\n const columnGroups = (() => {\n if (lock === ColumnLock.right) {\n return tableStore.rightColumnGroups;\n }\n if (lock) {\n return tableStore.leftColumnGroups;\n }\n return tableStore.columnGroups;\n })();\n return tableStore.virtual ? (React.createElement(React.Fragment, null,\n hasHeader && (React.createElement(TableWrapper, { key: \"tableWrapper-header\", lock: lock, hasBody: hasBody, hasHeader: hasHeader, hasFooter: hasFooter, columnGroups: columnGroups }, this.getTableHeader(lock))),\n hasBody && (React.createElement(VirtualWrapper, null,\n React.createElement(TableWrapper, { key: \"tableWrapper-body\", lock: lock, hasBody: hasBody, hasHeader: hasHeader, hasFooter: hasFooter, columnGroups: columnGroups }, this.getTableBody(columnGroups, lock)))),\n hasFooter && (React.createElement(TableWrapper, { key: \"tableWrapper-footer\", lock: lock, hasBody: hasBody, hasHeader: hasFooter, hasFooter: hasFooter, columnGroups: columnGroups }, this.getTableFooter(columnGroups, lock))))) : (React.createElement(TableWrapper, { key: \"tableWrapper\", lock: lock, hasBody: hasBody, hasHeader: hasHeader, hasFooter: hasFooter, columnGroups: columnGroups },\n hasHeader && this.getTableHeader(lock),\n hasBody && this.getTableBody(columnGroups, lock),\n hasFooter && this.getTableFooter(columnGroups, lock)));\n }\n getHeader() {\n const { props: { header, dataSet }, } = this;\n if (header) {\n const { prefixCls } = this;\n const data = dataSet ? dataSet.records : [];\n return (React.createElement(\"div\", { key: \"header\", className: `${prefixCls}-header` }, typeof header === 'function' ? header(data) : header));\n }\n }\n getFooter() {\n const { props: { footer, dataSet }, } = this;\n if (footer) {\n const { prefixCls } = this;\n const data = dataSet ? dataSet.records : [];\n return (React.createElement(\"div\", { key: \"footer\", className: `${prefixCls}-footer` }, typeof footer === 'function' ? footer(data) : footer));\n }\n }\n getPagination(position) {\n const { props: { dataSet, selectionMode }, prefixCls, tableStore: { pagination, showSelectionTips }, } = this;\n if (pagination !== false && dataSet && dataSet.paging) {\n const paginationPosition = getPaginationPosition(pagination);\n if (paginationPosition === TablePaginationPosition.both || paginationPosition === position) {\n const paginationProps = omit(pagination, 'position');\n return (React.createElement(Pagination, Object.assign({ key: `pagination-${position}` }, paginationProps, { className: classNames(`${prefixCls}-pagination`, paginationProps.className, { [`${prefixCls}-pagination-with-selection-tips`]: showSelectionTips }), dataSet: dataSet }), selectionMode !== SelectionMode.none && dataSet.selection === DataSetSelection.multiple && React.createElement(SelectionTips, null)));\n }\n }\n }\n getTable(lock) {\n const { props, tableStore } = this;\n const { overflowX, heightType, hasFooter: footer } = tableStore;\n let tableHead;\n let tableBody;\n let tableFooter;\n if ((!isStickySupport() && overflowX) || [TableHeightType.flex, TableHeightType.fixed].includes(heightType) || tableStore.height !== undefined) {\n const { prefixCls } = this;\n let tableHeadRef;\n let tableBodyRef;\n let tableFootRef;\n if (!lock) {\n tableHeadRef = node => (this.tableHeadWrap = node);\n tableFootRef = node => (this.tableFootWrap = node);\n tableBodyRef = node => (this.tableBodyWrap = node);\n }\n else if (lock === ColumnLock.right) {\n tableBodyRef = (node) => {\n this.fixedColumnsBodyRight = node;\n if (node) {\n this.syncSize();\n }\n };\n }\n else {\n tableBodyRef = (node) => {\n this.fixedColumnsBodyLeft = node;\n if (node) {\n this.syncSize();\n }\n };\n }\n const style = lock ? {\n width: pxToRem(lock === ColumnLock.right\n ? (tableStore.rightColumnGroups.width - 1 + (tableStore.overflowY ? measureScrollbar() : 0))\n : tableStore.leftColumnGroups.width),\n marginLeft: lock === ColumnLock.right ? pxToRem(1) : undefined,\n } : undefined;\n tableHead = (React.createElement(\"div\", { key: \"tableHead\", ref: tableHeadRef, className: `${prefixCls}-head`, style: style }, this.renderTable(true, false, false, lock)));\n if (lock !== ColumnLock.right || !onlyCustomizedColumn(tableStore)) {\n tableBody = (React.createElement(TableBody, { key: \"tableBody\", getRef: tableBodyRef, lock: lock, onScroll: this.handleBodyScroll, style: pick(props.style, ['maxHeight', 'minHeight']) }, this.renderTable(false, true, false, lock)));\n }\n if (footer) {\n tableFooter = (React.createElement(\"div\", { key: \"tableFooter\", ref: tableFootRef, className: `${prefixCls}-foot`, style: style, onScroll: this.handleBodyScroll }, this.renderTable(false, false, true, lock)));\n }\n }\n else {\n tableBody = this.renderTable(true, true, footer, lock);\n }\n return [tableHead, tableBody, tableFooter];\n }\n getLeftFixedTable() {\n return (React.createElement(StickyShadow, { position: \"left\" }, this.getTable(ColumnLock.left)));\n }\n getRightFixedTable() {\n return (React.createElement(StickyShadow, { position: \"right\" }, this.getTable(ColumnLock.right)));\n }\n getTableBody(columnGroups, lock) {\n const { tableStore: { rowDraggable } } = this;\n const body = React.createElement(TableTBody, { key: \"tbody\", lock: lock, columnGroups: columnGroups });\n return rowDraggable ? (React.createElement(DragDropContext, { onDragEnd: this.handleDragEnd }, body)) : body;\n }\n getTableHeader(lock) {\n const { showHeader } = this.props;\n return showHeader || this.tableStore.customizable ? (React.createElement(TableHeader, { key: \"thead\", lock: lock })) : undefined;\n }\n getTableFooter(columnGroups, lock) {\n return React.createElement(TableFooter, { key: \"tfoot\", lock: lock, columnGroups: columnGroups });\n }\n getStyleHeight() {\n const { style } = this.props;\n if (style) {\n return toPx(style.height);\n }\n }\n syncSizeInFrame(width = this.getWidth()) {\n if (this.nextFrameActionId !== undefined) {\n raf.cancel(this.nextFrameActionId);\n }\n this.nextFrameActionId = raf(this.syncSize.bind(this, width));\n }\n getComputedHeight() {\n const { wrapper, element, tableBodyWrap, tableStore: { autoHeight, customized: { heightType, height, heightDiff }, tempCustomized, }, } = this;\n const tempHeightType = get(tempCustomized, 'heightType');\n if (tempHeightType) {\n if (tempHeightType === TableHeightType.fixed) {\n return get(tempCustomized, 'height');\n }\n if (tempHeightType === TableHeightType.flex) {\n return document.documentElement.clientHeight - (get(tempCustomized, 'heightDiff') || 0);\n }\n return undefined;\n }\n if (heightType) {\n if (heightType === TableHeightType.fixed) {\n return height;\n }\n if (heightType === TableHeightType.flex) {\n return document.documentElement.clientHeight - (heightDiff || 0);\n }\n return undefined;\n }\n if (autoHeight) {\n const { top: parentTop, height: parentHeight } = wrapper.parentNode.getBoundingClientRect();\n const { paddingBottom } = document.defaultView ? document.defaultView.getComputedStyle(wrapper.parentNode) : { paddingBottom: 0 };\n const { top: tableTop } = element.getBoundingClientRect();\n const { diff, type } = autoHeight;\n const paddingBottomPx = toPx(paddingBottom) || 0;\n if (wrapper) {\n if (type === TableAutoHeightType.minHeight) {\n return parentHeight - (tableTop - parentTop) - diff - paddingBottomPx;\n }\n const maxHeight = parentHeight - (tableTop - parentTop) - diff - paddingBottomPx;\n // 保证max高度和Height维持一致防止scroll问题 maxHeight - 外框paddingBottom 以及 diff 和其他 tableBody 以外的高度。\n if (tableBodyWrap) {\n let maxBodyHeight = maxHeight;\n const { prefixCls } = this;\n const tableHeader = element.querySelector(`.${prefixCls}-thead`);\n const tableFooter = element.querySelector(`.${prefixCls}-foot`);\n if (tableHeader) {\n maxBodyHeight -= getHeight(tableHeader);\n }\n if (tableFooter) {\n maxBodyHeight -= getHeight(tableFooter);\n }\n tableBodyWrap.style.maxHeight = pxToRem(maxBodyHeight) || '';\n }\n return maxHeight || 0;\n }\n }\n return this.getStyleHeight();\n }\n ;\n syncSize(width = this.getWidth()) {\n const { element, tableStore, bodyHeightReaction } = this;\n if (bodyHeightReaction) {\n bodyHeightReaction();\n delete this.bodyHeightReaction;\n }\n if (element) {\n tableStore.width = Math.floor(width);\n const { style } = this.props;\n const maxHeight = style && toPx(style.maxHeight);\n const minHeight = style && toPx(style.minHeight);\n const computedHeight = this.getComputedHeight();\n const isComputedHeight = isNumber(computedHeight);\n if (isComputedHeight || isNumber(maxHeight) || isNumber(minHeight)) {\n const { prefixCls } = this;\n const { rowHeight } = tableStore;\n const tableHeader = element.querySelector(`.${prefixCls}-thead`);\n const tableFooter = element.querySelector(`.${prefixCls}-foot`);\n const headerHeight = tableHeader ? getHeight(tableHeader) : 0;\n const footerHeight = tableFooter ? getHeight(tableFooter) : 0;\n const rowMinHeight = (isNumber(rowHeight) ? rowHeight : 30) + headerHeight + footerHeight;\n const minTotalHeight = minHeight ? Math.max(rowMinHeight, minHeight) : rowMinHeight;\n const height = defaultTo(computedHeight, tableStore.bodyHeight + headerHeight + footerHeight);\n const totalHeight = Math.max(minTotalHeight, maxHeight ? Math.min(maxHeight, height) : height);\n tableStore.totalHeight = totalHeight;\n tableStore.height = isComputedHeight || totalHeight !== height ? totalHeight - headerHeight - footerHeight : undefined;\n if (!isComputedHeight) {\n this.bodyHeightReaction = reaction(() => tableStore.bodyHeight, () => this.syncSize());\n }\n }\n else {\n tableStore.height = undefined;\n }\n }\n this.setScrollPositionClassName();\n }\n initDefaultExpandedRows() {\n const { tableStore, props: { dataSet, defaultRowExpanded }, } = this;\n if (tableStore.isTree && defaultRowExpanded) {\n dataSet.forEach((record) => {\n if (record.children) {\n record.isExpanded = true;\n }\n });\n }\n }\n handleHeightTypeChange(immediate) {\n this.disconnect();\n if (immediate) {\n this.syncSize();\n }\n else {\n this.syncSizeInFrame();\n }\n this.connect();\n }\n getWidth() {\n const { wrapper } = this;\n if (wrapper) {\n return wrapper.offsetWidth;\n }\n return 0;\n }\n};\nTable.displayName = 'Table';\nTable.Column = Column;\nTable.FilterBar = FilterBar;\nTable.AdvancedQueryBar = AdvancedQueryBar;\nTable.ProfessionalBar = ProfessionalBar;\nTable.DynamicFilterBar = DynamicFilterBar;\nTable.ToolBar = ToolBar;\nTable.TableRow = TableRow;\nTable.TableHeaderCell = TableHeaderCell;\nTable.propTypes = {\n columns: PropTypes.array,\n /**\n * 表头\n */\n header: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * 是否显示表头\n */\n showHeader: PropTypes.bool,\n /**\n * 是否显示表头\n */\n showRemovedRow: PropTypes.bool,\n /**\n * 表脚\n */\n footer: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * 是否显示边框\n * @default true\n */\n border: PropTypes.bool,\n /**\n * 可编辑单元格边框\n */\n columnEditorBorder: PropTypes.bool,\n /**\n * 功能按钮\n * 可选值:`add` `delete` `remove` `save` `query` `expandAll` `collapseAll` 或 自定义按钮\n */\n buttons: PropTypes.arrayOf(PropTypes.oneOfType([\n buttonsEnumType,\n PropTypes.arrayOf(PropTypes.oneOfType([buttonsEnumType, PropTypes.object])),\n PropTypes.node,\n ])),\n buttonsLimit: PropTypes.number,\n /**\n * 自定义查询字段组件\n * 默认会根据queryDataSet中定义的field类型自动匹配组件, 匹配类型如下\n * lovCode => Lov\n * lookupCode => Select\n * type:number => NumberField\n * type:date => DatePicker\n * type:dateTime => DatePicker[mode=dateTime]\n * type:week => DatePicker[mode=week]\n * default => TextField\n */\n queryFields: PropTypes.object,\n /**\n * 头部显示的查询字段的数量,超出限制的查询字段放入弹出窗口\n * @default 1\n */\n queryFieldsLimit: PropTypes.number,\n /**\n * 头部显示的汇总字段的数量,超出限制的查询字段放入弹出窗口\n * @default 3\n */\n summaryFieldsLimit: PropTypes.number,\n /**\n * 显示查询条\n * @default true\n */\n queryBar: PropTypes.oneOfType([\n PropTypes.oneOf([\n TableQueryBarType.advancedBar,\n TableQueryBarType.normal,\n TableQueryBarType.bar,\n TableQueryBarType.none,\n TableQueryBarType.professionalBar,\n TableQueryBarType.filterBar,\n ]),\n PropTypes.func,\n ]),\n useMouseBatchChoose: PropTypes.bool,\n /**\n * 行高\n * @default 30\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n alwaysShowRowBox: PropTypes.bool,\n showSelectionTips: PropTypes.bool,\n showSelectionCachedButton: PropTypes.bool,\n showCachedSelection: PropTypes.bool,\n onShowCachedSelectionChange: PropTypes.func,\n showAllPageSelectionButton: PropTypes.bool,\n defaultRowExpanded: PropTypes.bool,\n expandRowByClick: PropTypes.bool,\n indentSize: PropTypes.number,\n filter: PropTypes.func,\n mode: PropTypes.oneOf([TableMode.list, TableMode.tree]),\n editMode: PropTypes.oneOf([TableEditMode.inline, TableEditMode.cell]),\n filterBarFieldName: PropTypes.string,\n filterBarPlaceholder: PropTypes.string,\n highLightRow: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf([HighLightRowType.focus, HighLightRowType.click])]),\n selectedHighLightRow: PropTypes.bool,\n parityRow: PropTypes.bool,\n autoMaxWidth: PropTypes.bool,\n /**\n * 设置drag框体位置\n */\n dragColumnAlign: PropTypes.oneOf([DragColumnAlign.left, DragColumnAlign.right]),\n /**\n * 开启列拖拽,但是无法使用宽度拖拽\n */\n columnDraggable: PropTypes.bool,\n /**\n * 开启行拖拽\n */\n rowDraggable: PropTypes.bool,\n columnsDragRender: PropTypes.object,\n expandIcon: PropTypes.func,\n expandIconAsCell: PropTypes.bool,\n expandIconColumnIndex: PropTypes.number,\n rowDragRender: PropTypes.object,\n onDragEndBefore: PropTypes.func,\n /**\n * 开启新建自动定位\n */\n autoFocus: PropTypes.bool,\n /**\n * 新增的组合键开关闭\n */\n keyboard: PropTypes.bool,\n /**\n * 是否单独处理column footer\n */\n autoFootHeight: PropTypes.bool,\n /**\n * 客户端查询导出,查询数目设置\n */\n clientExportQuantity: PropTypes.number,\n /**\n * 可以修改由于样式导致的虚拟高度和rowHeight不一致\n */\n virtualRowHeight: PropTypes.number,\n ...DataSetComponent.propTypes,\n};\nTable.defaultProps = {\n suffixCls: 'table',\n tabIndex: 0,\n selectionMode: SelectionMode.rowbox,\n rowBoxPlacement: RowBoxPlacement.start,\n queryFields: {},\n defaultRowExpanded: false,\n expandRowByClick: false,\n indentSize: 15,\n summaryFieldsLimit: 3,\n filterBarFieldName: 'params',\n virtualSpin: false,\n autoHeight: false,\n autoMaxWidth: true,\n autoFootHeight: false,\n clientExportQuantity: 100,\n aggregation: false,\n showSelectionCachedButton: true,\n showHeader: true,\n};\n__decorate([\n autobind\n], Table.prototype, \"saveVirtualSpinRef\", null);\n__decorate([\n autobind\n], Table.prototype, \"saveResizeRef\", null);\n__decorate([\n autobind,\n action\n], Table.prototype, \"handleResize\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleWindowResize\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleDataSetLoad\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleDataSetCreate\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleKeyDown\", null);\n__decorate([\n action\n], Table.prototype, \"reorderDataSet\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleDragEnd\", null);\n__decorate([\n autobind\n], Table.prototype, \"handleBodyScroll\", null);\n__decorate([\n action\n], Table.prototype, \"setScrollPosition\", null);\n__decorate([\n autobind,\n action\n], Table.prototype, \"syncSize\", null);\n__decorate([\n action\n], Table.prototype, \"initDefaultExpandedRows\", null);\nTable = __decorate([\n observer\n], Table);\nexport default Table;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport TableContext from './TableContext';\nimport { ColumnLock, TableAutoHeightType } from './enum';\nconst TableBody = observer(function TableBody(props) {\n const { children, lock, onScroll, style, getRef } = props;\n const { prefixCls, tableStore } = useContext(TableContext);\n const { hasFooter, overflowY, overflowX } = tableStore;\n // const saveRef = useCallback((node: HTMLDivElement | null) => {\n // const { getRef } = this.props;\n // if (getRef) {\n // getRef(node);\n // }\n // // this.element = node;\n // },[getRef])\n // componentDidUpdate(): void {\n // const { element } = this;\n // if (element) {\n // const { scrollHeight, clientHeight } = element;\n // // Fixed vertical scrollbar not displayed in Chrome when scrollHeight - clientHeight < scrollbarHeight\n // if (scrollHeight > clientHeight && scrollHeight - clientHeight < measureScrollbar()) {\n // const { overflow } = element.style;\n // element.style.overflow = 'scroll';\n // raf(() => {\n // element.style.overflow = overflow;\n // });\n // }\n // }\n // }\n const getHeightStyle = () => {\n if (!tableStore.customized.heightType) {\n const { autoHeight } = tableStore;\n if (autoHeight && autoHeight.type === TableAutoHeightType.maxHeight) {\n return undefined;\n }\n }\n return tableStore.height;\n };\n const fixedLeft = lock === true || lock === ColumnLock.left;\n const scrollbar = measureScrollbar();\n const hasFooterAndNotLock = !lock && hasFooter && overflowX && scrollbar;\n const height = getHeightStyle();\n const hasLockAndNoFooter = lock && !hasFooter && overflowX && height !== undefined && scrollbar;\n const tableBody = (React.createElement(\"div\", { ref: getRef, className: `${prefixCls}-body`, style: {\n ...(height === undefined ? style : {}),\n height: pxToRem(hasFooterAndNotLock && height !== undefined ? height + scrollbar : hasLockAndNoFooter && height !== undefined ? height - scrollbar : height),\n marginBottom: hasFooterAndNotLock ? pxToRem(-scrollbar) : undefined,\n width: fixedLeft ? pxToRem(tableStore.leftColumnGroups.width + (scrollbar || 20)) :\n lock === ColumnLock.right\n ? pxToRem(tableStore.rightColumnGroups.width - 1 + (overflowY ? scrollbar : 0))\n : undefined,\n marginLeft: lock === ColumnLock.right ? pxToRem(1) : undefined,\n }, onScroll: onScroll }, children));\n if (fixedLeft) {\n return (React.createElement(\"div\", { className: `${prefixCls}-body-wrapper`, style: { width: pxToRem(tableStore.leftColumnGroups.width) } }, tableBody));\n }\n return tableBody;\n});\nTableBody.displayName = 'TableBody';\nexport default TableBody;\n","import React, { useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport Tree from 'choerodon-ui/lib/tree';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { defaultAggregationRenderer } from './Column';\nimport TableContext from './TableContext';\nimport { getColumnKey, getColumnLock, getHeader, isStickySupport } from './utils';\nimport { ColumnLock } from './enum';\nimport TableCellInner from './TableCellInner';\nimport AggregationButton from './AggregationButton';\nconst TableCell = observer(function TableCell(props) {\n const { columnGroup, record, isDragging, provided, colSpan, className, children, disabled, inView } = props;\n const { column, key } = columnGroup;\n const { tableStore, prefixCls, dataSet, expandIconAsCell, aggregation: tableAggregation, rowHeight } = useContext(TableContext);\n const cellPrefix = `${prefixCls}-cell`;\n const tableColumnOnCell = getConfig('tableColumnOnCell');\n const getInnerNode = useCallback((col, onCellStyle, inAggregation) => (React.createElement(TableCellInner, { column: col, record: record, style: onCellStyle, disabled: disabled, inAggregation: inAggregation, prefixCls: cellPrefix, colSpan: colSpan }, children)), [record, disabled, children, cellPrefix, colSpan]);\n const getColumnsInnerNode = useCallback((columns) => {\n return columns.map((col) => {\n const { hidden, hiddenInAggregation } = col;\n if (!hidden && !(typeof hiddenInAggregation === 'function' ? hiddenInAggregation(record) : hiddenInAggregation)) {\n const { onCell } = col;\n const isBuiltInColumn = tableStore.isBuiltInColumn(col);\n const columnOnCell = !isBuiltInColumn && (onCell || tableColumnOnCell);\n const cellExternalProps = typeof columnOnCell === 'function'\n ? columnOnCell({\n dataSet,\n record,\n column: col,\n })\n : {};\n const columnKey = getColumnKey(col);\n const header = getHeader(col, dataSet, tableAggregation);\n // 只有全局属性时候的样式可以继承给下级满足对td的样式能够一致表现\n const onCellStyle = !isBuiltInColumn && tableColumnOnCell === columnOnCell && typeof tableColumnOnCell === 'function' ? omit(cellExternalProps.style, ['width', 'height']) : undefined;\n const childColumns = col.children;\n if (childColumns && childColumns.length) {\n return (React.createElement(Tree.TreeNode, Object.assign({}, cellExternalProps, { key: columnKey, title: header }), getColumnsInnerNode(childColumns)));\n }\n const innerNode = getInnerNode(col, onCellStyle, true);\n return (React.createElement(Tree.TreeNode, Object.assign({}, cellExternalProps, { key: columnKey, title: React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: `${cellPrefix}-label` }, header),\n innerNode) })));\n }\n return undefined;\n });\n }, [tableStore, record, dataSet, cellPrefix, getInnerNode, tableColumnOnCell, tableAggregation]);\n const renderInnerNode = (aggregation, onCellStyle) => {\n if (expandIconAsCell && children) {\n return (React.createElement(\"span\", { className: classNames(`${cellPrefix}-inner`, { [`${cellPrefix}-inner-row-height-fixed`]: rowHeight !== 'auto' }), style: { textAlign: 'center', ...onCellStyle } }, children));\n }\n if (aggregation) {\n const { column: { children: childColumns } } = columnGroup;\n if (childColumns) {\n const visibleChildren = childColumns.filter(child => !child.hidden);\n const { length } = visibleChildren;\n if (length > 0) {\n const { renderer = defaultAggregationRenderer, aggregationLimit, aggregationDefaultExpandedKeys, aggregationDefaultExpandAll } = column;\n const expanded = tableStore.isAggregationCellExpanded(record, key);\n const hasExpand = length > aggregationLimit;\n const nodes = hasExpand && !expanded ? visibleChildren.slice(0, aggregationLimit - 1) : visibleChildren;\n const text = (React.createElement(Tree, { prefixCls: `${cellPrefix}-tree`, virtual: false, focusable: false, defaultExpandedKeys: aggregationDefaultExpandedKeys, defaultExpandAll: aggregationDefaultExpandAll },\n getColumnsInnerNode(nodes),\n hasExpand && (React.createElement(Tree.TreeNode, { title: React.createElement(AggregationButton, { expanded: expanded, record: record, columnGroup: columnGroup }) }))));\n return (React.createElement(\"div\", { className: `${cellPrefix}-inner` }, renderer({ text, record, dataSet, aggregation: tableAggregation })));\n }\n }\n }\n return getInnerNode(column, onCellStyle);\n };\n const { style, lock } = column;\n const columnLock = isStickySupport() && getColumnLock(lock);\n const baseStyle = (() => {\n if (columnLock) {\n if (columnLock === ColumnLock.left) {\n return {\n ...style,\n left: pxToRem(columnGroup.left),\n };\n }\n if (columnLock === ColumnLock.right) {\n return {\n ...style,\n right: pxToRem(colSpan && colSpan > 1 ? 0 : columnGroup.right),\n };\n }\n }\n return style;\n })();\n const baseClassName = classNames(cellPrefix, {\n [`${cellPrefix}-fix-${columnLock}`]: columnLock,\n });\n if (inView === false || columnGroup.inView === false) {\n return (React.createElement(\"td\", { colSpan: colSpan, \"data-index\": key, className: baseClassName, style: baseStyle }));\n }\n const { onCell, aggregation } = column;\n const isBuiltInColumn = tableStore.isBuiltInColumn(column);\n const columnOnCell = !isBuiltInColumn && (onCell || tableColumnOnCell);\n const cellExternalProps = typeof columnOnCell === 'function'\n ? columnOnCell({\n dataSet: record.dataSet,\n record,\n column,\n })\n : {};\n const cellStyle = {\n ...baseStyle,\n ...cellExternalProps.style,\n ...(provided && { cursor: 'move' }),\n };\n const classString = classNames(baseClassName, {\n [`${cellPrefix}-aggregation`]: aggregation,\n }, column.className, className, cellExternalProps.className);\n const widthDraggingStyle = () => {\n const draggingStyle = {};\n if (isDragging) {\n const dom = tableStore.node.element.querySelector(`.${prefixCls}-tbody .${prefixCls}-cell[data-index=\"${key}\"]`);\n if (dom) {\n draggingStyle.width = dom.clientWidth;\n draggingStyle.whiteSpace = 'nowrap';\n }\n }\n return draggingStyle;\n };\n // 只有全局属性时候的样式可以继承给下级满足对td的样式能够一致表现\n const onCellStyle = !isBuiltInColumn && tableColumnOnCell === columnOnCell && typeof tableColumnOnCell === 'function' ? omit(cellExternalProps.style, ['width', 'height']) : undefined;\n return (React.createElement(\"td\", Object.assign({ colSpan: colSpan }, cellExternalProps, { className: classString, \"data-index\": key }, (provided && provided.dragHandleProps), { style: { ...omit(cellStyle, ['width', 'height']), ...widthDraggingStyle() } }), renderInnerNode(aggregation, onCellStyle)));\n});\nTableCell.displayName = 'TableCell';\nexport default TableCell;\n","import React, { cloneElement, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { isArrayLike } from 'mobx';\nimport raf from 'raf';\nimport classNames from 'classnames';\nimport isNil from 'lodash/isNil';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isString from 'lodash/isString';\nimport isObject from 'lodash/isObject';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { getTooltip, getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport TableContext from './TableContext';\nimport { findCell, getColumnKey, getEditorByColumnAndRecord, isInCellEditor, isStickySupport } from './utils';\nimport { FieldType, RecordStatus } from '../data-set/enum';\nimport { SELECTION_KEY } from './TableStore';\nimport { ColumnAlign, SelectionMode, TableCommandType } from './enum';\nimport Tooltip from '../tooltip/Tooltip';\nimport ObserverCheckBox from '../check-box/CheckBox';\nimport { $l } from '../locale-context';\nimport Button from '../button/Button';\nimport { LabelLayout } from '../form/enum';\nimport { findFirstFocusableElement } from '../_util/focusable';\nimport SelectionTreeBox from './SelectionTreeBox';\nimport { getDateFormatByField, isFieldValueEmpty, processFieldValue, processValue as utilProcessValue, renderMultiLine, renderMultipleValues, renderRangeValue, renderValidationMessage as utilRenderValidationMessage, showValidationMessage, toMultipleValue, toRangeValue, transformHighlightProps, } from '../field/utils';\nimport localeContext from '../locale-context/LocaleContext';\nimport isEmpty from '../_util/isEmpty';\nimport { Tooltip as TextTooltip } from '../core/enum';\nimport isOverflow from '../overflow-tip/util';\nimport { hide, show } from '../tooltip/singleton';\nimport useComputed from '../use-computed';\nimport { ShowHelp } from '../field/enum';\nimport { defaultOutputRenderer } from '../output/utils';\nlet inTab = false;\nconst TableCellInner = observer(function TableCellInner(props) {\n const { column, record, children, style, disabled, inAggregation, prefixCls, colSpan } = props;\n const multipleValidateMessageLengthRef = useRef(0);\n const tooltipShownRef = useRef();\n const { pristine, aggregation, inlineEdit, rowHeight, tableStore, dataSet, columnEditorBorder, indentSize, checkField, selectionMode } = useContext(TableContext);\n const innerPrefixCls = `${prefixCls}-inner`;\n const tooltip = tableStore.getColumnTooltip(column);\n const { name, key, lock, renderer, command, align } = column;\n const columnKey = getColumnKey(column);\n const height = record.getState(`__column_resize_height_${name}`);\n const { currentEditRecord } = tableStore;\n const field = record.getField(name);\n const fieldDisabled = disabled || (field && field.get('disabled'));\n const columnCommand = useComputed(() => {\n if (typeof command === 'function') {\n return command({ dataSet, record, aggregation });\n }\n return command;\n }, [record, command, dataSet, aggregation]);\n const canFocus = useMemo(() => !fieldDisabled && (!inlineEdit || record === currentEditRecord), [fieldDisabled, record, currentEditRecord, inlineEdit]);\n const cellEditor = getEditorByColumnAndRecord(column, record);\n const cellEditorInCell = isInCellEditor(cellEditor);\n const hasEditor = !pristine && cellEditor && !cellEditorInCell;\n const showEditor = useCallback((cell) => {\n if (name && hasEditor) {\n if (!lock && tableStore.overflowX) {\n const tableBodyWrap = tableStore.virtual ? cell.offsetParent.parentNode.parentNode : cell.offsetParent;\n if (tableBodyWrap) {\n const { leftLeafColumnsWidth, rightLeafColumnsWidth } = tableStore.columnGroups;\n const { offsetLeft, offsetWidth } = cell;\n const { scrollLeft } = tableBodyWrap;\n const { width } = tableBodyWrap.getBoundingClientRect();\n const leftSide = offsetLeft - leftLeafColumnsWidth;\n const rightSide = offsetLeft + offsetWidth - width + rightLeafColumnsWidth + measureScrollbar();\n let sl = scrollLeft;\n if (sl < rightSide) {\n sl = rightSide;\n }\n if (sl > leftSide) {\n sl = leftSide;\n }\n if (sl !== scrollLeft) {\n tableBodyWrap.scrollLeft = sl;\n }\n }\n }\n tableStore.showEditor(name);\n const editor = tableStore.editors.get(name);\n if (editor) {\n if (editor.cellNode) {\n if (tableStore.inlineEdit) {\n if (editor.inTab) {\n editor.inTab = false;\n }\n else {\n editor.focus();\n }\n }\n else {\n editor.hideEditor();\n }\n }\n else if (tableStore.inlineEdit) {\n editor.focus();\n }\n else {\n raf(() => {\n editor.alignEditor(!isStickySupport() && lock ? findCell(tableStore, columnKey, lock) : cell);\n editor.focus();\n });\n }\n }\n }\n }, [column, name, hasEditor, columnKey, tableStore]);\n const handleFocus = useCallback((e) => {\n if (canFocus) {\n if (key !== SELECTION_KEY) {\n dataSet.current = record;\n }\n showEditor(e.currentTarget);\n if (!isStickySupport() && (key === SELECTION_KEY || !hasEditor)) {\n const cell = findCell(tableStore, columnKey, lock);\n if (cell && !cell.contains(document.activeElement)) {\n const node = findFirstFocusableElement(cell);\n if (node && !inTab) {\n node.focus();\n }\n }\n }\n }\n inTab = false;\n }, [tableStore, dataSet, record, lock, columnKey, canFocus, hasEditor, showEditor]);\n const handleEditorKeyDown = useCallback((e) => {\n switch (e.keyCode) {\n case KeyCode.TAB: {\n const cell = findCell(tableStore, columnKey);\n if (cell) {\n if (cell.contains(document.activeElement)) {\n inTab = true;\n }\n else {\n const node = findFirstFocusableElement(cell);\n if (node) {\n inTab = true;\n node.focus();\n }\n }\n }\n break;\n }\n default:\n }\n }, [tableStore, columnKey]);\n const handleCommandSave = useCallback(() => {\n return dataSet.submit().then((result) => {\n if (result !== false) {\n tableStore.currentEditRecord = undefined;\n }\n });\n }, [tableStore, dataSet]);\n const handleCommandCancel = useCallback(() => {\n if (record.status === RecordStatus.add) {\n dataSet.remove(record);\n }\n else {\n record.reset();\n tableStore.currentEditRecord = undefined;\n }\n }, [tableStore, record, dataSet]);\n const handleCommandEdit = useCallback(() => {\n if (tableStore.inlineEdit) {\n tableStore.currentEditRecord = record;\n }\n }, [tableStore, record]);\n const handleCommandDelete = useCallback(() => {\n dataSet.delete(record);\n }, [dataSet, record]);\n const multiLine = field && field.get('multiLine');\n const fieldType = !aggregation && rowHeight !== 'auto' && field && field.type;\n const rows = multiLine ? [...record.fields.values()].reduce((count, dsField) => {\n const bind = dsField.get('bind');\n if (bind && bind.startsWith(`${name}.`)) {\n return count + 1;\n }\n return count;\n }, 0) : 0;\n const checkBox = (() => {\n if (children) {\n if (selectionMode === SelectionMode.treebox) {\n return (React.createElement(SelectionTreeBox, { record: record }));\n }\n if (checkField && !tableStore.hasCheckFieldColumn) {\n return (React.createElement(ObserverCheckBox, { name: checkField, record: record, disabled: disabled, indeterminate: record.isIndeterminate }));\n }\n }\n })();\n const renderCommand = useCallback(() => {\n const tableCommandProps = getConfig('tableCommandProps');\n const classString = classNames(`${prefixCls}-command`, tableCommandProps && tableCommandProps.className);\n if (record.editing) {\n return [\n React.createElement(Tooltip, { key: \"save\", title: $l('Table', 'save_button') },\n React.createElement(Button, Object.assign({}, tableCommandProps, { className: classString, icon: \"finished\", onClick: handleCommandSave }))),\n React.createElement(Tooltip, { key: \"cancel\", title: $l('Table', 'cancel_button') },\n React.createElement(Button, Object.assign({}, tableCommandProps, { className: classString, icon: \"cancle_a\", onClick: handleCommandCancel }))),\n ];\n }\n if (columnCommand) {\n const commands = [];\n columnCommand.forEach(button => {\n let tableButtonProps = {};\n if (isArrayLike(button)) {\n tableButtonProps = button[1] || {};\n button = button[0];\n }\n if (isString(button) && button in TableCommandType) {\n const getButtonProps = (type) => {\n switch (type) {\n case TableCommandType.edit:\n return {\n icon: 'mode_edit',\n onClick: handleCommandEdit,\n disabled,\n title: $l('Table', 'edit_button'),\n };\n case TableCommandType.delete:\n return {\n icon: 'delete',\n onClick: handleCommandDelete,\n disabled,\n title: $l('Table', 'delete_button'),\n };\n default:\n }\n };\n const defaultButtonProps = getButtonProps(button);\n if (defaultButtonProps) {\n const { afterClick, ...buttonProps } = tableButtonProps;\n if (afterClick) {\n const { onClick } = defaultButtonProps;\n defaultButtonProps.onClick = async (e) => {\n e.persist();\n try {\n await onClick(e);\n }\n finally {\n afterClick(e);\n }\n };\n }\n const { title, ...otherProps } = defaultButtonProps;\n commands.push(React.createElement(Tooltip, { key: button, title: title },\n React.createElement(Button, Object.assign({}, tableCommandProps, otherProps, buttonProps, { className: classNames(classString, otherProps.className, buttonProps.className) }))));\n }\n }\n else if (isValidElement(button)) {\n commands.push(cloneElement(button, {\n ...tableCommandProps,\n ...button.props,\n className: classNames(classString, button.props.className),\n }));\n }\n else if (isObject(button)) {\n commands.push(React.createElement(Button, Object.assign({}, tableCommandProps, button, { className: classNames(classString, button.className) })));\n }\n });\n return commands;\n }\n }, [prefixCls, record, columnCommand, aggregation, disabled, handleCommandEdit, handleCommandDelete, handleCommandSave, handleCommandCancel]);\n const renderEditor = useCallback(() => {\n if (isValidElement(cellEditor)) {\n /**\n * 渲染多行编辑器\n */\n if (multiLine) {\n return cellEditor;\n }\n const newEditorProps = {\n ...cellEditor.props,\n record,\n name,\n pristine,\n disabled: disabled || (inlineEdit && !record.editing),\n indeterminate: checkField && checkField === name && record.isIndeterminate,\n labelLayout: LabelLayout.none,\n showHelp: ShowHelp.none,\n };\n return cloneElement(cellEditor, newEditorProps);\n }\n }, [disabled, cellEditor, checkField, multiLine, record, name, pristine, inlineEdit]);\n const cellRenderer = useMemo(() => {\n if (columnCommand) {\n return renderCommand;\n }\n if (cellEditorInCell) {\n return renderEditor;\n }\n if (aggregation && renderer) {\n return (rendererProps) => {\n return renderer({ ...rendererProps, aggregation });\n };\n }\n return renderer;\n }, [columnCommand, cellEditorInCell, renderEditor, renderCommand, renderer, field, aggregation]);\n const prefixStyle = useMemo(() => {\n if (!aggregation) {\n if (height !== undefined && rows === 0) {\n return {\n height: pxToRem(height),\n lineHeight: 1,\n ...style,\n };\n }\n if (rowHeight !== 'auto') {\n const isCheckBox = fieldType === FieldType.boolean || key === SELECTION_KEY;\n const borderPadding = isCheckBox ? 4 : 2;\n const heightPx = rows > 0 ? (rowHeight + 2) * rows + 1 : rowHeight;\n const lineHeightPx = hasEditor || isCheckBox ? rowHeight - borderPadding : rowHeight;\n return {\n height: pxToRem(heightPx),\n lineHeight: rows > 0 ? 'inherit' : pxToRem(lineHeightPx),\n ...style,\n };\n }\n }\n return style;\n }, [fieldType, key, rows, rowHeight, height, style, aggregation, hasEditor]);\n const textAlign = useMemo(() => (align || (columnCommand ? ColumnAlign.center : getConfig('tableColumnAlign')(column, field))), [columnCommand, align, column, field]);\n const colSpanStyle = useMemo(() => (colSpan && colSpan > 1 && (textAlign === ColumnAlign.right || textAlign === ColumnAlign.center)) ? { width: `calc(100% - ${pxToRem(30)})` } : {}, [colSpan, textAlign]);\n const innerStyle = useMemo(() => {\n if (inAggregation) {\n return { ...prefixStyle, ...colSpanStyle };\n }\n return { textAlign, ...prefixStyle, ...colSpanStyle };\n }, [inAggregation, textAlign, prefixStyle, colSpanStyle]);\n const value = name ? pristine ? record.getPristineValue(name) : record.get(name) : undefined;\n const renderValidationResult = useCallback((validationResult) => {\n if (validationResult && validationResult.validationMessage) {\n return utilRenderValidationMessage(validationResult.validationMessage, true);\n }\n }, []);\n const isValidationMessageHidden = useCallback((message) => {\n return !message || pristine;\n }, [pristine]);\n const editorBorder = !inlineEdit && hasEditor;\n const getRenderedValue = () => {\n const processValue = (v) => {\n if (!isNil(v)) {\n const text = isPlainObject(v) ? v : utilProcessValue(v, getDateFormatByField(field));\n return processFieldValue(text, field, {\n getProp: (propName) => field && field.get(propName),\n lang: dataSet && dataSet.lang || localeContext.locale.lang,\n }, true);\n }\n return '';\n };\n const processRenderer = (v, repeat) => {\n let processedValue;\n if (field && (field.lookup || field.get('options') || field.get('lovCode'))) {\n processedValue = field.getText(v);\n }\n // 值集中不存在 再去取直接返回的值\n const text = isNil(processedValue) ? processValue(v) : processedValue;\n return (cellRenderer || defaultOutputRenderer)({\n value: v,\n text,\n record,\n dataSet,\n name,\n repeat,\n });\n };\n if (field) {\n if (!cellEditorInCell) {\n const multiple = field.get('multiple');\n const range = field.get('range');\n if (multiple) {\n const { tags, multipleValidateMessageLength } = renderMultipleValues(value, {\n disabled,\n readOnly: true,\n range,\n prefixCls,\n processRenderer,\n renderValidationResult,\n isValidationMessageHidden,\n showValidationMessage,\n validator: field.validator,\n });\n multipleValidateMessageLengthRef.current = multipleValidateMessageLength;\n return tags;\n }\n if (range) {\n return renderRangeValue(toRangeValue(value, range), { processRenderer });\n }\n }\n if (field.get('multiLine')) {\n const { lines, multipleValidateMessageLength } = renderMultiLine({\n name,\n field,\n record,\n dataSet,\n prefixCls: innerPrefixCls,\n renderer: cellRenderer,\n renderValidationResult,\n isValidationMessageHidden,\n processValue,\n tooltip,\n labelTooltip: getTooltip('label'),\n });\n multipleValidateMessageLengthRef.current = multipleValidateMessageLength;\n return lines;\n }\n }\n const textNode = processRenderer(value);\n return textNode === '' ? getConfig('tableDefaultRenderer') : textNode;\n };\n const result = getRenderedValue();\n const text = isEmpty(result) || (isArrayLike(result) && !result.length) ? editorBorder ? undefined : getConfig('renderEmpty')('Output') : result;\n const showTooltip = useCallback((e) => {\n if (field && !(multipleValidateMessageLengthRef.current > 0 || (!field.get('validator') && field.get('multiple') && toMultipleValue(value, field.get('range')).length))) {\n const { validator } = field;\n const message = validator && renderValidationResult(validator.currentValidationResult);\n if (!isValidationMessageHidden(message)) {\n showValidationMessage(e, message);\n return true;\n }\n }\n const element = e.target;\n if (element && !multiLine && (tooltip === TextTooltip.always || (tooltip === TextTooltip.overflow && isOverflow(element)))) {\n if (text) {\n show(element, {\n title: text,\n placement: 'right',\n theme: getTooltipTheme('table-cell'),\n });\n return true;\n }\n }\n return false;\n }, [renderValidationResult, isValidationMessageHidden, field, tooltip, multiLine, text]);\n const handleMouseEnter = useCallback((e) => {\n if (!tableStore.columnResizing && showTooltip(e)) {\n tooltipShownRef.current = true;\n }\n }, [tooltipShownRef, tableStore, showTooltip]);\n const handleMouseLeave = useCallback(() => {\n if (!tableStore.columnResizing && tooltipShownRef.current) {\n hide();\n tooltipShownRef.current = false;\n }\n }, [tooltipShownRef, tableStore]);\n useEffect(() => {\n if (name && inlineEdit && record === currentEditRecord) {\n const currentEditor = tableStore.editors.get(name);\n if (currentEditor) {\n currentEditor.alignEditor();\n }\n return () => {\n if (currentEditor) {\n currentEditor.hideEditor();\n }\n };\n }\n }, []);\n useEffect(() => () => {\n if (tooltipShownRef.current) {\n hide();\n tooltipShownRef.current = false;\n }\n }, [tooltipShownRef]);\n const innerProps = {\n tabIndex: hasEditor && canFocus ? 0 : -1,\n onFocus: handleFocus,\n children: text,\n };\n const empty = field ? isFieldValueEmpty(value, field.get('range'), field.get('multiple'), field.type === FieldType.object ? field.get('valueField') : undefined, field.type === FieldType.object ? field.get('textField') : undefined) : false;\n const innerClassName = [innerPrefixCls];\n if (columnEditorBorder) {\n innerClassName.push(`${prefixCls}-inner-bordered`);\n }\n if (editorBorder) {\n innerClassName.push(`${prefixCls}-inner-editable`);\n }\n let highlight;\n let inValid;\n if (field) {\n if (!pristine && field.dirty) {\n innerClassName.push(`${prefixCls}-inner-dirty`);\n }\n if (!inlineEdit && !cellEditorInCell) {\n inValid = !field.valid;\n if (inValid) {\n innerClassName.push(`${prefixCls}-inner-invalid`);\n }\n }\n if (editorBorder) {\n if (field.required && (empty || !getConfig('showRequiredColorsOnlyEmpty'))) {\n innerClassName.push(`${prefixCls}-inner-required`);\n }\n highlight = field.get('highlight');\n if (highlight) {\n innerClassName.push(`${prefixCls}-inner-highlight`);\n }\n }\n }\n if (fieldDisabled) {\n innerClassName.push(`${prefixCls}-inner-disabled`);\n }\n if (multiLine) {\n innerClassName.push(`${prefixCls}-inner-multiLine`);\n }\n if (!isStickySupport() && !hasEditor) {\n innerProps.onKeyDown = handleEditorKeyDown;\n }\n if (inValid || tooltip) {\n innerProps.onMouseEnter = handleMouseEnter;\n innerProps.onMouseLeave = handleMouseLeave;\n }\n if (rowHeight === 'auto') {\n innerClassName.push(`${prefixCls}-inner-auto-height`);\n }\n else {\n innerClassName.push(`${prefixCls}-inner-row-height-fixed`);\n }\n if (height !== undefined && rows === 0) {\n innerClassName.push(`${prefixCls}-inner-fixed-height`);\n }\n const indentText = children && (React.createElement(\"span\", { style: { paddingLeft: pxToRem(indentSize * record.level) } }));\n const prefix = (indentText || children || checkBox) && (React.createElement(\"span\", { key: \"prefix\", className: `${prefixCls}-prefix`, style: prefixStyle },\n indentText,\n children,\n checkBox));\n const output = (React.createElement(\"span\", Object.assign({ key: \"output\" }, innerProps, { style: innerStyle, className: innerClassName.join(' ') })));\n return (React.createElement(React.Fragment, null,\n prefix,\n highlight ? (column.highlightRenderer || tableStore.cellHighlightRenderer)(transformHighlightProps(highlight, {\n dataSet,\n record,\n name,\n }), output) : output));\n});\nTableCellInner.displayName = 'TableCellInner';\nexport default TableCellInner;\n","import React, { useContext, useMemo } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { get } from 'mobx';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport TableContext from './TableContext';\nimport { minColumnWidth } from './Column';\nconst TableCol = observer(function TableCol(props) {\n const { column, last } = props;\n const { tableStore, prefixCls } = useContext(TableContext);\n const width = last && !tableStore.hasEmptyWidthColumn ? undefined : get(column, 'width');\n const minWidth = minColumnWidth(column);\n const style = useMemo(() => ({\n width: pxToRem(width),\n minWidth: pxToRem(minWidth),\n }), [width, minWidth]);\n return (React.createElement(\"col\", { className: `${prefixCls}-col`, style: style }));\n});\nTableCol.displayName = 'TableCol';\nexport default TableCol;\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport ModalProvider from '../modal-provider';\nconst TableContext = React.createContext({\n tableStore: {},\n dataSet: {},\n indentSize: 15,\n rowHeight: 30,\n});\nconst TableContextProvider = observer((props) => {\n const { children, tableStore, dataSet, ...other } = props;\n const value = {\n ...other,\n dataSet,\n tableStore,\n border: tableStore.border,\n columnEditorBorder: tableStore.columnEditorBorder,\n rowHeight: tableStore.rowHeight,\n aggregation: tableStore.aggregation,\n inlineEdit: tableStore.inlineEdit,\n expandIconAsCell: tableStore.expandIconAsCell,\n canTreeLoadData: tableStore.canTreeLoadData,\n parityRow: tableStore.parityRow,\n checkField: dataSet.props.checkField,\n };\n return (React.createElement(TableContext.Provider, { value: value }, tableStore.customizable ? (React.createElement(ModalProvider, null, children)) : children));\n});\nTableContextProvider.displayName = 'TableContextProvider';\nexport default TableContext;\nexport { TableContextProvider, };\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component, isValidElement } from 'react';\nimport { action, observable, reaction, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport noop from 'lodash/noop';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport Row from 'choerodon-ui/lib/row';\nimport Col from 'choerodon-ui/lib/col';\nimport TableContext from './TableContext';\nimport { findCell, findIndexedSibling, getColumnKey, getEditorByColumnAndRecord, getEditorByField, isInCellEditor, isStickySupport } from './utils';\nimport { stopEvent } from '../_util/EventManager';\nimport { ShowHelp } from '../field/enum';\nimport autobind from '../_util/autobind';\nimport { ResizeType } from '../text-area/enum';\nimport transform from '../_util/transform';\nfunction isTextArea(editor) {\n return editor.type.__PRO_TEXTAREA;\n}\nfunction isHTMLElement(el) {\n return el;\n}\nfunction offset(node, topNode, initialize = [node.offsetLeft, node.offsetTop]) {\n if (topNode) {\n const { offsetParent } = node;\n if (isHTMLElement(offsetParent)) {\n if (offsetParent === topNode) {\n return initialize;\n }\n return offset(offsetParent, topNode, [offsetParent.offsetLeft + initialize[0], offsetParent.offsetTop + initialize[1]]);\n }\n }\n return initialize;\n}\nlet TableEditor = class TableEditor extends Component {\n constructor() {\n super(...arguments);\n this.inTab = false;\n }\n get lock() {\n const { column } = this.props;\n return column.lock;\n }\n handleWindowResize() {\n if (this.cellNode) {\n this.alignEditor();\n }\n }\n /**\n * 触发多行编辑器失焦切换编辑/只读模式\n * @param e\n */\n handleWindowClick(e) {\n const { prefixCls } = this.context;\n if (e.target.className !== `${prefixCls}-content` && e.target.className !== `${prefixCls}-body`) {\n this.handleEditorBlur(e);\n }\n }\n componentDidMount() {\n const { column } = this.props;\n const { tableStore, } = this.context;\n const { name } = column;\n const { dataSet, currentEditRecord, editors, inlineEdit, virtual } = tableStore;\n const record = currentEditRecord || dataSet.current;\n const field = record?.getField(name) || dataSet.getField(name);\n if (field?.get('multiLine')) {\n window.addEventListener('click', this.handleWindowClick);\n }\n window.addEventListener('resize', this.handleWindowResize);\n editors.set(name, this);\n if (inlineEdit) {\n this.reaction = reaction(() => tableStore.currentEditRecord, r => r ? raf(() => this.alignEditor()) : this.hideEditor());\n }\n else if (virtual) {\n this.reaction = reaction(() => tableStore.virtualData, (records) => (records.includes(dataSet.current) && this.cellNode ? raf(() => this.alignEditor(this.cellNode)) : this.hideEditor()));\n }\n else {\n this.reaction = reaction(() => dataSet.current, r => (r && this.cellNode ? raf(() => this.alignEditor()) : this.hideEditor()));\n }\n }\n componentWillUnmount() {\n const { column: { name } } = this.props;\n const { tableStore: { editors }, } = this.context;\n editors.delete(name);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('click', this.handleWindowClick);\n if (this.reaction) {\n this.reaction();\n }\n }\n saveRef(node) {\n this.editor = node;\n }\n saveWrap(node) {\n this.wrap = node;\n if (node) {\n this.alignEditor(this.cellNode);\n }\n }\n handleEditorKeyEnterDown(e) {\n const { tableStore } = this.context;\n const editorNextKeyEnterDown = tableStore.editorNextKeyEnterDown;\n if (!e.isDefaultPrevented() && editorNextKeyEnterDown) {\n this.showNextEditor(e.shiftKey);\n }\n }\n // copy the previous tr value to to this cell value\n handleKeyDownCTRLD(e) {\n e.preventDefault();\n const { cellNode, context: { tableStore } } = this;\n const { column: { name } } = this.props;\n const { dataSet } = tableStore;\n if (cellNode && tableStore && dataSet) {\n const parentTdNode = cellNode.parentNode;\n if (parentTdNode) {\n const parentTrNode = parentTdNode.parentNode;\n if (parentTrNode) {\n const previousElementSibling = findIndexedSibling(parentTrNode, -1);\n if (previousElementSibling) {\n const { index } = previousElementSibling.dataset;\n const { index: currentIndex } = parentTrNode.dataset;\n if (index && currentIndex) {\n const record = dataSet.findRecordById(index);\n const currentRecord = dataSet.findRecordById(currentIndex);\n if (record && currentRecord && tableStore) {\n const cloneRecordData = record.clone().toData() || {};\n const dealCloneRecordData = {};\n if (name) {\n dealCloneRecordData[name] = cloneRecordData[name];\n currentRecord.set(dealCloneRecordData);\n }\n }\n }\n }\n }\n }\n }\n }\n handleKeyDownCTRLS(e) {\n e.preventDefault();\n const { tableStore: { dataSet }, } = this.context;\n dataSet.submit();\n }\n handleEditorKeyDown(e) {\n if (![KeyCode.ESC, KeyCode.TAB].includes(e.keyCode) || !e.isDefaultPrevented()) {\n const ctrlKey = e.ctrlKey || e.metaKey;\n const { tableStore } = this.context;\n const { keyboard } = tableStore;\n switch (e.keyCode) {\n case KeyCode.ESC:\n this.blur();\n break;\n case KeyCode.TAB: {\n this.inTab = true;\n const { column } = this.props;\n const cellNode = !isStickySupport() && column.lock ? findCell(tableStore, getColumnKey(column)) : this.cellNode;\n if (cellNode) {\n cellNode.focus();\n }\n break;\n }\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n stopEvent(e);\n break;\n case KeyCode.D:\n if (ctrlKey === true && keyboard)\n this.handleKeyDownCTRLD(e);\n break;\n case KeyCode.S:\n if (ctrlKey === true && keyboard)\n this.handleKeyDownCTRLS(e);\n break;\n default:\n }\n }\n const { editorProps } = this;\n if (editorProps) {\n const { onKeyDown = noop } = editorProps;\n onKeyDown(e);\n }\n }\n handleEditorBlur(e) {\n const { editorProps, inTab, context: { tableStore: { inlineEdit } } } = this;\n if (!inTab && !inlineEdit) {\n this.hideEditor();\n }\n if (editorProps) {\n const { onBlur = noop } = editorProps;\n onBlur(e);\n }\n }\n /**\n * 多行编辑切换编辑器阻止冒泡\n * @param e\n */\n handleEditorClick(e) {\n const { editorProps } = this;\n if (editorProps) {\n const { onClick = noop } = editorProps;\n onClick(e);\n }\n stopEvent(e);\n }\n handleEditorResize(width, height, target) {\n const { editorProps, cellNode } = this;\n const { column: { name } } = this.props;\n if (cellNode && editorProps) {\n const { tableStore, dataSet, inlineEdit, rowHeight } = this.context;\n const { currentEditRecord } = tableStore;\n const { onResize = noop } = editorProps;\n onResize(width, height, target);\n const current = currentEditRecord || dataSet.current;\n if (current && name && (rowHeight !== height || current.getState(`__column_resize_height_${name}`) !== undefined)) {\n current.setState(`__column_resize_height_${name}`, height);\n }\n if (inlineEdit) {\n [...tableStore.editors.values()].forEach((editor) => {\n const editorCellNode = editor.cellNode;\n if (editorCellNode) {\n editor.alignEditor(editorCellNode);\n }\n });\n }\n else {\n this.alignEditor(cellNode);\n }\n }\n }\n blur() {\n const { editor } = this;\n if (editor) {\n editor.blur();\n }\n }\n focus() {\n const { editor } = this;\n if (editor) {\n editor.focus();\n }\n }\n alignEditor(cellNode) {\n const { wrap, editor } = this;\n if (!cellNode) {\n const { tableStore } = this.context;\n const { column } = this.props;\n cellNode = findCell(tableStore, getColumnKey(column));\n }\n this.cellNode = cellNode;\n if (cellNode) {\n const { offsetHeight } = cellNode;\n if (offsetHeight !== this.height) {\n this.height = offsetHeight;\n }\n if (!this.rendered) {\n this.rendered = true;\n }\n else if (editor && wrap) {\n const { offsetWidth } = cellNode;\n const [left, top] = offset(cellNode, wrap.parentElement);\n if (this.originalCssText === undefined) {\n this.originalCssText = wrap.style.cssText;\n }\n const width = pxToRem(offsetWidth);\n if (width !== this.width) {\n this.width = width;\n }\n wrap.style.cssText = `width:${width};${transform(`translate(${pxToRem(left)}, ${pxToRem(top)})`)}`;\n editor.forcePositionChanged();\n }\n }\n }\n hideEditor() {\n this.inTab = false;\n if (this.cellNode) {\n const { tableStore } = this.context;\n tableStore.hideEditor();\n const { wrap } = this;\n if (wrap) {\n if (this.originalCssText !== undefined) {\n wrap.style.cssText = `width:${this.width};${this.originalCssText}`;\n this.originalCssText = undefined;\n }\n }\n this.cellNode = undefined;\n }\n }\n showNextEditor(reserve) {\n this.blur();\n const { tableStore } = this.context;\n const { column } = this.props;\n tableStore.showNextEditor(column.name, reserve);\n this.alignEditor();\n this.focus();\n }\n /**\n * 渲染多行编辑单元格\n */\n renderMultiLineEditor() {\n const { column: { name } } = this.props;\n const { prefixCls, dataSet, inlineEdit, rowHeight, tableStore: { currentEditRecord }, } = this.context;\n const record = currentEditRecord || dataSet.current;\n const multiLineFields = dataSet.props.fields.map(field => {\n if (field.bind && field.bind.split('.')[0] === name) {\n return record.getField(field.name) || dataSet.getField(field.name);\n }\n return null;\n }).filter(f => f);\n if (multiLineFields && multiLineFields.length) {\n return (React.createElement(\"div\", null, multiLineFields.map((fields, index) => {\n if (fields) {\n const editor = getEditorByField(fields);\n this.editorProps = editor.props;\n const { style = {}, ...otherProps } = this.editorProps;\n if (rowHeight !== 'auto') {\n style.height = pxToRem(rowHeight);\n }\n const newEditorProps = {\n ...otherProps,\n style,\n ref: index === 0 ? this.saveRef : undefined,\n record,\n name: fields.get('name'),\n onKeyDown: this.handleEditorKeyDown,\n onEnterDown: this.handleEditorKeyEnterDown,\n onClick: this.handleEditorClick,\n tabIndex: -1,\n showHelp: ShowHelp.none,\n // 目前测试inline时候需要放开限制\n _inTable: !inlineEdit,\n };\n const label = fields.get('label');\n return (React.createElement(Row, { key: `${record?.index}-multi-${fields.get('name')}`, className: `${prefixCls}-multi` },\n label && React.createElement(Col, { span: 8, className: `${prefixCls}-multi-label` }, label),\n React.createElement(Col, { span: label ? 16 : 24, className: `${prefixCls}-multi-value` }, cloneElement(editor, newEditorProps))));\n }\n return null;\n })));\n }\n }\n renderEditor() {\n const { column } = this.props;\n const { dataSet, pristine, inlineEdit, tableStore: { currentEditRecord, currentEditorName }, } = this.context;\n const { name } = column;\n const record = currentEditRecord || dataSet.current;\n const field = record?.getField(name);\n // 多行编辑拦截返回渲染器\n if (!pristine && field && field.get('multiLine')) {\n return this.renderMultiLineEditor();\n }\n const cellEditor = getEditorByColumnAndRecord(column, record);\n if (!pristine && isValidElement(cellEditor) && !isInCellEditor(cellEditor)) {\n this.editorProps = cellEditor.props;\n const { height } = this;\n const { style = {}, ...otherProps } = this.editorProps;\n if (height !== undefined) {\n style.height = pxToRem(height);\n }\n const newEditorProps = {\n ...otherProps,\n style,\n ref: this.saveRef,\n record,\n name,\n onKeyDown: this.handleEditorKeyDown,\n onEnterDown: isTextArea(cellEditor) ? undefined : this.handleEditorKeyEnterDown,\n onBlur: this.handleEditorBlur,\n tabIndex: currentEditorName ? 0 : -1,\n showHelp: ShowHelp.none,\n // 目前测试inline时候需要放开限制\n _inTable: !inlineEdit,\n preventRenderer: true,\n };\n return cloneElement(cellEditor, newEditorProps);\n }\n this.cellNode = undefined;\n }\n render() {\n if (this.rendered) {\n const editor = this.renderEditor();\n if (editor) {\n const { column: { lock }, } = this.props;\n const { prefixCls } = this.context;\n const props = {\n className: classNames(`${prefixCls}-editor`, { [`${prefixCls}-editor-lock`]: isStickySupport() && lock }),\n };\n const editorProps = {};\n if (isTextArea(editor)) {\n const { resize = ResizeType.vertical } = editor.props;\n editorProps.resize = resize;\n if (resize !== ResizeType.none) {\n editorProps.onResize = this.handleEditorResize;\n }\n }\n return React.createElement(\"div\", Object.assign({}, props, { ref: this.saveWrap }), cloneElement(editor, editorProps));\n }\n const { tableStore } = this.context;\n if (!tableStore.inlineEdit) {\n runInAction(() => {\n this.rendered = false;\n });\n }\n }\n return null;\n }\n};\nTableEditor.displayName = 'TableEditor';\nTableEditor.contextType = TableContext;\n__decorate([\n observable\n], TableEditor.prototype, \"height\", void 0);\n__decorate([\n observable\n], TableEditor.prototype, \"rendered\", void 0);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleWindowResize\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleWindowClick\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"saveRef\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"saveWrap\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleEditorKeyEnterDown\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleKeyDownCTRLD\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleKeyDownCTRLS\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleEditorKeyDown\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleEditorBlur\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleEditorClick\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"handleEditorResize\", null);\n__decorate([\n action\n], TableEditor.prototype, \"alignEditor\", null);\n__decorate([\n autobind\n], TableEditor.prototype, \"hideEditor\", null);\nTableEditor = __decorate([\n observer\n], TableEditor);\nexport default TableEditor;\n","import React, { useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { action, get, set } from 'mobx';\nimport classNames from 'classnames';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport TableContext from './TableContext';\nimport { ColumnLock, DragColumnAlign } from './enum';\nimport TableFooterCell from './TableFooterCell';\nimport { isStickySupport } from './utils';\nimport ResizeObservedRow from './ResizeObservedRow';\nimport { CUSTOMIZED_KEY } from './TableStore';\nconst TableFooter = observer(function TableFooter(props) {\n const { lock, columnGroups } = props;\n const { prefixCls, rowHeight, tableStore } = useContext(TableContext);\n const { overflowX } = tableStore;\n const handleResize = useCallback(action((index, height) => {\n set(tableStore.lockColumnsFootRowsHeight, index, height);\n }), [tableStore]);\n const getTds = () => {\n const { customizable, rowDraggable, dragColumnAlign } = tableStore;\n const hasPlaceholder = tableStore.overflowY && lock !== ColumnLock.left;\n const right = hasPlaceholder ? measureScrollbar() : 0;\n const tds = columnGroups.leafs.map((columnGroup, index, cols) => {\n const { key } = columnGroup;\n if (key !== CUSTOMIZED_KEY) {\n const colSpan = customizable && lock !== ColumnLock.left && (!rowDraggable || dragColumnAlign !== DragColumnAlign.right) && index === cols.length - 2 ? 2 : 1;\n const cellProps = {};\n if (colSpan > 1) {\n cellProps.colSpan = colSpan;\n }\n return (React.createElement(TableFooterCell, Object.assign({ key: key, columnGroup: columnGroup, right: right }, cellProps)));\n }\n return undefined;\n });\n if (hasPlaceholder) {\n const placeHolderProps = {\n key: 'fixed-column',\n };\n const classList = [`${prefixCls}-cell`];\n if (isStickySupport() && overflowX) {\n placeHolderProps.style = { right: 0 };\n classList.push(`${prefixCls}-cell-fix-right`);\n }\n placeHolderProps.className = classList.join(' ');\n tds.push(React.createElement(\"th\", Object.assign({}, placeHolderProps), \"\\u00A0\"));\n }\n return tds;\n };\n const style = !isStickySupport() && lock && (rowHeight === 'auto' || tableStore.autoFootHeight) ? {\n height: pxToRem(get(tableStore.lockColumnsFootRowsHeight, 0)),\n } : undefined;\n const tr = (React.createElement(\"tr\", { style: style }, getTds()));\n const classString = classNames(`${prefixCls}-tfoot`, {\n [`${prefixCls}-tfoot-bordered`]: overflowX,\n });\n return (React.createElement(\"tfoot\", { className: classString }, !isStickySupport() && !lock && (rowHeight === 'auto' || tableStore.autoFootHeight) ? (React.createElement(ResizeObservedRow, { onResize: handleResize, rowIndex: 0 }, tr)) : tr));\n});\nTableFooter.displayName = 'TableFooter';\nexport default TableFooter;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport TableContext from './TableContext';\nimport { getColumnLock, isStickySupport } from './utils';\nimport { ColumnAlign, ColumnLock } from './enum';\nconst TableFooterCell = observer(function TableFooterCell(props) {\n const { columnGroup, style, className, colSpan, right } = props;\n const { rowHeight, dataSet, prefixCls, tableStore } = useContext(TableContext);\n const { column } = columnGroup;\n const { autoFootHeight } = tableStore;\n const { footer, footerClassName, footerStyle = {}, align, name, command, lock } = column;\n const columnLock = isStickySupport() && tableStore.overflowX && getColumnLock(lock);\n const classString = classNames(`${prefixCls}-cell`, {\n [`${prefixCls}-cell-fix-${columnLock}`]: columnLock,\n }, className, footerClassName);\n const innerClassNames = [`${prefixCls}-cell-inner`];\n const innerProps = {};\n if (rowHeight !== 'auto' && !autoFootHeight) {\n innerProps.style = {\n height: pxToRem(rowHeight),\n };\n innerClassNames.push(`${prefixCls}-cell-inner-row-height-fixed`);\n }\n const cellStyle = {\n textAlign: align || (command ? ColumnAlign.center : getConfig('tableColumnAlign')(column, dataSet.getField(name))),\n ...footerStyle,\n ...style,\n };\n if (columnLock) {\n if (columnLock === ColumnLock.left) {\n cellStyle.left = pxToRem(columnGroup.left);\n }\n else if (columnLock === ColumnLock.right) {\n cellStyle.right = pxToRem(colSpan && colSpan > 1 ? right : columnGroup.right + right);\n }\n }\n const getFooter = () => {\n switch (typeof footer) {\n case 'function': {\n return footer(dataSet, column.name);\n }\n case 'string':\n return React.createElement(\"span\", null, footer);\n default:\n return footer;\n }\n };\n return (React.createElement(\"th\", { className: classString, style: omit(cellStyle, ['width', 'height']), colSpan: colSpan },\n React.createElement(\"div\", Object.assign({}, innerProps, { className: innerClassNames.join(' ') }), getFooter())));\n});\nTableFooterCell.displayName = 'TableFooterCell';\nexport default TableFooterCell;\n","import React, { useCallback, useContext, useRef, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport TableHeaderCell from './TableHeaderCell';\nimport TableContext from './TableContext';\nimport { ColumnLock } from './enum';\nimport { getTableHeaderRows, isStickySupport } from './utils';\nimport TableHeaderRow from './TableHeaderRow';\nconst TableHeader = observer(function TableHeader(props) {\n const { lock } = props;\n const { prefixCls, border, tableStore, } = useContext(TableContext);\n const { columnResizable, columnResizing, columnGroups } = tableStore;\n const { columns } = columnGroups;\n const headerRows = getTableHeaderRows(lock ? columns.filter((group) => group.lock === lock) : columns);\n const [isHeaderHover, setIsHeaderHover] = useState();\n const nodeRef = useRef(null);\n const getHeaderNode = useCallback(() => {\n return nodeRef.current;\n }, [nodeRef]);\n const handleTheadMouseEnter = useCallback(() => {\n setIsHeaderHover(true);\n }, []);\n const handleTheadMouseLeave = useCallback(() => {\n setIsHeaderHover(false);\n }, []);\n const getTrs = () => {\n return headerRows.map((row, rowIndex) => {\n const { length } = row;\n const rowKey = String(rowIndex);\n if (length) {\n const notLockLeft = lock !== ColumnLock.left;\n const lastColumnClassName = notLockLeft ? `${prefixCls}-cell-last` : undefined;\n const hasPlaceholder = tableStore.overflowY && rowIndex === 0 && notLockLeft;\n const tds = row.map((col, index) => {\n if (!col.hidden) {\n const { key, rowSpan, colSpan, children } = col;\n const cellProps = {\n key,\n columnGroup: col,\n getHeaderNode,\n rowIndex,\n };\n if (notLockLeft && !hasPlaceholder && index === length - 1 && columnGroups.lastLeaf === col.lastLeaf) {\n cellProps.className = lastColumnClassName;\n }\n if (rowSpan > 1 || children) {\n cellProps.rowSpan = rowSpan;\n }\n if (colSpan > 1 || children) {\n cellProps.colSpan = colSpan;\n }\n return (React.createElement(TableHeaderCell, Object.assign({}, cellProps)));\n }\n return undefined;\n });\n if (hasPlaceholder) {\n const placeHolderProps = {\n key: 'fixed-column',\n rowSpan: headerRows.length,\n };\n const classList = [`${prefixCls}-cell`, lastColumnClassName];\n if (isStickySupport() && tableStore.overflowX) {\n placeHolderProps.style = tableStore.isAnyColumnsRightLock ? { right: 0 } : {};\n classList.push(`${prefixCls}-cell-fix-right`);\n }\n placeHolderProps.className = classList.join(' ');\n tds.push(React.createElement(\"th\", Object.assign({}, placeHolderProps), \"\\u00A0\"));\n }\n return (React.createElement(TableHeaderRow, { key: rowKey, rowIndex: rowIndex, rows: headerRows, lock: lock }, tds));\n }\n return React.createElement(\"tr\", { key: rowKey });\n });\n };\n const theadProps = {\n ref: nodeRef,\n className: classNames(`${prefixCls}-thead`, {\n [`${prefixCls}-column-resizing`]: columnResizing,\n [`${prefixCls}-column-resizable`]: columnResizable,\n [`${prefixCls}-thead-hover`]: isHeaderHover || columnResizing,\n }),\n };\n if (!isStickySupport() && !border && tableStore.overflowX) {\n theadProps.onMouseEnter = handleTheadMouseEnter;\n theadProps.onMouseLeave = handleTheadMouseLeave;\n }\n return (React.createElement(\"thead\", Object.assign({}, theadProps), getTrs()));\n});\nTableHeader.displayName = 'TableHeader';\nexport default TableHeader;\n","import React, { cloneElement, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';\nimport { action } from 'mobx';\nimport { useInView } from 'react-intersection-observer';\nimport { observer } from 'mobx-react-lite';\nimport raf from 'raf';\nimport omit from 'lodash/omit';\nimport noop from 'lodash/noop';\nimport isString from 'lodash/isString';\nimport debounce from 'lodash/debounce';\nimport defaultTo from 'lodash/defaultTo';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { minColumnWidth } from './Column';\nimport TableContext from './TableContext';\nimport Icon from '../icon';\nimport EventManager from '../_util/EventManager';\nimport { getColumnLock, getHeader, getMaxClientWidth, isStickySupport } from './utils';\nimport { ColumnAlign, ColumnLock, TableColumnTooltip } from './enum';\nimport { ShowHelp } from '../field/enum';\nimport Tooltip from '../tooltip/Tooltip';\nimport transform from '../_util/transform';\nimport { hide, show } from '../tooltip/singleton';\nimport isOverflow from '../overflow-tip/util';\nimport { CUSTOMIZED_KEY } from './TableStore';\nconst TableHeaderCell = observer(function TableHeaderCell(props) {\n const { columnGroup, rowSpan, colSpan, className, rowIndex, getHeaderNode = noop } = props;\n const { column, key, prev } = columnGroup;\n const { rowHeight, border, prefixCls, tableStore, dataSet, aggregation, autoMaxWidth, onColumnResize = noop } = useContext(TableContext);\n const { columnResizable } = tableStore;\n const { headerClassName, headerStyle = {}, name, align, children, command, lock, } = column;\n const field = dataSet.getField(name);\n const needIntersection = tableStore.virtualCell && tableStore.overflowX;\n const { ref, inView } = useInView({\n root: needIntersection ? tableStore.node.wrapper : undefined,\n rootMargin: '100px',\n });\n const header = getHeader(column, dataSet, aggregation);\n const globalRef = useRef({\n bodyLeft: 0,\n resizeBoundary: 0,\n });\n const resizeEvent = useMemo(() => new EventManager(typeof window === 'undefined' ? undefined : document), []);\n const setSplitLineHidden = useCallback((hidden) => {\n const { node: { resizeLine }, } = tableStore;\n if (resizeLine) {\n resizeLine.style.display = hidden ? 'none' : 'block';\n }\n }, [tableStore]);\n const setSplitLinePosition = useCallback(action((left) => {\n const { node: { resizeLine }, } = tableStore;\n const { bodyLeft } = globalRef.current;\n left -= bodyLeft;\n if (left < 0) {\n left = 0;\n }\n if (resizeLine) {\n transform(`translateX(${pxToRem(left) || 0})`, resizeLine.style);\n }\n return left + bodyLeft;\n }), [tableStore, globalRef]);\n const resize = useCallback((e) => {\n const { current } = globalRef;\n const { resizeColumnGroup } = current;\n if (resizeColumnGroup) {\n const limit = current.resizeBoundary + minColumnWidth(resizeColumnGroup.column);\n let left = e.clientX;\n if (left < limit) {\n left = limit;\n }\n current.resizePosition = setSplitLinePosition(left);\n }\n }, [globalRef, setSplitLinePosition]);\n const resizeEnd = useCallback(action(() => {\n tableStore.columnResizing = false;\n setSplitLineHidden(true);\n resizeEvent.removeEventListener('mousemove').removeEventListener('mouseup');\n const { resizePosition, resizeColumnGroup } = globalRef.current;\n if (resizePosition !== undefined && resizeColumnGroup) {\n const { column: resizeColumn } = resizeColumnGroup;\n const newWidth = Math.round(Math.max(resizePosition - globalRef.current.resizeBoundary, minColumnWidth(resizeColumn)));\n if (newWidth !== resizeColumn.width) {\n const { width } = resizeColumn;\n let group = resizeColumnGroup;\n const { node: { element } } = tableStore;\n while (group) {\n const { column: col } = group;\n if (col.width === undefined) {\n const th = element.querySelector(`.${prefixCls}-thead .${prefixCls}-cell[data-index=\"${col.name}\"]`);\n if (th) {\n tableStore.changeCustomizedColumnValue(col, {\n width: th.offsetWidth,\n });\n }\n }\n group = group.prev;\n }\n if (width === undefined) {\n raf(() => {\n tableStore.changeCustomizedColumnValue(resizeColumn, {\n width: newWidth,\n });\n });\n }\n else {\n tableStore.changeCustomizedColumnValue(resizeColumn, {\n width: newWidth,\n });\n }\n }\n /**\n * onColumnResize 事件回调\n * 回调参数:\n * @param column\n * @param width\n */\n onColumnResize({ column: resizeColumn, width: newWidth });\n }\n }), [globalRef, tableStore, setSplitLineHidden, resizeEvent]);\n const resizeStart = useCallback(action((e) => {\n tableStore.columnResizing = true;\n delete globalRef.current.resizePosition;\n setSplitLineHidden(false);\n const { node: { element } } = tableStore;\n const { left } = element.getBoundingClientRect();\n globalRef.current.bodyLeft = border ? left + 1 : left;\n setSplitLinePosition(e.clientX);\n resizeEvent\n .addEventListener('mousemove', resize)\n .addEventListener('mouseup', resizeEnd);\n }), [tableStore, globalRef, setSplitLineHidden, setSplitLinePosition, resizeEvent]);\n const delayResizeStart = useCallback(debounce(resizeStart, 300), [resizeStart]);\n const prevColumnGroup = columnResizable ? prev && prev.lastLeaf : undefined;\n const currentColumnGroup = columnResizable ? columnGroup.lastLeaf : undefined;\n const handleClick = useCallback(() => {\n if (name) {\n dataSet.sort(name);\n }\n }, [dataSet, name]);\n const handleMouseEnter = useCallback((e) => {\n const tooltip = tableStore.getColumnTooltip(column);\n const { currentTarget } = e;\n if (!tableStore.columnResizing && (tooltip === TableColumnTooltip.always || (tooltip === TableColumnTooltip.overflow && isOverflow(currentTarget)))) {\n show(currentTarget, {\n title: header,\n placement: 'right',\n theme: getTooltipTheme('table-cell'),\n });\n globalRef.current.tooltipShown = true;\n }\n }, [tableStore, column, globalRef]);\n const handleMouseLeave = useCallback(() => {\n if (globalRef.current.tooltipShown) {\n hide();\n delete globalRef.current.tooltipShown;\n }\n }, [globalRef]);\n const setResizeGroup = useCallback((group) => {\n globalRef.current.resizeColumnGroup = group;\n const headerDom = getHeaderNode();\n const node = headerDom && headerDom.querySelector(`[data-index=\"${group.key}\"]`);\n if (node) {\n globalRef.current.resizeBoundary = Math.round(node.getBoundingClientRect().left);\n }\n }, [globalRef, getHeaderNode]);\n const handleLeftResize = useCallback((e) => {\n if (prevColumnGroup) {\n setResizeGroup(prevColumnGroup);\n if (autoMaxWidth) {\n e.persist();\n delayResizeStart(e);\n }\n else {\n resizeStart(e);\n }\n }\n }, [prevColumnGroup, setResizeGroup, autoMaxWidth, delayResizeStart, resizeStart]);\n const handleStopResize = useCallback(() => {\n delayResizeStart.cancel();\n }, [delayResizeStart]);\n const handleRightResize = useCallback((e) => {\n if (currentColumnGroup) {\n setResizeGroup(currentColumnGroup);\n if (autoMaxWidth) {\n e.persist();\n delayResizeStart(e);\n }\n else {\n resizeStart(e);\n }\n }\n }, [currentColumnGroup, setResizeGroup, autoMaxWidth, delayResizeStart, resizeStart]);\n const resizeDoubleClick = useCallback(action(() => {\n const { resizeColumnGroup } = globalRef.current;\n if (resizeColumnGroup) {\n const { column: col } = resizeColumnGroup;\n const { node: { element } } = tableStore;\n const maxWidth = Math.max(...[\n ...element.querySelectorAll(`[data-index=\"${resizeColumnGroup.key}\"] > .${prefixCls}-cell-inner`),\n ].map((node) => node.parentNode.offsetWidth + getMaxClientWidth(node) - node.clientWidth + 1), minColumnWidth(col), col.width ? col.width : 0);\n if (maxWidth !== col.width) {\n tableStore.changeCustomizedColumnValue(col, {\n width: maxWidth,\n });\n }\n else if (col.minWidth) {\n tableStore.changeCustomizedColumnValue(col, {\n width: col.minWidth,\n });\n }\n }\n }), [globalRef, prefixCls, tableStore]);\n const handleLeftDoubleClick = useCallback(() => {\n delayResizeStart.cancel();\n resizeDoubleClick();\n }, [delayResizeStart, resizeDoubleClick]);\n const handleRightDoubleClick = useCallback(() => {\n delayResizeStart.cancel();\n resizeDoubleClick();\n }, [delayResizeStart, resizeDoubleClick]);\n const renderResizer = () => {\n const resizerPrefixCls = `${prefixCls}-resizer`;\n const pre = prevColumnGroup && prevColumnGroup.column.resizable && (React.createElement(\"div\", { key: \"pre\", className: `${resizerPrefixCls} ${resizerPrefixCls}-left`, onDoubleClick: autoMaxWidth ? handleLeftDoubleClick : undefined, onMouseDown: handleLeftResize, onMouseUp: autoMaxWidth ? handleStopResize : undefined }));\n const next = currentColumnGroup && currentColumnGroup.column.resizable && (React.createElement(\"div\", { key: \"next\", className: `${resizerPrefixCls} ${resizerPrefixCls}-right`, onDoubleClick: autoMaxWidth ? handleRightDoubleClick : undefined, onMouseDown: handleRightResize, onMouseUp: autoMaxWidth ? handleStopResize : undefined }));\n return [pre, next];\n };\n const getHelpIcon = () => {\n if (column.showHelp !== ShowHelp.none) {\n const fieldHelp = defaultTo(field && field.get('help'), column.help);\n if (fieldHelp) {\n return (React.createElement(Tooltip, { title: fieldHelp, placement: \"bottom\", key: \"help\" },\n React.createElement(Icon, { type: \"help_outline\", className: `${prefixCls}-help-icon` })));\n }\n }\n };\n useEffect(() => () => {\n resizeEvent.clear();\n delayResizeStart.cancel();\n if (globalRef.current.tooltipShown) {\n hide();\n delete globalRef.current.tooltipShown;\n }\n }, []);\n useEffect(() => {\n if (needIntersection) {\n columnGroup.setInView(inView);\n }\n else if (columnGroup.inView !== undefined) {\n columnGroup.setInView(undefined);\n }\n }, [needIntersection, columnGroup, inView]);\n const columnLock = isStickySupport() && tableStore.overflowX && getColumnLock(lock);\n const classList = [`${prefixCls}-cell`];\n const cellStyle = {\n textAlign: align ||\n (command || (children && children.length) ? ColumnAlign.center : getConfig('tableColumnAlign')(column, field)),\n ...headerStyle,\n };\n if (columnLock) {\n classList.push(`${prefixCls}-cell-fix-${columnLock}`);\n if (columnLock === ColumnLock.left) {\n cellStyle.left = pxToRem(columnGroup.left);\n }\n else if (columnLock === ColumnLock.right) {\n cellStyle.right = pxToRem(columnGroup.right + (rowIndex === 0 && tableStore.overflowY ? measureScrollbar() : 0));\n }\n }\n if (className) {\n classList.push(className);\n }\n if (headerClassName) {\n classList.push(headerClassName);\n }\n const headerNode = isValidElement(header) ? (cloneElement(header, { key: 'text' })) : isString(header) ? (React.createElement(\"span\", { key: \"text\" }, header)) : (header);\n // 帮助按钮\n const helpIcon = getHelpIcon();\n // 排序按钮\n const sortIcon = !column.aggregation && column.sortable && name ? (React.createElement(Icon, { key: \"sort\", type: \"arrow_upward\", className: `${prefixCls}-sort-icon` })) : undefined;\n const childNodes = [\n headerNode,\n ];\n const innerClassNames = [`${prefixCls}-cell-inner`];\n const innerProps = {\n children: childNodes,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n };\n if (helpIcon) {\n if (cellStyle.textAlign === ColumnAlign.right) {\n childNodes.unshift(helpIcon);\n }\n else {\n childNodes.push(helpIcon);\n }\n }\n if (sortIcon) {\n if (field && field.order) {\n classList.push(`${prefixCls}-sort-${field.order}`);\n }\n innerProps.onClick = handleClick;\n if (cellStyle.textAlign === ColumnAlign.right) {\n childNodes.unshift(sortIcon);\n }\n else {\n childNodes.push(sortIcon);\n }\n }\n if (rowHeight !== 'auto') {\n const height = Number(cellStyle.height) || (rowHeight * (rowSpan || 1));\n innerProps.style = {\n height: pxToRem(height),\n lineHeight: pxToRem(height - 2),\n };\n innerClassNames.push(`${prefixCls}-cell-inner-row-height-fixed`);\n }\n if (key === CUSTOMIZED_KEY && isStickySupport() && tableStore.stickyRight && tableStore.overflowX && tableStore.columnGroups.rightLeafs.length === 1) {\n classList.push(`${prefixCls}-cell-sticky-shadow`);\n }\n const thProps = {\n className: classList.join(' '),\n rowSpan,\n colSpan,\n 'data-index': key,\n style: omit(cellStyle, ['width', 'height']),\n };\n if (needIntersection) {\n thProps.ref = ref;\n }\n return (React.createElement(\"th\", Object.assign({}, thProps),\n React.createElement(\"div\", Object.assign({}, innerProps, { className: innerClassNames.join(' ') })),\n columnResizable && renderResizer()));\n});\nTableHeaderCell.displayName = 'TableHeaderCell';\nexport default TableHeaderCell;\n","import React, { useCallback, useContext } from 'react';\nimport { action, get, set } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport ResizeObservedRow from './ResizeObservedRow';\nimport TableContext from './TableContext';\nimport { isStickySupport } from './utils';\nconst TableHeaderRow = observer(function TableHeaderRow(props) {\n const { rowIndex, lock, children, rows } = props;\n const { rowHeight, tableStore } = useContext(TableContext);\n const setRowHeight = useCallback(action((index, height) => {\n set(tableStore.lockColumnsHeadRowsHeight, index, height);\n }), [tableStore]);\n const getRowHeight = (index) => {\n return get(tableStore.lockColumnsHeadRowsHeight, index) || 0;\n };\n const getHeaderRowStyle = () => {\n const height = getRowHeight(rowIndex);\n return pxToRem(rows\n .slice(rowIndex + 1)\n .reduce((total, r, index) => r.length\n ? total\n : total +\n getRowHeight(index + rowIndex + 1), height));\n };\n const needStoreRowHeight = !isStickySupport() && (rowHeight === 'auto' || rows.length > 1);\n const style = lock && needStoreRowHeight ? {\n height: getHeaderRowStyle(),\n } : undefined;\n const tr = (React.createElement(\"tr\", { style: style }, children));\n return !lock && needStoreRowHeight ? (React.createElement(ResizeObservedRow, { onResize: setRowHeight, rowIndex: rowIndex }, tr)) : tr;\n});\nTableHeaderRow.displayName = 'TableHeaderRow';\nexport default TableHeaderRow;\n","import React, { cloneElement, isValidElement, useCallback, useContext, useEffect, useRef, } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { action, get, reaction, remove, set } from 'mobx';\nimport classNames from 'classnames';\nimport defer from 'lodash/defer';\nimport { useInView } from 'react-intersection-observer';\nimport { Size } from 'choerodon-ui/lib/_util/enum';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport TableCell from './TableCell';\nimport TableContext from './TableContext';\nimport ExpandIcon from './ExpandIcon';\nimport { ColumnLock, DragColumnAlign, HighLightRowType, SelectionMode } from './enum';\nimport { findCell, getColumnKey, getColumnLock, isDisabledRow, isSelectedRow, isStickySupport } from './utils';\nimport { CUSTOMIZED_KEY, DRAG_KEY, EXPAND_KEY, SELECTION_KEY } from './TableStore';\nimport { RecordStatus } from '../data-set/enum';\nimport ResizeObservedRow from './ResizeObservedRow';\nimport Spin from '../spin';\nimport useComputed from '../use-computed';\nconst TableRow = observer(function TableRow(props) {\n const { record, hidden, index, provided, snapshot, className, lock, columnGroups, children } = props;\n const context = useContext(TableContext);\n const { tableStore, prefixCls, dataSet, selectionMode, onRow, rowRenderer, parityRow, aggregation, rowHeight, expandIconAsCell, expandedRowRenderer, expandRowByClick, isTree, canTreeLoadData, } = context;\n const { highLightRow, selectedHighLightRow, mouseBatchChooseState, dragColumnAlign, rowDraggable, showRemovedRow, node, } = tableStore;\n const { id, key: rowKey } = record;\n const needIntersection = !hidden && tableStore.virtualCell;\n const { ref: intersectionRef, inView, entry } = useInView({\n root: needIntersection && tableStore.overflowY ? node.tableBodyWrap || node.element : undefined,\n rootMargin: '100px',\n initialInView: index <= 10,\n });\n const disabled = isDisabledRow(record);\n const rowRef = useRef(null);\n const childrenRenderedRef = useRef();\n const needSaveRowHeight = isStickySupport() ? false : (!lock && (rowHeight === 'auto' || (aggregation && tableStore.hasAggregationColumn) || [...record.fields.values()].some(field => field.get('multiLine'))));\n const rowExternalProps = useComputed(() => ({\n ...(typeof rowRenderer === 'function' ? rowRenderer(record, index) : {}),\n ...(typeof onRow === 'function'\n ? onRow({\n dataSet,\n record,\n expandedRow: false,\n index,\n })\n : {}),\n }), [record, dataSet, index, onRow, rowRenderer]);\n const isLoading = tableStore.isRowPending(record);\n const isLoaded = tableStore.isRowLoaded(record);\n const isExpanded = tableStore.isRowExpanded(record);\n const isHover = tableStore.isRowHover(record);\n const expandable = (() => {\n const { isLeaf } = rowExternalProps;\n if (isLeaf === true) {\n return false;\n }\n return !!expandedRowRenderer || (isTree && (!!record.children || (canTreeLoadData && !isLoaded)));\n })();\n const setRowHeight = useCallback(action((key, height) => {\n set(tableStore.lockColumnsBodyRowsHeight, key, height);\n }), [tableStore]);\n const saveRef = useCallback(action((row) => {\n rowRef.current = row;\n if (row && needSaveRowHeight) {\n setRowHeight(rowKey, row.offsetHeight);\n }\n else if (get(tableStore.lockColumnsBodyRowsHeight, rowKey)) {\n remove(tableStore.lockColumnsBodyRowsHeight, rowKey);\n }\n if (provided) {\n provided.innerRef(row);\n }\n if (needIntersection && typeof intersectionRef === 'function') {\n intersectionRef(row);\n }\n }), [rowRef, intersectionRef, needIntersection, needSaveRowHeight, rowKey, provided]);\n const handleMouseEnter = useCallback(() => {\n if (highLightRow) {\n tableStore.setRowHover(record, true);\n }\n }, [highLightRow, tableStore, record]);\n const handleMouseLeave = useCallback(() => {\n if (highLightRow) {\n tableStore.setRowHover(record, false);\n }\n }, [highLightRow, tableStore, record]);\n const handleSelection = useCallback(() => {\n dataSet[record.isSelected ? 'unSelect' : 'select'](record);\n }, [record, dataSet]);\n const handleClickCapture = useCallback(action((e) => {\n if (!isDisabledRow(record) && e.target.dataset.selectionKey !== SELECTION_KEY) {\n dataSet.current = record;\n }\n const { onClickCapture } = rowExternalProps;\n if (typeof onClickCapture === 'function') {\n onClickCapture(e);\n }\n }), [record, dataSet, rowExternalProps]);\n const handleClick = useCallback(action((e) => {\n const { onClick } = rowExternalProps;\n if (highLightRow === HighLightRowType.click && !tableStore.rowClicked) {\n tableStore.rowClicked = true;\n }\n if (typeof onClick === 'function') {\n return onClick(e);\n }\n }), [tableStore, rowExternalProps]);\n const handleSelectionByClick = useCallback(async (e) => {\n if (await handleClick(e) !== false) {\n handleSelection();\n }\n }, [handleClick, handleSelection]);\n const handleSelectionByMouseDown = useCallback((e) => {\n handleSelection();\n const { onMouseDown } = rowExternalProps;\n if (typeof onMouseDown === 'function') {\n onMouseDown(e);\n }\n }, [handleSelection, rowExternalProps]);\n const handleSelectionByDblClick = useCallback((e) => {\n handleSelection();\n const { onDoubleClick } = rowExternalProps;\n if (typeof onDoubleClick === 'function') {\n onDoubleClick(e);\n }\n }, [handleSelection, rowExternalProps]);\n const handleExpandChange = useCallback(() => {\n if (expandable) {\n tableStore.setRowExpanded(record, !isExpanded);\n }\n }, [tableStore, record, expandable, isExpanded]);\n const focusRow = useCallback(() => {\n const { current } = rowRef;\n if (current) {\n if (!lock && !tableStore.editing) {\n const { element } = node;\n const { activeElement } = document;\n if (element &&\n element.contains(activeElement) &&\n (isStickySupport() ? !current.contains(activeElement) : Array.from(element.querySelectorAll(`tr[data-index=\"${record.id}\"]`)).every(tr => !tr.contains(activeElement)))) {\n current.focus();\n }\n // table 包含目前被focus的element\n // 找到当前组件对应record生成的组件对象 然后遍历 每个 tr里面不是focus的目标那么这个函数触发row.focus\n }\n if (tableStore.overflowY) {\n const { offsetParent } = current;\n if (offsetParent) {\n const tableBodyWrap = offsetParent.parentNode;\n if (tableBodyWrap) {\n const { offsetTop, offsetHeight } = current;\n const { scrollTop, offsetHeight: height } = tableBodyWrap;\n const bottomSide = offsetTop + offsetHeight - height + measureScrollbar();\n let st = scrollTop;\n if (st < bottomSide) {\n st = bottomSide;\n }\n if (st > offsetTop) {\n st = offsetTop + 1;\n }\n if (st !== scrollTop) {\n tableBodyWrap.scrollTop = st;\n // node.handleBodyScrollTop({\n // target: tableBodyWrap,\n // currentTarget: tableBodyWrap,\n // });\n }\n }\n }\n }\n }\n }, [rowRef, tableStore, lock, node]);\n // componentDidMount\n useEffect(() => {\n if (record.status === RecordStatus.add && tableStore.autoFocus) {\n const editor = [...tableStore.editors.values()][0];\n if (editor && (isStickySupport() || getColumnLock(editor.props.column.lock) === getColumnLock(lock))) {\n const cell = findCell(tableStore, getColumnKey(editor.props.column), lock);\n if (cell) {\n defer(() => cell.focus());\n }\n }\n }\n // componentWillUnmount\n return () => {\n /**\n * Fixed the when row resize has scrollbar the expanded row would be collapsed\n */\n if (!tableStore.isRowExpanded(record)) {\n tableStore.setRowExpanded(record, false, true);\n }\n if (!isStickySupport()) {\n remove(tableStore.lockColumnsBodyRowsHeight, rowKey);\n }\n };\n }, []);\n useEffect(() => {\n if (!isLoading && expandable && isExpanded && !isLoaded && tableStore.canTreeLoadData && !record.children) {\n tableStore.onTreeNodeLoad({ record });\n }\n }, [isLoading, expandable, isExpanded, isLoaded, tableStore, record]);\n useEffect(() => {\n return reaction(() => record.isCurrent, isCurrent => isCurrent && focusRow());\n }, [record, focusRow]);\n const renderExpandRow = () => {\n if (expandable && (isExpanded || childrenRenderedRef.current)) {\n const expandRows = [];\n childrenRenderedRef.current = true;\n if (expandedRowRenderer) {\n const expandRowExternalProps = typeof onRow === 'function'\n ? onRow({\n dataSet,\n record,\n expandedRow: true,\n index,\n })\n : {};\n const classString = classNames(`${prefixCls}-expanded-row`, expandRowExternalProps.className);\n const rowProps = {\n key: `${rowKey}-expanded-row`,\n className: classString,\n style: { ...expandRowExternalProps.style },\n };\n if (!isStickySupport() && (tableStore.overflowX || !record.isCurrent)) {\n rowProps.onMouseEnter = handleMouseEnter;\n rowProps.onMouseLeave = handleMouseLeave;\n }\n if (!isExpanded) {\n rowProps.hidden = true;\n }\n const Element = isExpanded || !parityRow ? 'tr' : 'div';\n expandRows.push(React.createElement(Element, Object.assign({}, expandRowExternalProps, rowProps),\n expandIconAsCell && React.createElement(\"td\", { className: `${prefixCls}-cell`, key: EXPAND_KEY }),\n React.createElement(\"td\", { key: `${EXPAND_KEY}-rest`, className: `${prefixCls}-cell`, colSpan: columnGroups.leafs.length - (expandIconAsCell ? 1 : 0) },\n React.createElement(\"div\", { className: `${prefixCls}-cell-inner` }, expandedRowRenderer({ dataSet, record })))));\n }\n if (isValidElement(children)) {\n expandRows.push(cloneElement(children, { isExpanded, key: `${rowKey}-expanded-rows` }));\n }\n return expandRows;\n }\n return [];\n };\n const renderExpandIcon = () => {\n const { expandIcon } = tableStore;\n if (typeof expandIcon === 'function') {\n return expandIcon({\n prefixCls,\n expanded: isExpanded,\n expandable,\n needIndentSpaced: !expandable,\n record,\n onExpand: handleExpandChange,\n });\n }\n if (tableStore.isRowPending(record)) {\n return React.createElement(Spin, { size: Size.small });\n }\n return (React.createElement(ExpandIcon, { prefixCls: prefixCls, expandable: expandable, onChange: handleExpandChange, expanded: isExpanded }));\n };\n const hasExpandIcon = (columnIndex) => {\n return (!expandRowByClick &&\n (expandedRowRenderer || isTree) &&\n (lock === ColumnLock.right ? columnIndex + columnGroups.leafs.filter(group => group.column.lock !== ColumnLock.right).length : columnIndex) === tableStore.expandIconColumnIndex);\n };\n const getCell = (columnGroup, columnIndex, rest) => (React.createElement(TableCell, Object.assign({ columnGroup: columnGroup, record: record, isDragging: snapshot ? snapshot.isDragging : false, lock: lock, provided: rest.key === DRAG_KEY ? provided : undefined, inView: needIntersection ? inView : undefined }, rest), hasExpandIcon(columnIndex) ? renderExpandIcon() : undefined));\n const getColumns = () => {\n const { customizable } = tableStore;\n const { leafs } = columnGroups;\n const columnLength = leafs.length;\n return leafs.map((columnGroup, columnIndex) => {\n const { key } = columnGroup;\n if (key !== CUSTOMIZED_KEY) {\n const colSpan = customizable && lock !== ColumnLock.left && (!rowDraggable || dragColumnAlign !== DragColumnAlign.right) && columnIndex === columnLength - 2 ? 2 : 1;\n const rest = {\n key,\n disabled,\n };\n if (colSpan > 1) {\n rest.colSpan = colSpan;\n }\n return getCell(columnGroup, columnIndex, rest);\n }\n return undefined;\n });\n };\n const rowPrefixCls = `${prefixCls}-row`;\n const classString = classNames(rowPrefixCls, {\n [`${rowPrefixCls}-current`]: highLightRow && record.isCurrent && (highLightRow === HighLightRowType.click ? tableStore.rowClicked : highLightRow === HighLightRowType.focus ? node.isFocused : highLightRow),\n [`${rowPrefixCls}-hover`]: !isStickySupport() && highLightRow && isHover,\n [`${rowPrefixCls}-selected`]: selectedHighLightRow && isSelectedRow(record),\n [`${rowPrefixCls}-disabled`]: disabled,\n [`${rowPrefixCls}-mouse-batch-choose`]: mouseBatchChooseState && record.selectable && (tableStore.mouseBatchChooseIdList || []).includes(id),\n [`${rowPrefixCls}-expanded`]: expandable && isExpanded,\n }, className, // 增加可以自定义类名满足拖拽功能\n rowExternalProps.className);\n const { style } = rowExternalProps;\n const rowProps = {\n ref: saveRef,\n className: classString,\n onClick: handleClick,\n onClickCapture: handleClickCapture,\n tabIndex: -1,\n disabled,\n 'data-index': id,\n };\n if (!isStickySupport() && tableStore.overflowX) {\n rowProps.onMouseEnter = handleMouseEnter;\n rowProps.onMouseLeave = handleMouseLeave;\n }\n if (hidden || (!showRemovedRow && record.status === RecordStatus.delete)) {\n rowProps.hidden = true;\n }\n const Element = hidden && parityRow ? 'div' : 'tr';\n if (selectionMode === SelectionMode.click) {\n rowProps.onClick = handleSelectionByClick;\n }\n else if (selectionMode === SelectionMode.dblclick) {\n rowProps.onDoubleClick = handleSelectionByDblClick;\n }\n else if (selectionMode === SelectionMode.mousedown) {\n rowProps.onMouseDown = handleSelectionByMouseDown;\n }\n if (rowDraggable && provided) {\n Object.assign(rowProps, provided.draggableProps);\n rowProps.style = {\n ...provided.draggableProps.style, ...style,\n width: Math.max(tableStore.columnGroups.width, tableStore.width || 0),\n };\n if (!dragColumnAlign) {\n rowProps.style.cursor = 'move';\n Object.assign(rowProps, provided.dragHandleProps);\n }\n }\n else if (style) {\n rowProps.style = { ...style };\n }\n const height = needIntersection && (inView !== true || !columnGroups.inView) ? entry ? entry.boundingClientRect.height :\n pxToRem((rowHeight === 'auto' ? 30 : rowHeight) * (aggregation && tableStore.hasAggregationColumn ? 4 : 1)) : lock ?\n pxToRem(get(tableStore.lockColumnsBodyRowsHeight, rowKey)) : undefined;\n if (height) {\n if (rowProps.style) {\n rowProps.style.height = height;\n }\n else {\n rowProps.style = { height };\n }\n }\n const tr = (React.createElement(Element, Object.assign({ key: rowKey }, rowExternalProps, rowProps), getColumns()));\n return (React.createElement(React.Fragment, null,\n needSaveRowHeight ? (React.createElement(ResizeObservedRow, { onResize: setRowHeight, rowIndex: rowKey, key: rowKey }, tr)) : tr,\n renderExpandRow()));\n});\nTableRow.displayName = 'TableRow';\nexport default TableRow;\n","import { __decorate } from \"tslib\";\nimport React, { Children, isValidElement } from 'react';\nimport { action, computed, get, observable, runInAction, set } from 'mobx';\nimport sortBy from 'lodash/sortBy';\nimport debounce from 'lodash/debounce';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { isCalcSize, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig, getCustomizable, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { getTooltip } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport Icon from 'choerodon-ui/lib/icon';\nimport isFunction from 'lodash/isFunction';\nimport { ColumnDefaultProps } from './Column';\nimport CustomizationSettings from './customization-settings/CustomizationSettings';\nimport isFragment from '../_util/isFragment';\nimport ObserverCheckBox from '../check-box/CheckBox';\nimport ObserverRadio from '../radio/Radio';\nimport { DataSetSelection } from '../data-set/enum';\nimport { ColumnAlign, ColumnLock, DragColumnAlign, RowBoxPlacement, ScrollPosition, SelectionMode, TableAutoHeightType, TableColumnTooltip, TableEditMode, TableHeightType, TableMode, } from './enum';\nimport { stopPropagation } from '../_util/EventManager';\nimport { getColumnKey, getHeader } from './utils';\nimport getReactNodeText from '../_util/getReactNodeText';\nimport ColumnGroups from './ColumnGroups';\nimport autobind from '../_util/autobind';\nimport { Size } from '../core/enum';\nimport { $l } from '../locale-context';\nimport CustomizationColumnHeader from './customization-settings/CustomizationColumnHeader';\nimport Dropdown from '../dropdown/Dropdown';\nimport Menu from '../menu';\nimport { treeSome } from '../_util/treeUtils';\nexport const SELECTION_KEY = '__selection-column__'; // TODO:Symbol\nexport const ROW_NUMBER_KEY = '__row-number-column__'; // TODO:Symbol\nexport const DRAG_KEY = '__drag-column__'; // TODO:Symbol\nexport const EXPAND_KEY = '__expand-column__'; // TODO:Symbol\nexport const CUSTOMIZED_KEY = '__customized-column__'; // TODO:Symbol\nexport const AGGREGATION_EXPAND_CELL_KEY = '__aggregation-expand-cell__'; // TODO:Symbol\nfunction columnFilter(column) {\n return Boolean(column);\n}\n// function hasProperty<T>(target: T, property: string): (keyof T) is undefined {\n// return property in target;\n// }\nexport function getIdList(store) {\n const { mouseBatchChooseStartId, mouseBatchChooseEndId, node: { element }, prefixCls } = store;\n const rows = Array.from(element.querySelectorAll(`.${prefixCls}-row`));\n let endId;\n const idList = [];\n rows.some((row) => {\n const index = Number(row.dataset.index);\n if (!endId) {\n if (mouseBatchChooseStartId === index) {\n endId = mouseBatchChooseEndId;\n }\n else if (mouseBatchChooseEndId === index) {\n endId = mouseBatchChooseStartId;\n }\n }\n if (endId) {\n idList.push(index);\n }\n return endId === index;\n });\n return idList;\n}\nfunction getRowNumbers(record, dataSet, isTree) {\n if (record && dataSet) {\n const { paging, currentPage, pageSize } = dataSet;\n const pageIndex = (isTree ? paging === 'server' : paging) ? (currentPage - 1) * pageSize : 0;\n if (isTree) {\n return record.path.map((r, index) => r.indexInParent + 1 + (index === 0 ? pageIndex : 0));\n }\n return [record.index + 1 + pageIndex];\n }\n return [0];\n}\nfunction hasCheckField({ editor, name, hidden }, checkField) {\n return !hidden && !!editor && checkField === name;\n}\nfunction renderSelectionBox({ record, store }) {\n const { dataSet } = record;\n if (dataSet) {\n const { selection } = dataSet;\n const handleChange = value => {\n if (store.props.selectionMode === SelectionMode.mousedown) {\n // 将处理逻辑交给 mousedown 的处理逻辑 不然会两次触发导致不被勾选上\n return;\n }\n if (value) {\n dataSet.select(record);\n }\n else {\n dataSet.unSelect(record);\n }\n };\n const handleClick = e => {\n stopPropagation(e);\n if (selection === DataSetSelection.multiple) {\n const { lastSelected } = store;\n if (lastSelected) {\n const nativeEvent = e.nativeEvent;\n let startIndex = -1;\n let endIndex = -1;\n if (nativeEvent.shiftKey) {\n const pointKeys = new Set([lastSelected.key, record.key]);\n dataSet.some((pointRecord, index) => {\n if (pointKeys.has(pointRecord.key)) {\n if (startIndex === -1) {\n startIndex = index;\n }\n else {\n endIndex = index;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex) {\n // Batch update selections\n const rangeRecords = dataSet.slice(startIndex, endIndex + 1);\n const changedRecords = [];\n const selectedKeys = new Set(dataSet.selected.map(selected => selected.key));\n if (record.isSelected) {\n rangeRecords.forEach(rangeRecord => {\n if (selectedKeys.has(rangeRecord.key)) {\n changedRecords.push(rangeRecord);\n }\n });\n dataSet.batchUnSelect(changedRecords);\n }\n else {\n rangeRecords.forEach(rangeRecord => {\n if (!selectedKeys.has(rangeRecord.key)) {\n changedRecords.push(rangeRecord);\n }\n });\n dataSet.batchSelect(changedRecords);\n }\n }\n }\n store.lastSelected = record;\n }\n else if (record.isSelected) {\n dataSet.unSelect(record);\n }\n };\n if (selection === DataSetSelection.multiple) {\n const batchSelectProps = {};\n const handleDragMouseUp = action(() => {\n const { mouseBatchChooseIdList } = store;\n if (store.mouseBatchChooseState) {\n store.mouseBatchChooseState = false;\n store.changeMouseBatchChooseIdList([]);\n const { mouseBatchChooseStartId, mouseBatchChooseEndId } = store;\n if (mouseBatchChooseStartId === mouseBatchChooseEndId) {\n return;\n }\n const startRecord = dataSet.findRecordById(mouseBatchChooseStartId);\n const { isSelected } = startRecord || {};\n if (isSelected) {\n dataSet.batchUnSelect(mouseBatchChooseIdList);\n }\n else {\n dataSet.batchSelect(mouseBatchChooseIdList);\n }\n }\n document.removeEventListener('pointerup', handleDragMouseUp);\n });\n if (store.useMouseBatchChoose) {\n batchSelectProps.onMouseDown = action(() => {\n store.mouseBatchChooseStartId = record.id;\n store.mouseBatchChooseEndId = record.id;\n store.mouseBatchChooseState = true;\n // 为什么使用 pointerup\n // 因为需要对disabled的元素进行特殊处理\n // 因为状态的改变依赖 mouseup 而在disabled的元素上 无法触发mouseup事件\n // 导致状态无法进行修正\n // 以下两种方案通过 pointer-events:none 进行处理\n // https://stackoverflow.com/questions/322378/javascript-check-if-mouse-button-down\n // https://stackoverflow.com/questions/62081666/the-event-of-the-document-is-not-triggered-when-it-is-on-a-disabled-element\n // 而使用指针事件可以突破disabled的限制\n // https://stackoverflow.com/questions/62126515/how-to-get-the-state-of-the-mouse-through-javascript/62127845#62127845\n document.addEventListener('pointerup', handleDragMouseUp);\n });\n batchSelectProps.onMouseEnter = () => {\n if (store.mouseBatchChooseState) {\n store.mouseBatchChooseEndId = record.id;\n store.changeMouseBatchChooseIdList(getIdList(store));\n }\n };\n }\n return (React.createElement(ObserverCheckBox, Object.assign({}, batchSelectProps, { checked: record.isSelected, onChange: handleChange, onClick: handleClick, disabled: !record.selectable, \"data-selection-key\": SELECTION_KEY, value: true })));\n }\n if (selection === DataSetSelection.single) {\n return (React.createElement(ObserverRadio, { checked: record.isSelected, onChange: handleChange, onClick: handleClick, disabled: !record.selectable, \"data-selection-key\": SELECTION_KEY, value: true }));\n }\n }\n}\nexport function mergeDefaultProps(originalColumns, tableAggregation, customizedColumns, parent = null, defaultKey = [0], columnSort = {\n left: 0,\n center: 0,\n right: 0,\n}) {\n const columns = [];\n const leftColumns = [];\n const rightColumns = [];\n let hasAggregationColumn = false;\n originalColumns.forEach((column) => {\n if (isPlainObject(column)) {\n const newColumn = { ...ColumnDefaultProps, ...column };\n if (isNil(getColumnKey(newColumn))) {\n newColumn.key = `anonymous-${defaultKey[0]++}`;\n }\n const { children, aggregation } = newColumn;\n if (!hasAggregationColumn && aggregation) {\n hasAggregationColumn = true;\n }\n if (tableAggregation || !aggregation) {\n if (customizedColumns) {\n Object.assign(newColumn, customizedColumns[getColumnKey(newColumn).toString()]);\n }\n if (parent) {\n newColumn.lock = parent.lock;\n }\n if (children) {\n const [, childrenColumns, , childrenHasAffregationColumn] = mergeDefaultProps(children, tableAggregation, customizedColumns, newColumn, defaultKey);\n newColumn.children = childrenColumns;\n if (!hasAggregationColumn && childrenHasAffregationColumn) {\n hasAggregationColumn = childrenHasAffregationColumn;\n }\n }\n if (parent || !newColumn.lock) {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.center;\n }\n columnSort.center++;\n columns.push(newColumn);\n }\n else if (newColumn.lock === true || newColumn.lock === ColumnLock.left) {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.left;\n }\n columnSort.left++;\n leftColumns.push(newColumn);\n }\n else {\n if (newColumn.sort === undefined) {\n newColumn.sort = columnSort.right;\n }\n columnSort.right++;\n rightColumns.push(newColumn);\n }\n }\n else if (children) {\n const [, nodes, , childrenHasAffregationColumn] = mergeDefaultProps(children, tableAggregation, customizedColumns, parent, defaultKey, parent ? undefined : columnSort);\n if (!hasAggregationColumn && childrenHasAffregationColumn) {\n hasAggregationColumn = childrenHasAffregationColumn;\n }\n if (parent) {\n parent.children = nodes;\n }\n else {\n nodes.forEach((node) => {\n if (!node.lock) {\n columns.push(node);\n }\n else if (node.lock === true || node.lock === ColumnLock.left) {\n leftColumns.push(node);\n }\n else {\n rightColumns.push(node);\n }\n });\n }\n }\n }\n }, []);\n if (parent) {\n return [[], sortBy(columns, ({ sort }) => sort), [], hasAggregationColumn];\n }\n return [\n sortBy(leftColumns, ({ sort }) => sort),\n sortBy(columns, ({ sort }) => sort),\n sortBy(rightColumns, ({ sort }) => sort),\n hasAggregationColumn,\n ];\n}\nexport function normalizeColumns(elements, tableAggregation, customizedColumns, parent = null, defaultKey = [0], columnSort = {\n left: 0,\n center: 0,\n right: 0,\n}) {\n const columns = [];\n const leftColumns = [];\n const rightColumns = [];\n let hasAggregationColumn = false;\n const normalizeColumn = (element) => {\n if (isValidElement(element)) {\n const { props, key, type } = element;\n if (isFragment(element)) {\n const { children } = props;\n if (children) {\n Children.forEach(children, normalizeColumn);\n }\n }\n else if (type.__PRO_TABLE_COLUMN) {\n const column = {\n ...props,\n };\n if (key) {\n column.key = key;\n }\n else if (isNil(getColumnKey(column))) {\n column.key = `anonymous-${defaultKey[0]++}`;\n }\n const { children, aggregation } = column;\n if (!hasAggregationColumn && aggregation) {\n hasAggregationColumn = true;\n }\n if (tableAggregation || !aggregation) {\n if (customizedColumns) {\n Object.assign(column, customizedColumns[getColumnKey(column).toString()]);\n }\n if (parent) {\n column.lock = parent.lock;\n }\n const [, childrenColumns, , childrenHasAffregationColumn] = normalizeColumns(children, tableAggregation, customizedColumns, column, defaultKey);\n column.children = childrenColumns;\n if (!hasAggregationColumn && childrenHasAffregationColumn) {\n hasAggregationColumn = childrenHasAffregationColumn;\n }\n if (parent || !column.lock) {\n if (column.sort === undefined) {\n column.sort = columnSort.center;\n }\n columnSort.center++;\n columns.push(column);\n }\n else if (column.lock === true || column.lock === ColumnLock.left) {\n if (column.sort === undefined) {\n column.sort = columnSort.left;\n }\n columnSort.left++;\n leftColumns.push(column);\n }\n else {\n if (column.sort === undefined) {\n column.sort = columnSort.right;\n }\n columnSort.right++;\n rightColumns.push(column);\n }\n }\n else {\n const [, nodes, , childrenHasAffregationColumn] = normalizeColumns(children, tableAggregation, customizedColumns, parent, defaultKey, parent ? undefined : columnSort);\n if (!hasAggregationColumn && childrenHasAffregationColumn) {\n hasAggregationColumn = childrenHasAffregationColumn;\n }\n if (parent) {\n parent.children = nodes;\n }\n else {\n nodes.forEach((node) => {\n if (!node.lock) {\n columns.push(node);\n }\n else if (node.lock === true || node.lock === ColumnLock.left) {\n leftColumns.push(node);\n }\n else {\n rightColumns.push(node);\n }\n });\n }\n }\n }\n }\n };\n Children.forEach(elements, normalizeColumn);\n if (parent) {\n return [[], sortBy(columns, ({ sort }) => sort), [], hasAggregationColumn];\n }\n return [\n sortBy(leftColumns, ({ sort }) => sort),\n sortBy(columns, ({ sort }) => sort),\n sortBy(rightColumns, ({ sort }) => sort),\n hasAggregationColumn,\n ];\n}\nasync function getHeaderTexts(dataSet, columns, aggregation, headers = []) {\n const column = columns.shift();\n if (column) {\n headers.push({ name: column.name, label: await getReactNodeText(getHeader(column, dataSet, aggregation)) });\n }\n if (columns.length) {\n await getHeaderTexts(dataSet, columns, aggregation, headers);\n }\n return headers;\n}\nexport default class TableStore {\n constructor(node) {\n this.editors = new Map();\n this.mouseBatchChooseStartId = 0;\n this.mouseBatchChooseEndId = 0;\n this.inBatchExpansion = false;\n this.performanceOn = false;\n this.timing = { renderStart: 0, renderEnd: 0 };\n this.handleSelectAllChange = action(value => {\n const { dataSet, filter } = this.props;\n const isSelectAll = value ? dataSet.currentSelected.length === dataSet.records.filter(record => record.selectable).length : !value;\n if (!isSelectAll) {\n dataSet.selectAll(filter);\n }\n else {\n dataSet.unSelectAll();\n if (this.showCachedSelection) {\n dataSet.clearCachedSelected();\n }\n }\n });\n this.saveCustomizedDebounce = debounce(this.saveCustomized, 1000);\n runInAction(() => {\n this.scrollPosition = ScrollPosition.left;\n this.mouseBatchChooseIdList = [];\n this.mouseBatchChooseState = false;\n this.showCachedSelection = false;\n this.lockColumnsHeadRowsHeight = {};\n this.lockColumnsBodyRowsHeight = {};\n this.lockColumnsFootRowsHeight = {};\n this.node = node;\n this.expandedRows = [];\n this.lastScrollTop = 0;\n this.customizedActiveKey = ['columns'];\n this.leftOriginalColumns = [];\n this.originalColumns = [];\n this.rightOriginalColumns = [];\n this.tempCustomized = { columns: {} };\n this.customized = { columns: {} };\n this.setProps(node.props);\n if (this.customizable) {\n this.loadCustomized().then(this.handleLoadCustomized);\n }\n else {\n this.initColumns();\n }\n });\n }\n get bodyHeight() {\n return this.virtual ? this.virtualHeight : this.calcBodyHeight;\n }\n get stickyLeft() {\n return [ScrollPosition.right, ScrollPosition.middle].includes(this.scrollPosition);\n }\n get stickyRight() {\n return [ScrollPosition.left, ScrollPosition.middle].includes(this.scrollPosition);\n }\n get performanceEnabled() {\n const performanceEnabled = getConfig('performanceEnabled');\n return performanceEnabled && performanceEnabled.Table;\n }\n get dataSet() {\n return this.props.dataSet;\n }\n get prefixCls() {\n const { suffixCls, prefixCls } = this.props;\n return getProPrefixCls(suffixCls, prefixCls);\n }\n get customizable() {\n const { customizedCode } = this.props;\n if (customizedCode && (this.columnTitleEditable || this.columnDraggable || this.columnHideable)) {\n if ('customizable' in this.props) {\n return this.props.customizable;\n }\n return getConfig('tableCustomizable') || getCustomizable('Table');\n }\n return false;\n }\n get aggregation() {\n const { aggregation } = this.customized;\n if (aggregation !== undefined) {\n return aggregation;\n }\n const { aggregation: propAggregation } = this.props;\n return propAggregation;\n }\n get aggregationExpandType() {\n return this.customized.aggregationExpandType || 'cell';\n }\n get autoHeight() {\n const { autoHeight } = this.props;\n if (autoHeight) {\n const defaultAutoHeight = {\n type: TableAutoHeightType.minHeight,\n diff: getConfig('tableAutoHeightDiff') || 80,\n };\n if (isObject(autoHeight)) {\n return {\n ...defaultAutoHeight,\n ...autoHeight,\n };\n }\n return defaultAutoHeight;\n }\n return undefined;\n }\n get heightType() {\n const tempHeightType = get(this.tempCustomized, 'heightType');\n if (tempHeightType !== undefined) {\n return tempHeightType;\n }\n const { heightType } = this.customized;\n if (heightType !== undefined) {\n return heightType;\n }\n return this.originalHeightType;\n }\n get originalHeightType() {\n const { style, autoHeight } = this.props;\n if (autoHeight) {\n return TableHeightType.flex;\n }\n if (style) {\n const { height } = style;\n if (isString(height) && isCalcSize(height)) {\n return TableHeightType.flex;\n }\n if (isNumber(toPx(height))) {\n return TableHeightType.fixed;\n }\n }\n return TableHeightType.auto;\n }\n get virtualCell() {\n if ('virtualCell' in this.props) {\n return this.props.virtualCell;\n }\n return getConfig('tableVirtualCell');\n }\n /**\n * number 矫正虚拟滚动由于样式问题导致的高度不符问题\n */\n get virtualRowHeight() {\n const { virtualRowHeight } = this.props;\n if (virtualRowHeight) {\n return virtualRowHeight;\n }\n return isNumber(this.rowHeight) ? this.rowHeight + 3 : 33;\n }\n get virtual() {\n if (this.height !== undefined && isNumber(this.virtualRowHeight)) {\n if ('virtual' in this.props) {\n return this.props.virtual;\n }\n return getConfig('tableVirtual');\n }\n return false;\n }\n get virtualHeight() {\n const { virtualRowHeight, data } = this;\n return Math.round(data.length * virtualRowHeight);\n }\n get virtualStartIndex() {\n const { virtualRowHeight, lastScrollTop } = this;\n return Math.max(Math.round((lastScrollTop / virtualRowHeight) - 3), 0);\n }\n get virtualEndIndex() {\n const { virtualRowHeight, lastScrollTop, height, data } = this;\n return Math.min(height !== undefined ? Math.round((lastScrollTop + height) / virtualRowHeight) + 3 : Infinity, data.length);\n }\n get virtualTop() {\n const { virtualRowHeight, virtualStartIndex } = this;\n return virtualStartIndex * virtualRowHeight;\n }\n get virtualData() {\n const { data, virtual } = this;\n if (virtual) {\n const { virtualEndIndex, virtualStartIndex } = this;\n return data.slice(virtualStartIndex, virtualEndIndex);\n }\n return data;\n }\n get hidden() {\n return this.styledHidden || this.props.hidden;\n }\n get alwaysShowRowBox() {\n if ('alwaysShowRowBox' in this.props) {\n return this.props.alwaysShowRowBox;\n }\n const alwaysShowRowBox = getConfig('tableAlwaysShowRowBox');\n if (typeof alwaysShowRowBox !== 'undefined') {\n return alwaysShowRowBox;\n }\n return false;\n }\n get keyboard() {\n if ('keyboard' in this.props) {\n return this.props.keyboard;\n }\n const keyboard = getConfig('tableKeyboard');\n if (typeof keyboard !== 'undefined') {\n return keyboard;\n }\n return false;\n }\n get columnResizable() {\n if (this.currentEditRecord) {\n return false;\n }\n if ('columnResizable' in this.props) {\n return this.props.columnResizable;\n }\n return getConfig('tableColumnResizable') !== false;\n }\n get columnHideable() {\n if ('columnHideable' in this.props) {\n return this.props.columnHideable;\n }\n return getConfig('tableColumnHideable') !== false;\n }\n /**\n * 表头支持编辑\n */\n get columnTitleEditable() {\n if ('columnTitleEditable' in this.props) {\n return this.props.columnTitleEditable;\n }\n return getConfig('tableColumnTitleEditable') === true;\n }\n get pagination() {\n if ('pagination' in this.props) {\n return this.props.pagination;\n }\n return getConfig('pagination');\n }\n get dragColumnAlign() {\n if ('dragColumnAlign' in this.props) {\n return this.props.dragColumnAlign;\n }\n return getConfig('tableDragColumnAlign');\n }\n get columnDraggable() {\n if ('columnDraggable' in this.props) {\n return this.props.columnDraggable;\n }\n if ('dragColumn' in this.props) {\n return this.props.dragColumn;\n }\n if (getConfig('tableColumnDraggable') === true) {\n return true;\n }\n return getConfig('tableDragColumn') === true;\n }\n get rowDraggable() {\n if (this.isTree) {\n return false;\n }\n if ('rowDraggable' in this.props) {\n return this.props.rowDraggable;\n }\n if ('dragRow' in this.props) {\n return this.props.dragRow;\n }\n if (getConfig('tableRowDraggable') === true) {\n return true;\n }\n return getConfig('tableDragRow') === true;\n }\n get size() {\n const { size } = this.customized;\n if (size !== undefined) {\n return size;\n }\n return this.props.size || Size.default;\n }\n get rowHeight() {\n let rowHeight = 30;\n if ('rowHeight' in this.props) {\n rowHeight = this.props.rowHeight;\n }\n else {\n const tableRowHeight = getConfig('tableRowHeight');\n if (typeof tableRowHeight !== 'undefined') {\n rowHeight = tableRowHeight;\n }\n }\n if (isNumber(rowHeight)) {\n switch (this.size) {\n case Size.large:\n return rowHeight + 2;\n case Size.small:\n return rowHeight - 2;\n default:\n }\n }\n return rowHeight;\n }\n get autoFootHeight() {\n if ('autoFootHeight' in this.props) {\n return this.props.autoFootHeight;\n }\n return false;\n }\n get emptyText() {\n return getConfig('renderEmpty')('Table');\n }\n get highLightRow() {\n if ('highLightRow' in this.props) {\n return this.props.highLightRow;\n }\n return getConfig('tableHighLightRow');\n }\n get parityRow() {\n const { parityRow } = this.customized;\n if (parityRow !== undefined) {\n return parityRow;\n }\n if ('parityRow' in this.props) {\n return this.props.parityRow;\n }\n return getConfig('tableParityRow') === true;\n }\n get showRemovedRow() {\n if ('showRemovedRow' in this.props) {\n return this.props.showRemovedRow;\n }\n return getConfig('tableShowRemovedRow') === true;\n }\n get autoFocus() {\n if ('autoFocus' in this.props) {\n return this.props.autoFocus;\n }\n return getConfig('tableAutoFocus') !== false;\n }\n get selectedHighLightRow() {\n if ('selectedHighLightRow' in this.props) {\n return this.props.selectedHighLightRow;\n }\n return getConfig('tableSelectedHighLightRow') !== false;\n }\n get editorNextKeyEnterDown() {\n if ('editorNextKeyEnterDown' in this.props) {\n return this.props.editorNextKeyEnterDown;\n }\n return getConfig('tableEditorNextKeyEnterDown') !== false;\n }\n get border() {\n if ('border' in this.props) {\n return this.props.border;\n }\n return getConfig('tableBorder') !== false;\n }\n get columnEditorBorder() {\n if ('columnEditorBorder' in this.props) {\n return this.props.columnEditorBorder;\n }\n const tableColumnEditorBorder = getConfig('tableColumnEditorBorder');\n if (tableColumnEditorBorder !== undefined) {\n return tableColumnEditorBorder;\n }\n return this.border;\n }\n get queryBar() {\n return this.props.queryBar || getConfig('queryBar');\n }\n get expandIcon() {\n return this.props.expandIcon || getConfig('tableExpandIcon');\n }\n // get pristine(): boolean | undefined {\n // return this.props.pristine;\n // }\n get currentEditRecord() {\n return this.dataSet.find(record => record.editing === true);\n }\n set currentEditRecord(record) {\n runInAction(() => {\n const { currentEditRecord, dataSet } = this;\n if (currentEditRecord) {\n if (currentEditRecord.isNew) {\n dataSet.remove(currentEditRecord);\n }\n else {\n currentEditRecord.reset();\n currentEditRecord.editing = false;\n }\n }\n if (record) {\n record.editing = true;\n }\n });\n }\n get isTree() {\n return this.props.mode === TableMode.tree;\n }\n get editing() {\n return this.currentEditorName !== undefined || this.currentEditRecord !== undefined;\n }\n get hasRowBox() {\n const { dataSet, selectionMode } = this.props;\n const { alwaysShowRowBox } = this;\n if (dataSet) {\n const { selection } = dataSet;\n return selection && (selectionMode === SelectionMode.rowbox || alwaysShowRowBox);\n }\n return false;\n }\n get useMouseBatchChoose() {\n const { useMouseBatchChoose } = this.props;\n if (useMouseBatchChoose !== undefined) {\n return useMouseBatchChoose;\n }\n return getConfig('tableUseMouseBatchChoose');\n }\n get showSelectionTips() {\n const { showSelectionTips } = this.props;\n if (showSelectionTips !== undefined) {\n return showSelectionTips;\n }\n const tableShowSelectionTips = getConfig('tableShowSelectionTips');\n if (tableShowSelectionTips !== undefined) {\n return tableShowSelectionTips;\n }\n return false;\n }\n get overflowX() {\n const { width } = this;\n if (width !== undefined) {\n return this.columnGroups.width > width;\n }\n return false;\n }\n get overflowY() {\n const { bodyHeight, height } = this;\n return (bodyHeight !== undefined &&\n height !== undefined &&\n height < bodyHeight + (this.overflowX && !this.hasFooter ? measureScrollbar() : 0));\n }\n customizedColumnHeader() {\n return React.createElement(CustomizationColumnHeader, { onHeaderClick: this.openCustomizationModal });\n }\n get customizedColumn() {\n if (this.customizable && (!this.rowDraggable || this.dragColumnAlign !== DragColumnAlign.right)) {\n return {\n key: CUSTOMIZED_KEY,\n resizable: false,\n titleEditable: false,\n align: ColumnAlign.center,\n width: 30,\n lock: ColumnLock.right,\n header: this.customizedColumnHeader,\n headerClassName: `${this.prefixCls}-customized-column`,\n };\n }\n return undefined;\n }\n get expandColumn() {\n if (this.expandIconAsCell) {\n return {\n key: EXPAND_KEY,\n resizable: false,\n titleEditable: false,\n align: ColumnAlign.center,\n width: 50,\n lock: true,\n };\n }\n return undefined;\n }\n get rowNumberColumn() {\n const { rowNumber } = this.props;\n if (rowNumber) {\n return {\n key: ROW_NUMBER_KEY,\n resizable: false,\n titleEditable: false,\n headerClassName: `${this.prefixCls}-row-number-column`,\n renderer: this.renderRowNumber,\n tooltip: TableColumnTooltip.overflow,\n align: ColumnAlign.center,\n width: 50,\n lock: true,\n };\n }\n return undefined;\n }\n get selectionColumn() {\n if (this.hasRowBox) {\n const { dataSet, prefixCls } = this;\n const { rowBoxPlacement } = this.props;\n const className = `${prefixCls}-selection-column`;\n let lock = ColumnLock.left;\n if (rowBoxPlacement === RowBoxPlacement.start) {\n lock = ColumnLock.left;\n }\n else if (rowBoxPlacement === RowBoxPlacement.end) {\n lock = ColumnLock.right;\n }\n else {\n lock = false;\n }\n const selectionColumn = {\n key: SELECTION_KEY,\n resizable: false,\n titleEditable: false,\n headerClassName: className,\n className,\n footerClassName: className,\n renderer: this.renderSelectionBox,\n align: ColumnAlign.center,\n width: 50,\n lock,\n };\n if (dataSet && dataSet.selection === DataSetSelection.multiple) {\n selectionColumn.header = this.multipleSelectionRenderer;\n selectionColumn.footer = this.multipleSelectionRenderer;\n }\n return selectionColumn;\n }\n return undefined;\n }\n get draggableColumn() {\n const { dragColumnAlign, rowDraggable, prefixCls } = this;\n if (dragColumnAlign && rowDraggable) {\n const draggableColumn = {\n key: DRAG_KEY,\n resizable: false,\n titleEditable: false,\n className: `${prefixCls}-drag-column`,\n renderer: this.renderDragBox,\n align: ColumnAlign.center,\n width: 50,\n };\n if (dragColumnAlign === DragColumnAlign.left) {\n draggableColumn.lock = ColumnLock.left;\n }\n if (dragColumnAlign === DragColumnAlign.right) {\n draggableColumn.lock = ColumnLock.right;\n draggableColumn.header = this.customizable && this.customizedColumnHeader;\n }\n return draggableColumn;\n }\n return undefined;\n }\n get leftColumns() {\n const { dragColumnAlign, leftOriginalColumns, expandColumn, draggableColumn, rowNumberColumn, selectionColumn } = this;\n return observable.array([\n expandColumn,\n dragColumnAlign === DragColumnAlign.left ? draggableColumn : undefined,\n rowNumberColumn,\n selectionColumn && selectionColumn.lock === ColumnLock.left ? selectionColumn : undefined,\n ...leftOriginalColumns,\n ].filter(columnFilter));\n }\n get rightColumns() {\n const { dragColumnAlign, rightOriginalColumns, draggableColumn, customizedColumn, selectionColumn } = this;\n return observable.array([\n ...rightOriginalColumns,\n dragColumnAlign === DragColumnAlign.right ? draggableColumn : undefined,\n selectionColumn && selectionColumn.lock === ColumnLock.right ? selectionColumn : undefined,\n customizedColumn,\n ].filter(columnFilter));\n }\n get columns() {\n const { leftColumns, originalColumns, rightColumns } = this;\n return observable.array([\n ...leftColumns,\n ...originalColumns,\n ...rightColumns,\n ]);\n }\n get columnGroups() {\n return new ColumnGroups(this.columns, this.aggregation);\n }\n get leftColumnGroups() {\n return new ColumnGroups(this.leftColumns, this.aggregation);\n }\n get rightColumnGroups() {\n return new ColumnGroups(this.rightColumns, this.aggregation);\n }\n get leafNamedColumns() {\n return this.columnGroups.allLeafs.reduce((list, { column }) => column.name ? list.concat(column) : list, []);\n }\n get hasEmptyWidthColumn() {\n return this.columnGroups.leafs.some(({ column }) => isNil(get(column, 'width')));\n }\n get hasCheckFieldColumn() {\n const { checkField } = this.dataSet.props;\n if (checkField) {\n const { aggregation } = this;\n return this.columnGroups.leafs.some(({ column }) => aggregation\n ? treeSome([column], (c) => hasCheckField(c, checkField))\n : hasCheckField(column, checkField));\n }\n return false;\n }\n get hasFooter() {\n return this.columnGroups.leafs.some(({ column }) => !!column.footer && column.key !== SELECTION_KEY);\n }\n get isAnyColumnsLeftLock() {\n return this.leftColumns.length > 0;\n }\n get isAnyColumnsRightLock() {\n return this.rightColumns.length > 0;\n }\n get isAnyColumnsLock() {\n return this.isAnyColumnsLeftLock || this.isAnyColumnsRightLock;\n }\n get data() {\n const { filter, pristine } = this.props;\n const { dataSet, isTree, showCachedSelection } = this;\n let data = isTree ? dataSet.treeRecords : dataSet.records;\n if (typeof filter === 'function') {\n data = data.filter(filter);\n }\n if (pristine) {\n data = data.filter(record => !record.isNew);\n }\n if (showCachedSelection) {\n return [...dataSet.cachedSelected, ...data];\n }\n return data;\n }\n get indeterminate() {\n const { dataSet } = this;\n if (dataSet) {\n const selectedLength = dataSet.currentSelected.length;\n return !!selectedLength && selectedLength !== dataSet.records.length;\n }\n return false;\n }\n get allChecked() {\n const { dataSet } = this;\n if (dataSet) {\n const selectedLength = dataSet.currentSelected.length;\n return !!selectedLength && selectedLength === dataSet.records.length;\n }\n return false;\n }\n get expandIconAsCell() {\n const { expandedRowRenderer, expandIconAsCell } = this.props;\n if (expandIconAsCell !== undefined) {\n return expandIconAsCell;\n }\n return !!expandedRowRenderer && !this.isTree;\n }\n get expandIconColumnIndex() {\n if (this.expandIconAsCell) {\n return 0;\n }\n const { dragColumnAlign, rowDraggable, props: { expandIconColumnIndex = 0, rowNumber }, } = this;\n return expandIconColumnIndex + [this.hasRowBox, rowNumber, dragColumnAlign && rowDraggable].filter(Boolean).length;\n }\n get inlineEdit() {\n return this.props.editMode === TableEditMode.inline;\n }\n handleLoadCustomized() {\n this.initColumns();\n const { onAggregationChange, aggregation } = this.props;\n const { aggregation: customAggregation } = this.customized;\n if (onAggregationChange && customAggregation !== undefined && customAggregation !== aggregation) {\n onAggregationChange(customAggregation);\n }\n }\n isBuiltInColumn({ key }) {\n if (isString(key)) {\n return [DRAG_KEY, SELECTION_KEY, ROW_NUMBER_KEY, CUSTOMIZED_KEY, EXPAND_KEY].includes(key);\n }\n }\n getColumnTooltip(column) {\n const { tooltip } = column;\n if (tooltip) {\n return tooltip;\n }\n return getTooltip('table-cell');\n }\n getColumnHeaders() {\n const { leafNamedColumns, dataSet } = this;\n return getHeaderTexts(dataSet, leafNamedColumns.slice(), this.aggregation);\n }\n showEditor(name) {\n this.currentEditorName = name;\n }\n setLastScrollTop(lastScrollTop) {\n this.lastScrollTop = lastScrollTop;\n }\n hideEditor() {\n this.currentEditorName = undefined;\n }\n changeMouseBatchChooseIdList(idList) {\n this.mouseBatchChooseIdList = idList;\n }\n showNextEditor(name, reserve) {\n if (reserve) {\n this.dataSet.pre();\n }\n else {\n this.dataSet.next();\n }\n this.showEditor(name);\n }\n setProps(props) {\n this.props = props;\n const { showCachedSelection } = props;\n if (showCachedSelection !== undefined) {\n this.showCachedSelection = showCachedSelection;\n }\n }\n updateProps(props) {\n const { customizedCode } = this.props;\n this.setProps(props);\n if (this.customizable) {\n if (customizedCode !== props.customizedCode) {\n this.loadCustomized().then(this.handleLoadCustomized);\n return;\n }\n const { aggregation } = props;\n const { customized } = this;\n if (!isNil(aggregation) && aggregation !== customized.aggregation) {\n customized.aggregation = aggregation;\n this.saveCustomized();\n }\n }\n this.initColumns();\n }\n initColumns() {\n const { customized, customizable, aggregation, selectionColumn } = this;\n const { columns, children, rowBoxPlacement } = this.props;\n const customizedColumns = customizable ? customized.columns : undefined;\n const [leftOriginalColumns, originalColumns, rightOriginalColumns, hasAggregationColumn] = columns\n ? mergeDefaultProps(columns, aggregation, customizedColumns)\n : normalizeColumns(children, aggregation, customizedColumns);\n if (isNumber(rowBoxPlacement) && this.hasRowBox) {\n originalColumns.splice(rowBoxPlacement, 0, selectionColumn);\n }\n this.leftOriginalColumns = leftOriginalColumns;\n this.originalColumns = originalColumns;\n this.rightOriginalColumns = rightOriginalColumns;\n this.hasAggregationColumn = hasAggregationColumn;\n }\n isAggregationCellExpanded(record, key) {\n const expandedKeys = record.getState(AGGREGATION_EXPAND_CELL_KEY);\n if (expandedKeys) {\n return expandedKeys.includes(key);\n }\n return false;\n }\n setAggregationCellExpanded(record, key, expanded) {\n const expandedKeys = record.getState(AGGREGATION_EXPAND_CELL_KEY) || [];\n const index = expandedKeys.indexOf(key);\n if (expanded) {\n if (index === -1) {\n expandedKeys.push(key);\n }\n }\n else if (index !== -1) {\n expandedKeys.splice(index, 1);\n }\n record.setState(AGGREGATION_EXPAND_CELL_KEY, expandedKeys);\n }\n isRowExpanded(record) {\n const { isExpanded = this.expandedRows.indexOf(record.key) !== -1 } = record;\n return isExpanded && (!this.isTree || !record.parent || this.isRowExpanded(record.parent));\n }\n /**\n *\n * @param record 想修改的record\n * @param expanded 设置是否展开\n * @param disHandler 设置是否需要触发展开事件\n */\n setRowExpanded(record, expanded, disHandler) {\n record.isExpanded = expanded;\n if (!this.inBatchExpansion) {\n const index = this.expandedRows.indexOf(record.key);\n if (expanded) {\n if (index === -1) {\n this.expandedRows.push(record.key);\n }\n }\n else if (index !== -1) {\n this.expandedRows.splice(index, 1);\n }\n }\n const { onExpand } = this.props;\n if (onExpand && !disHandler) {\n onExpand(expanded, record);\n }\n if (expanded && this.canTreeLoadData) {\n this.onTreeNodeLoad({ record });\n }\n }\n isRowPending(record) {\n return record.pending === true;\n }\n setRowPending(record, pending) {\n record.pending = pending;\n }\n isRowLoaded(record) {\n return record.childrenLoaded === true;\n }\n setRowLoaded(record, loaded) {\n record.childrenLoaded = loaded;\n }\n isRowHover(record) {\n return this.hoverRow === record;\n }\n get canTreeLoadData() {\n const { treeLoadData, treeAsync } = this.props;\n return treeAsync || !!treeLoadData;\n }\n get cellHighlightRenderer() {\n const { cellHighlightRenderer = getConfig('highlightRenderer') } = this.props;\n return cellHighlightRenderer;\n }\n setRowHover(record, hover) {\n this.hoverRow = hover ? record : undefined;\n }\n expandAll() {\n this.inBatchExpansion = true;\n this.expandedRows = this.dataSet.records.map(record => {\n this.setRowExpanded(record, true);\n return record.key;\n });\n this.inBatchExpansion = false;\n }\n collapseAll() {\n this.inBatchExpansion = true;\n this.dataSet.records.forEach(record => this.setRowExpanded(record, false));\n this.expandedRows = [];\n this.inBatchExpansion = false;\n }\n async onTreeNodeLoad({ record }) {\n const { dataSet, treeLoadData, treeAsync } = this.props;\n const promises = [];\n this.setRowPending(record, true);\n if (treeAsync && dataSet) {\n promises.push(dataSet.queryMoreChild(record));\n }\n if (treeLoadData) {\n promises.push(treeLoadData({ record, dataSet }));\n }\n try {\n await Promise.all(promises);\n this.setRowLoaded(record, true);\n }\n finally {\n this.setRowPending(record, false);\n }\n }\n renderSelectionBox({ record }) {\n return renderSelectionBox({ record, store: this });\n }\n renderRowNumber({ record, dataSet }) {\n const { isTree, props: { rowNumber } } = this;\n const numbers = getRowNumbers(record, dataSet, isTree);\n const number = numbers.join('-');\n if (typeof rowNumber === 'function') {\n return rowNumber({ record, dataSet, text: number, pathNumbers: numbers });\n }\n return number;\n }\n renderDragBox({ record }) {\n const { rowDragRender } = this.props;\n if (rowDragRender && isFunction(rowDragRender.renderIcon)) {\n return rowDragRender.renderIcon({ record });\n }\n return React.createElement(Icon, { type: \"baseline-drag_indicator\" });\n }\n changeCustomizedColumnValue(column, value) {\n const { customized: { columns } } = this;\n set(column, value);\n const columnKey = getColumnKey(column).toString();\n const oldCustomized = get(columns, columnKey);\n set(columns, columnKey, {\n ...oldCustomized,\n ...value,\n });\n this.saveCustomizedDebounce();\n }\n saveCustomized(customized) {\n if (this.customizable && this.customizedLoaded) {\n const { customizedCode } = this.props;\n if (customized) {\n this.customized = customized;\n }\n if (customizedCode) {\n const tableCustomizedSave = getConfig('tableCustomizedSave') || getConfig('customizedSave');\n tableCustomizedSave(customizedCode, this.customized, 'Table');\n }\n }\n }\n ;\n openCustomizationModal(modal) {\n const { node: { element }, height } = this;\n if (height === undefined) {\n this.totalHeight = element.offsetHeight;\n }\n const { customizedCode } = this.props;\n const modalProps = {\n drawer: true,\n size: Size.small,\n title: $l('Table', 'customization_settings'),\n children: React.createElement(CustomizationSettings, null),\n bodyStyle: {\n overflow: 'hidden auto',\n padding: 0,\n },\n };\n if (customizedCode) {\n modalProps.okText = $l('Table', 'save_button');\n }\n modal.open(modalProps);\n }\n async loadCustomized() {\n const { customizedCode } = this.props;\n if (this.customizable && customizedCode) {\n const tableCustomizedLoad = getConfig('tableCustomizedLoad') || getConfig('customizedLoad');\n runInAction(() => {\n delete this.customizedLoaded;\n this.loading = true;\n });\n try {\n const customized = await tableCustomizedLoad(customizedCode, 'Table');\n runInAction(() => {\n this.customized = { columns: {}, ...customized };\n });\n this.customizedLoaded = true;\n }\n finally {\n runInAction(() => {\n this.loading = false;\n });\n }\n }\n }\n handleAllPageSelectionMenuClick({ key }) {\n const { dataSet } = this;\n const { isAllPageSelection } = dataSet;\n switch (key) {\n case 'current': {\n if (this.allChecked) {\n dataSet.unSelectAll();\n }\n else {\n const { filter } = this.props;\n dataSet.selectAll(filter);\n }\n break;\n }\n case 'all':\n dataSet.setAllPageSelection(!isAllPageSelection);\n break;\n default:\n }\n }\n renderAllPageSelectionMenu() {\n const { dataSet: { isAllPageSelection }, allChecked, prefixCls } = this;\n return (React.createElement(Menu, { prefixCls: `${prefixCls}-dropdown-menu`, onClick: this.handleAllPageSelectionMenuClick },\n React.createElement(Menu.Item, { key: \"current\" }, $l('Table', allChecked ? 'unselect_current_page' : 'select_current_page')),\n React.createElement(Menu.Item, { key: \"all\" }, $l('Table', isAllPageSelection ? 'unselect_all_page' : 'select_all_page'))));\n }\n multipleSelectionRenderer() {\n const buttons = [\n React.createElement(ObserverCheckBox, { key: \"selectAll\", checked: this.allChecked, indeterminate: this.indeterminate, onChange: this.handleSelectAllChange, value: true }),\n ];\n if (this.props.showAllPageSelectionButton) {\n buttons.push(React.createElement(Dropdown, { key: \"selectAllPage\", overlay: this.renderAllPageSelectionMenu },\n React.createElement(Icon, { type: \"baseline-arrow_drop_down\" })));\n }\n return buttons;\n }\n}\n__decorate([\n observable\n], TableStore.prototype, \"props\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"customized\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"tempCustomized\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"loading\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"leftOriginalColumns\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"originalColumns\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"rightOriginalColumns\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"hasAggregationColumn\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"calcBodyHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"width\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"height\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"totalHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"lastScrollTop\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"lockColumnsBodyRowsHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"lockColumnsFootRowsHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"lockColumnsHeadRowsHeight\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"expandedRows\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"hoverRow\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"rowClicked\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"currentEditorName\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"styledHidden\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"customizedActiveKey\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"mouseBatchChooseState\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"mouseBatchChooseIdList\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"columnResizing\", void 0);\n__decorate([\n observable\n], TableStore.prototype, \"scrollPosition\", void 0);\n__decorate([\n computed\n], TableStore.prototype, \"autoHeight\", null);\n__decorate([\n computed\n], TableStore.prototype, \"virtualStartIndex\", null);\n__decorate([\n computed\n], TableStore.prototype, \"virtualEndIndex\", null);\n__decorate([\n computed\n], TableStore.prototype, \"virtualData\", null);\n__decorate([\n computed\n], TableStore.prototype, \"currentEditRecord\", null);\n__decorate([\n observable\n], TableStore.prototype, \"showCachedSelection\", void 0);\n__decorate([\n computed\n], TableStore.prototype, \"overflowX\", null);\n__decorate([\n computed\n], TableStore.prototype, \"overflowY\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"customizedColumnHeader\", null);\n__decorate([\n computed\n], TableStore.prototype, \"customizedColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"expandColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"rowNumberColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"selectionColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"draggableColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"leftColumns\", null);\n__decorate([\n computed\n], TableStore.prototype, \"rightColumns\", null);\n__decorate([\n computed\n], TableStore.prototype, \"columns\", null);\n__decorate([\n computed\n], TableStore.prototype, \"columnGroups\", null);\n__decorate([\n computed\n], TableStore.prototype, \"leftColumnGroups\", null);\n__decorate([\n computed\n], TableStore.prototype, \"rightColumnGroups\", null);\n__decorate([\n computed\n], TableStore.prototype, \"leafNamedColumns\", null);\n__decorate([\n computed\n], TableStore.prototype, \"hasEmptyWidthColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"hasCheckFieldColumn\", null);\n__decorate([\n computed\n], TableStore.prototype, \"data\", null);\n__decorate([\n computed\n], TableStore.prototype, \"indeterminate\", null);\n__decorate([\n computed\n], TableStore.prototype, \"allChecked\", null);\n__decorate([\n autobind,\n action\n], TableStore.prototype, \"handleLoadCustomized\", null);\n__decorate([\n action\n], TableStore.prototype, \"showEditor\", null);\n__decorate([\n action\n], TableStore.prototype, \"setLastScrollTop\", null);\n__decorate([\n action\n], TableStore.prototype, \"hideEditor\", null);\n__decorate([\n action\n], TableStore.prototype, \"changeMouseBatchChooseIdList\", null);\n__decorate([\n action\n], TableStore.prototype, \"setProps\", null);\n__decorate([\n action\n], TableStore.prototype, \"updateProps\", null);\n__decorate([\n action\n], TableStore.prototype, \"initColumns\", null);\n__decorate([\n action\n], TableStore.prototype, \"setAggregationCellExpanded\", null);\n__decorate([\n action\n], TableStore.prototype, \"setRowExpanded\", null);\n__decorate([\n action\n], TableStore.prototype, \"setRowPending\", null);\n__decorate([\n action\n], TableStore.prototype, \"setRowLoaded\", null);\n__decorate([\n computed\n], TableStore.prototype, \"cellHighlightRenderer\", null);\n__decorate([\n action\n], TableStore.prototype, \"setRowHover\", null);\n__decorate([\n action\n], TableStore.prototype, \"expandAll\", null);\n__decorate([\n action\n], TableStore.prototype, \"collapseAll\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"onTreeNodeLoad\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"renderSelectionBox\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"renderRowNumber\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"renderDragBox\", null);\n__decorate([\n action\n], TableStore.prototype, \"changeCustomizedColumnValue\", null);\n__decorate([\n action\n], TableStore.prototype, \"saveCustomized\", null);\n__decorate([\n autobind,\n action\n], TableStore.prototype, \"openCustomizationModal\", null);\n__decorate([\n autobind,\n action\n], TableStore.prototype, \"handleAllPageSelectionMenuClick\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"renderAllPageSelectionMenu\", null);\n__decorate([\n autobind\n], TableStore.prototype, \"multipleSelectionRenderer\", null);\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport { action } from 'mobx';\nimport { Draggable, Droppable } from 'react-beautiful-dnd';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport isFunction from 'lodash/isFunction';\nimport TableContext from './TableContext';\nimport TableRow from './TableRow';\nimport { ColumnLock, DragColumnAlign } from './enum';\nimport ExpandedRow from './ExpandedRow';\nimport { DataSetStatus } from '../data-set/enum';\nimport autobind from '../_util/autobind';\nimport { instance } from './Table';\nimport { isDraggingStyle, isStickySupport } from './utils';\nlet TableTBody = class TableTBody extends Component {\n constructor(props, context) {\n super(props, context);\n const { tableStore, dataSet } = context;\n if (tableStore.performanceEnabled) {\n if (dataSet.status === DataSetStatus.ready && dataSet.length) {\n tableStore.performanceOn = true;\n tableStore.timing.renderStart = Date.now();\n }\n }\n }\n handlePerformance() {\n const { code, tableStore, dataSet } = this.context;\n if (tableStore.performanceEnabled && tableStore.performanceOn) {\n const { timing } = tableStore;\n const { performance } = dataSet;\n const onPerformance = getConfig('onPerformance');\n timing.renderEnd = Date.now();\n onPerformance('Table', {\n name: code,\n url: performance.url,\n size: dataSet.length,\n timing: {\n ...performance.timing,\n ...timing,\n },\n });\n tableStore.performanceOn = false;\n }\n }\n componentDidMount() {\n this.handlePerformance();\n }\n componentWillUpdate() {\n const { tableStore } = this.context;\n if (tableStore.performanceEnabled && tableStore.performanceOn) {\n tableStore.timing.renderStart = Date.now();\n }\n }\n componentDidUpdate() {\n this.handlePerformance();\n const { lock } = this.props;\n if (!lock) {\n const { tableStore: { node }, } = this.context;\n if (node.isFocus &&\n !node.wrapper.contains(document.activeElement)) {\n node.focus();\n }\n }\n }\n handleResize(_width, height) {\n const { tableStore } = this.context;\n if (!tableStore.hidden) {\n tableStore.calcBodyHeight = height;\n }\n }\n render() {\n const { lock, columnGroups } = this.props;\n const { prefixCls, tableStore, rowDragRender, dataSet, } = this.context;\n const { data, virtual, rowDraggable, } = tableStore;\n const virtualData = virtual ? data.slice(tableStore.virtualStartIndex, tableStore.virtualEndIndex) : data;\n const rows = virtualData.length\n ? this.getRows(virtualData, columnGroups, true, virtual)\n : this.getEmptyRow(columnGroups);\n const body = rowDraggable ? (React.createElement(Droppable, Object.assign({ droppableId: \"table\", key: \"table\", renderClone: (provided, snapshot, rubric) => {\n if (snapshot.isDragging && tableStore.overflowX && tableStore.dragColumnAlign === DragColumnAlign.right) {\n const { style } = provided.draggableProps;\n if (isDraggingStyle(style)) {\n const { left, width } = style;\n style.left = left - Math.max(tableStore.columnGroups.leafColumnsWidth - 50, width);\n }\n }\n const record = dataSet.get(rubric.source.index);\n if (record) {\n const leafColumnsBody = lock ? tableStore.columnGroups : columnGroups;\n const renderClone = rowDragRender && rowDragRender.renderClone;\n const { id } = record;\n if (renderClone && isFunction(renderClone)) {\n return renderClone({\n provided,\n snapshot,\n rubric,\n key: id,\n hidden: false,\n lock: false,\n prefixCls,\n columns: leafColumnsBody.leafs.map(({ column }) => column),\n columnGroups: leafColumnsBody,\n record,\n index: id,\n });\n }\n return (React.createElement(TableRow, { provided: provided, snapshot: snapshot, key: id, hidden: false, lock: false, columnGroups: leafColumnsBody, record: record, index: id }));\n }\n return React.createElement(\"span\", null);\n }, getContainerForClone: () => instance(tableStore.node.getClassName(), prefixCls).tbody }, (rowDragRender && rowDragRender.droppableProps)), (droppableProvided) => (React.createElement(\"tbody\", Object.assign({ ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { className: `${prefixCls}-tbody` }),\n rows,\n droppableProvided.placeholder)))) : (React.createElement(\"tbody\", { className: `${prefixCls}-tbody` }, rows));\n return lock || virtual ? (body) : (React.createElement(ReactResizeObserver, { onResize: this.handleResize, resizeProp: \"height\", immediately: true }, body));\n }\n getRows(records, columnGroups, expanded, virtual) {\n return records.map((record, index) => this.getRow(columnGroups, record, virtual ? record.index : index, expanded));\n }\n getEmptyRow(columnGroups) {\n const { prefixCls, dataSet, tableStore: { emptyText, width }, } = this.context;\n const { lock } = this.props;\n const styles = width ? {\n position: isStickySupport() ? 'sticky' : 'relative',\n left: pxToRem(width / 2),\n } : {\n transform: 'none',\n display: 'inline-block',\n };\n const tdStyle = width ? undefined : { textAlign: 'center' };\n return (React.createElement(\"tr\", { className: `${prefixCls}-empty-row` },\n React.createElement(\"td\", { colSpan: columnGroups.leafs.length, style: tdStyle },\n React.createElement(\"div\", { style: styles }, !lock && dataSet.status === DataSetStatus.ready && emptyText))));\n }\n renderExpandedRows(columnGroups, record, isExpanded) {\n return this.getRows(record.children || [], columnGroups, isExpanded);\n }\n getRow(columnGroups, record, index, expanded) {\n const { lock } = this.props;\n const { tableStore, rowDragRender } = this.context;\n const { key } = record;\n const children = tableStore.isTree && (React.createElement(ExpandedRow, { record: record, columnGroups: columnGroups }, this.renderExpandedRows));\n if (tableStore.rowDraggable) {\n const { dragColumnAlign } = tableStore;\n if (!dragColumnAlign || (dragColumnAlign === DragColumnAlign.right && lock !== ColumnLock.left) || (dragColumnAlign === DragColumnAlign.left && lock !== ColumnLock.right)) {\n return (React.createElement(Draggable, { draggableId: String(key), index: index, key: record.key }, (provided, snapshot) => (React.createElement(TableRow, Object.assign({ provided: provided, snapshot: snapshot, key: record.key, hidden: !expanded, lock: lock, columnGroups: columnGroups, record: record, index: index }, (rowDragRender && rowDragRender.draggableProps)), children))));\n }\n }\n return (React.createElement(TableRow, { key: key, hidden: !expanded, lock: lock, columnGroups: columnGroups, record: record, index: index }, children));\n }\n};\nTableTBody.displayName = 'TableTBody';\nTableTBody.contextType = TableContext;\n__decorate([\n autobind,\n action\n], TableTBody.prototype, \"handleResize\", null);\n__decorate([\n autobind\n], TableTBody.prototype, \"renderExpandedRows\", null);\nTableTBody = __decorate([\n observer\n], TableTBody);\nexport default TableTBody;\n","import React, { useContext, useMemo } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport measureScrollbar from 'choerodon-ui/lib/_util/measureScrollbar';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport TableContext from './TableContext';\nimport { ColumnLock, DragColumnAlign } from './enum';\nimport TableEditor from './TableEditor';\nimport TableCol from './TableCol';\nimport { getColumnKey, isStickySupport } from './utils';\nimport { treeReduce } from '../_util/treeUtils';\nconst TableWrapper = observer(function TableWrapper(props) {\n const { children, hasBody, lock, hasHeader, hasFooter, columnGroups } = props;\n const { prefixCls, summary, tableStore } = useContext(TableContext);\n const { leafs, width } = columnGroups;\n const { overflowX, customizable, rowDraggable, dragColumnAlign } = tableStore;\n const hasPlaceHolder = lock !== ColumnLock.left && (hasHeader || hasFooter) && tableStore.overflowY;\n const tableWidth = overflowX ?\n lock !== ColumnLock.left && !hasBody && tableStore.overflowY ?\n pxToRem(width + measureScrollbar()) : pxToRem(width) : '100%';\n const editors = useMemo(() => hasBody ?\n treeReduce(leafs.map(({ column }) => column), (nodes, column) => {\n const { editor, name } = column;\n if (editor && name && (lock || isStickySupport() || !column.lock || !overflowX)) {\n nodes.push(React.createElement(TableEditor, { key: getColumnKey(column), column: column }));\n }\n return nodes;\n }, []) : undefined, [leafs, overflowX, lock, hasBody]);\n const colGroup = useMemo(() => {\n let fixedColumnLength = 1;\n if (customizable) {\n fixedColumnLength += 1;\n }\n if (rowDraggable && dragColumnAlign === DragColumnAlign.right) {\n fixedColumnLength += 1;\n }\n const cols = leafs.map(({ column, key }, index, array) => (React.createElement(TableCol, { key: key, column: column, last: !overflowX && index === array.length - fixedColumnLength })));\n if (hasPlaceHolder) {\n cols.push(React.createElement(\"col\", { key: \"fixed-column\", style: { width: pxToRem(measureScrollbar()) } }));\n }\n return React.createElement(\"colgroup\", null, cols);\n }, [leafs, customizable, rowDraggable, dragColumnAlign, hasPlaceHolder, overflowX]);\n const style = useMemo(() => ({ width: tableWidth }), [tableWidth]);\n const className = classNames({\n [`${prefixCls}-last-row-bordered`]: hasBody && !tableStore.overflowY && (tableStore.height !== undefined || (!tableStore.hasFooter && overflowX)),\n });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"table\", { key: \"table\", className: className, style: style, summary: hasBody ? summary : undefined },\n colGroup,\n children),\n editors));\n});\nTableWrapper.displayName = 'TableWrapper';\nexport default TableWrapper;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport TableContext from './TableContext';\nconst VirtualWrapper = observer(function VirtualWrapper(props) {\n const { tableStore, prefixCls } = useContext(TableContext);\n const { virtualTop, virtualHeight } = tableStore;\n const [height, setHeight] = useState(virtualHeight);\n useEffect(() => {\n if (virtualHeight !== height) {\n const { lastScrollTop, node: { tableBodyWrap } } = tableStore;\n if (lastScrollTop && tableBodyWrap) {\n tableBodyWrap.scrollTop = Math.max(0, virtualHeight - height + lastScrollTop);\n }\n setHeight(virtualHeight);\n }\n }, [virtualHeight, height, tableStore]);\n return (React.createElement(\"div\", { className: `${prefixCls}-tbody-wrapper`, style: { height: pxToRem(virtualHeight) } },\n React.createElement(\"div\", { style: { transform: `translate(0, ${pxToRem(virtualTop)})` } }, props.children)));\n});\nVirtualWrapper.displayName = 'VirtualWrapper';\nexport default VirtualWrapper;\n","import React, { useCallback, memo } from 'react';\nimport { FuncType } from '../../button/enum';\nimport { Size } from '../../core/enum';\nimport Button from '../../button/Button';\nimport useModal from '../../use-modal';\nconst CustomizationColumnHeader = memo(function CustomizationColumnHeader(props) {\n const { onHeaderClick } = props;\n const modal = useModal();\n const openCustomizationModal = useCallback(() => onHeaderClick(modal), [modal, onHeaderClick]);\n return (React.createElement(Button, { funcType: FuncType.flat, size: Size.small, icon: \"predefine\", onClick: openCustomizationModal }));\n});\nCustomizationColumnHeader.displayName = 'CustomizationColumnHeader';\nexport default CustomizationColumnHeader;\n","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { action, set, toJS } from 'mobx';\nimport noop from 'lodash/noop';\nimport flatten from 'lodash/flatten';\nimport Collapse from 'choerodon-ui/lib/collapse';\nimport CollapsePanel from 'choerodon-ui/lib/collapse/CollapsePanel';\nimport { getColumnKey, getColumnLock } from '../utils';\nimport ColumnGroups from './column-groups';\nimport DataSet from '../../data-set/DataSet';\nimport { treeReduce } from '../../_util/treeUtils';\nimport TableContext from '../TableContext';\nimport { $l } from '../../locale-context';\nimport Button from '../../button/Button';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport { Size } from '../../core/enum';\nimport { mergeDefaultProps, normalizeColumns, SELECTION_KEY } from '../TableStore';\nimport Form from '../../form/Form';\nimport ObserverNumberField from '../../number-field/NumberField';\nimport SelectBox from '../../select-box/SelectBox';\nimport Option from '../../option/Option';\nimport { TableHeightType } from '../enum';\nimport { LabelLayout } from '../../form/enum';\nimport { ShowHelp } from '../../field/enum';\nimport { ViewMode } from '../../radio/enum';\nimport Icon from '../../icon';\nimport Tooltip from '../../tooltip/Tooltip';\nfunction normalizeColumnsToTreeData(columns) {\n return treeReduce(columns, (list, column, _sort, parentColumn) => list.concat({\n key: getColumnKey(column),\n parentKey: parentColumn && getColumnKey(parentColumn),\n lock: getColumnLock(column.lock),\n width: column.width,\n header: column.header,\n title: column.title,\n hidden: column.hidden,\n name: column.name,\n sort: column.sort,\n titleEditable: column.titleEditable,\n hideable: column.hideable,\n }), []);\n}\nfunction diff(height = 0) {\n if (typeof document !== 'undefined') {\n return document.documentElement.clientHeight - height;\n }\n return 0;\n}\nconst HEIGHT_CHANGE_KEY = '__heightChange__';\nconst CustomizationSettings = observer(function CustomizationSettings(props) {\n const { modal } = props;\n const { handleOk, handleCancel } = modal || { update: noop, handleOk: noop };\n const { prefixCls, tableStore } = useContext(TableContext);\n const { leftOriginalColumns, originalColumns, rightOriginalColumns, customized } = tableStore;\n const [customizedColumns, setCustomizedColumns] = useState(() => [...leftOriginalColumns, ...originalColumns, ...rightOriginalColumns].filter(column => column.key !== SELECTION_KEY));\n const tableRecord = useMemo(() => new DataSet({\n data: [\n {\n heightType: tableStore.heightType,\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n aggregation: tableStore.aggregation,\n size: tableStore.size,\n parityRow: tableStore.parityRow,\n aggregationExpandType: tableStore.aggregationExpandType,\n },\n ],\n events: {\n update({ record, name, value }) {\n record.setState(HEIGHT_CHANGE_KEY, (record.getState(HEIGHT_CHANGE_KEY) || 0) + 1);\n const { tempCustomized, props: { columns, children } } = tableStore;\n if (tempCustomized) {\n set(tempCustomized, name, value);\n if (name === 'heightType') {\n if (value === TableHeightType.fixed) {\n set(tempCustomized, 'height', record.get('height'));\n }\n else if (value === TableHeightType.flex) {\n set(tempCustomized, 'heightDiff', record.get('heightDiff'));\n }\n }\n else if (name === 'height' && record.get('heightType') === TableHeightType.fixed) {\n record.set('heightDiff', diff(value));\n set(tempCustomized, 'heightType', TableHeightType.fixed);\n }\n else if (name === 'heightDiff' && record.get('heightType') === TableHeightType.flex) {\n record.set('height', diff(value));\n set(tempCustomized, 'heightType', TableHeightType.flex);\n }\n else if (name === 'aggregation') {\n setCustomizedColumns(columns\n ? flatten(mergeDefaultProps(columns, value, tempCustomized.columns).slice(0, 3))\n : flatten(normalizeColumns(children, value, tempCustomized.columns).slice(0, 3)));\n }\n }\n record.setState(HEIGHT_CHANGE_KEY, record.getState(HEIGHT_CHANGE_KEY) - 1);\n if (record.getState(HEIGHT_CHANGE_KEY) === 0) {\n tableStore.node.handleHeightTypeChange();\n record.setState(HEIGHT_CHANGE_KEY, undefined);\n }\n },\n },\n }).current, [tableStore]);\n const columnDataSet = useMemo(() => new DataSet({\n data: normalizeColumnsToTreeData(customizedColumns),\n paging: false,\n primaryKey: 'key',\n idField: 'key',\n parentField: 'parentKey',\n fields: [\n { name: 'lock', group: true },\n ],\n events: {\n update({ record, name, value }) {\n if (name === 'hidden') {\n const { children: records } = record;\n if (records) {\n records.forEach(child => child.set(name, value));\n }\n }\n const { tempCustomized } = tableStore;\n if (tempCustomized) {\n const { key } = record;\n if (!tempCustomized.columns[key]) {\n tempCustomized.columns[key] = {};\n }\n tempCustomized.columns[key][name] = value;\n }\n },\n },\n }), [customizedColumns, tableStore]);\n const handleRestoreTable = useCallback(action((e) => {\n e.stopPropagation();\n const { originalHeightType } = tableStore;\n tableStore.node.handleHeightTypeChange(true);\n tableRecord.init({\n heightType: originalHeightType,\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n });\n }), [tableRecord, tableStore]);\n const handleRestoreColumns = useCallback(action((e) => {\n e.stopPropagation();\n const { props: { columns, children } } = tableStore;\n const aggregation = tableRecord.get('aggregation');\n setCustomizedColumns(columns\n ? flatten(mergeDefaultProps(columns, aggregation).slice(0, 3))\n : flatten(normalizeColumns(children, aggregation).slice(0, 3)));\n tableStore.tempCustomized.columns = {};\n }), [tableRecord, tableStore]);\n const handleOption = useCallback(() => ({\n className: `${prefixCls}-customization-option`,\n }), [prefixCls]);\n const handleCollapseChange = useCallback(action((key) => {\n tableStore.customizedActiveKey = [].concat(key);\n }), [tableStore]);\n useEffect(action(() => {\n tableStore.tempCustomized = {\n height: tableStore.totalHeight,\n heightDiff: diff(tableStore.totalHeight),\n ...toJS(customized),\n };\n }), [tableStore]);\n useEffect(() => {\n if (handleOk) {\n handleOk(action(() => {\n const { tempCustomized, aggregation, props: { onAggregationChange } } = tableStore;\n tableStore.tempCustomized = { columns: {} };\n tableStore.saveCustomized(tempCustomized);\n tableStore.initColumns();\n tableStore.node.handleHeightTypeChange();\n const { aggregation: customAggregation } = tempCustomized;\n if (onAggregationChange && customAggregation !== undefined && customAggregation !== aggregation) {\n onAggregationChange(customAggregation);\n }\n }));\n }\n if (handleCancel) {\n handleCancel(action(() => {\n tableStore.tempCustomized = { columns: {} };\n tableStore.node.handleHeightTypeChange();\n }));\n }\n }, [handleOk, handleCancel, columnDataSet, tableStore]);\n const renderIcon = useCallback(({ isActive }) => React.createElement(Icon, { type: isActive ? 'expand_more' : 'navigate_next' }), []);\n const tableHeightType = tableRecord.get('heightType');\n return (React.createElement(Collapse, { activeKey: tableStore.customizedActiveKey.slice(), onChange: handleCollapseChange, expandIcon: renderIcon, expandIconPosition: \"text-right\", className: `${prefixCls}-customization`, ghost: true },\n React.createElement(CollapsePanel, { header: React.createElement(\"span\", { className: `${prefixCls}-customization-panel-title` }, $l('Table', 'display_settings')), key: \"display\" },\n React.createElement(Form, { className: `${prefixCls}-customization-form`, record: tableRecord, labelLayout: LabelLayout.float },\n tableStore.hasAggregationColumn && (React.createElement(SelectBox, { name: \"aggregation\", label: $l('Table', 'view_display'), mode: ViewMode.button },\n React.createElement(Option, { value: false, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'tiled_view'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-not-aggregation` }))),\n React.createElement(Option, { value: true, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'aggregation_view'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-aggregation` }))))),\n React.createElement(SelectBox, { name: \"size\", label: $l('Table', 'density_display'), mode: ViewMode.button },\n React.createElement(Option, { value: Size.default, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'normal'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-size-default` }))),\n React.createElement(Option, { value: Size.small, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'compact'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-size-small` })))),\n React.createElement(SelectBox, { name: \"parityRow\", label: $l('Table', 'parity_row'), mode: ViewMode.button },\n React.createElement(Option, { value: false, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'normal'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-no-parity-row` }))),\n React.createElement(Option, { value: true, className: `${prefixCls}-customization-select-view-option` },\n React.createElement(Tooltip, { title: $l('Table', 'parity_row'), placement: \"top\" },\n React.createElement(\"div\", { className: `${prefixCls}-customization-select-view-option-inner ${prefixCls}-customization-parity-row` })))))),\n React.createElement(CollapsePanel, { header: React.createElement(\"span\", { className: `${prefixCls}-customization-panel-title` }, $l('Table', 'table_settings')), key: \"table\", extra: React.createElement(Button, { className: `${prefixCls}-customization-header-button`, color: ButtonColor.primary, funcType: FuncType.flat, size: Size.small, onClick: handleRestoreTable }, $l('Table', 'restore_default')) },\n React.createElement(Form, { className: `${prefixCls}-customization-form`, record: tableRecord, labelLayout: LabelLayout.float },\n React.createElement(SelectBox, { vertical: true, name: \"heightType\", label: $l('Table', 'height_settings'), onOption: handleOption },\n React.createElement(Option, { value: TableHeightType.auto }, $l('Table', 'auto_height')),\n React.createElement(Option, { value: TableHeightType.fixed },\n React.createElement(\"span\", { className: `${prefixCls}-customization-option-label` }, $l('Table', 'fixed_height')),\n React.createElement(ObserverNumberField, { className: `${prefixCls}-customization-option-input`, labelLayout: LabelLayout.none, name: \"height\", disabled: tableHeightType !== TableHeightType.fixed, step: 1 })),\n React.createElement(Option, { value: TableHeightType.flex },\n React.createElement(\"span\", { className: `${prefixCls}-customization-option-label` }, $l('Table', 'flex_height')),\n React.createElement(ObserverNumberField, { groupClassName: `${prefixCls}-customization-option-input`, labelLayout: LabelLayout.none, name: \"heightDiff\", disabled: tableHeightType !== TableHeightType.flex, showHelp: ShowHelp.tooltip, help: $l('Table', 'flex_height_help'), step: 1 }))),\n tableRecord.get('aggregation') && (React.createElement(SelectBox, { name: \"aggregationExpandType\", label: $l('Table', 'row_expand_settings') },\n React.createElement(Option, { value: \"cell\" }, $l('Table', 'expand_cell')),\n React.createElement(Option, { value: \"row\" }, $l('Table', 'expand_row')),\n React.createElement(Option, { value: \"column\" }, $l('Table', 'expand_column')))))),\n React.createElement(CollapsePanel, { header: React.createElement(\"span\", { className: `${prefixCls}-customization-panel-title` }, $l('Table', 'column_settings')), key: \"columns\", extra: React.createElement(Button, { className: `${prefixCls}-customization-header-button`, color: ButtonColor.primary, funcType: FuncType.flat, size: Size.small, onClick: handleRestoreColumns }, $l('Table', 'restore_default')) },\n React.createElement(ColumnGroups, { dataSet: columnDataSet }))));\n});\nCustomizationSettings.displayName = 'CustomizationSettings';\nexport default CustomizationSettings;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport Tree from '../tree/Tree';\nimport SubGroups from './SubGroups';\nimport TableContext from '../../TableContext';\nconst Group = observer(function Group(props) {\n const { header, records, value, onDragEnd, treeNodeRenderer, treeNodeSuffix } = props;\n const { prefixCls } = useContext(TableContext);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-customization-tree-group-header` }, header),\n React.createElement(Tree, { value: value },\n React.createElement(SubGroups, { records: records, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix }))));\n});\nGroup.displayName = 'Group';\nexport default Group;\n","import React, { useCallback, useContext } from 'react';\nimport { action } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Button from '../../../button/Button';\nimport { FuncType } from '../../../button/enum';\nimport { Size } from '../../../core/enum';\nimport Dropdown from '../../../dropdown/Dropdown';\nimport Menu from '../../../menu';\nimport Switch from '../../../switch/Switch';\nimport TableContext from '../../TableContext';\nimport { ColumnLock } from '../../enum';\nimport { Placements } from '../../../dropdown/enum';\nimport { $l } from '../../../locale-context';\nconst { Item } = Menu;\nfunction findRecords(record, groups) {\n const { parent } = record;\n if (parent) {\n return parent.children || [];\n }\n const lock = record.get('lock');\n const group = groups.find(({ value }) => value === lock);\n if (group) {\n return group.records;\n }\n return [];\n}\nconst ItemSuffix = observer(function ItemSuffix(props) {\n const { record, index, records, groups } = props;\n const { prefixCls, tableStore: { columnHideable, columnTitleEditable, columnDraggable } } = useContext(TableContext);\n const changeLock = useCallback((lock) => {\n const oldLock = record.get('lock');\n const group = groups.find(({ value }) => value === lock);\n if (group) {\n record.set('sort', group.records.length);\n }\n record.set('lock', lock);\n const oldGroup = groups.find(({ value }) => value === oldLock);\n if (oldGroup) {\n oldGroup.records.filter(r => r !== record).forEach((r, sort) => r.set('sort', sort));\n }\n }, [record, groups]);\n const changeIndex = useCallback((newIndex) => {\n const oldSort = record.get('sort');\n const list = findRecords(record, groups);\n const [removed] = list.splice(oldSort, 1);\n if (removed) {\n list.splice(newIndex, 0, removed);\n }\n list.forEach((r, sort) => r.set('sort', sort));\n }, [record, groups]);\n const handleMenuClick = useCallback(action((arg) => {\n const { key } = arg;\n switch (key) {\n case 'rename':\n record.setState('editing', true);\n break;\n case 'unlock':\n changeLock(false);\n break;\n case 'left':\n changeLock(ColumnLock.left);\n break;\n case 'right':\n changeLock(ColumnLock.right);\n break;\n case 'top':\n changeIndex(0);\n break;\n case 'up':\n changeIndex(index - 1);\n break;\n case 'down':\n changeIndex(index + 1);\n break;\n default:\n }\n }), [record, index, changeLock, changeIndex]);\n const getTreeNodesMenus = () => {\n const lock = record.get('lock');\n const menus = [];\n if (columnTitleEditable && record.get('titleEditable') !== false) {\n menus.push(React.createElement(Item, { key: \"rename\" }, $l('Table', 'rename')));\n }\n if (columnDraggable) {\n if (!record.parent) {\n if (lock) {\n menus.push(React.createElement(Item, { key: \"unlock\" }, $l('Table', 'unlock')));\n }\n else {\n menus.push(React.createElement(Item, { key: \"left\" }, $l('Table', 'left_lock')), React.createElement(Item, { key: \"right\" }, $l('Table', 'right_lock')));\n }\n }\n if (index > 1) {\n menus.push(React.createElement(Item, { key: 'top' }, $l('Table', 'top')));\n }\n if (index > 0) {\n menus.push(React.createElement(Item, { key: \"up\" }, $l('Table', 'up')));\n }\n if (index < records.length - 1) {\n menus.push(React.createElement(Item, { key: \"down\" }, $l('Table', 'down')));\n }\n }\n if (menus.length) {\n return (React.createElement(Menu, { prefixCls: `${prefixCls}-dropdown-menu`, onClick: handleMenuClick }, menus));\n }\n };\n const menu = getTreeNodesMenus();\n return (React.createElement(React.Fragment, null,\n menu && (React.createElement(Dropdown, { overlay: menu, placement: Placements.bottomRight },\n React.createElement(Button, { funcType: FuncType.flat, size: Size.small, icon: \"more_horiz\", className: `${prefixCls}-customization-tree-treenode-hover-button` }))),\n React.createElement(Switch, { record: record, disabled: !columnHideable || record.get('hideable') === false || (record.parent && record.parent.get('hidden')), name: \"hidden\", value: false, unCheckedValue: true })));\n});\nItemSuffix.displayName = 'ItemSuffix';\nexport default ItemSuffix;\n","import React, { isValidElement, useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport ObserverTextField from '../../../text-field/TextField';\nimport { getHeader } from '../../utils';\nimport TableContext from '../../TableContext';\nconst ItemTitle = observer(function ItemTitle(props) {\n const { record, provided } = props;\n const { dataSet, tableStore, aggregation } = useContext(TableContext);\n const { columnTitleEditable } = tableStore;\n const editing = record.getState('editing');\n const handleEditBlur = useCallback(() => {\n record.setState('editing', false);\n }, []);\n const handleHeaderChange = useCallback((value) => {\n record.set('title', value);\n }, [record]);\n const title = record.get('title');\n const header = getHeader({\n name: record.get('name'),\n title,\n header: record.get('header'),\n }, dataSet, aggregation);\n const titleEditable = columnTitleEditable && record.get('titleEditable') !== false;\n return (React.createElement(React.Fragment, null, editing && titleEditable ? (React.createElement(ObserverTextField, { onBlur: handleEditBlur, value: isValidElement(header) ? title : header, onChange: handleHeaderChange, autoFocus: true })) : (React.createElement(\"span\", Object.assign({}, (provided && provided.dragHandleProps), { style: provided ? { cursor: 'move' } : undefined }), header))));\n});\nItemTitle.displayName = 'ItemTitle';\nexport default ItemTitle;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport SubGroups from './SubGroups';\nimport TreeNode from '../tree/TreeNode';\nimport TableContext from '../../TableContext';\nconst SubGroup = observer(function SubGroup(props) {\n const { treeNodeRenderer, treeNodeSuffix, childrenRecords, onDragEnd, ...rest } = props;\n const { tableStore } = useContext(TableContext);\n const treeNode = (React.createElement(TreeNode, Object.assign({}, rest, { isLeaf: false, renderer: treeNodeRenderer, suffix: treeNodeSuffix }),\n React.createElement(SubGroups, { records: childrenRecords, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix })));\n return tableStore.columnDraggable ? (React.createElement(DragDropContext, { onDragEnd: onDragEnd }, treeNode)) : treeNode;\n});\nSubGroup.displayName = 'SubGroup';\nexport default SubGroup;\n","import React, { cloneElement, useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport sortBy from 'lodash/sortBy';\nimport { Draggable } from 'react-beautiful-dnd';\nimport TreeNode from '../tree/TreeNode';\nimport SubGroup from './SubGroup';\nimport TableContext from '../../TableContext';\nconst SubGroups = observer(function SubGroups(props) {\n const { treeNodeRenderer, treeNodeSuffix, records, onDragEnd, ...rest } = props;\n const { tableStore: { columnDraggable } } = useContext(TableContext);\n return (React.createElement(React.Fragment, null, sortBy(records, [r => r.get('sort')]).map((record, index, list) => {\n const children = (record.children ? (React.createElement(SubGroup, Object.assign({ key: record.key, record: record, childrenRecords: record.children, onDragEnd: onDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix, index: index, records: list }, rest))) : (React.createElement(TreeNode, Object.assign({ key: record.key, record: record, isLeaf: true, renderer: treeNodeRenderer, suffix: treeNodeSuffix, index: index, records: list }, rest))));\n return columnDraggable ? (React.createElement(Draggable, { key: record.key, draggableId: String(record.key), index: index }, (provided, snapshot) => (cloneElement(children, { provided, snapshot })))) : children;\n })));\n});\nSubGroups.displayName = 'SubGroups';\nexport default SubGroups;\n","import React, { useCallback, useContext, useMemo } from 'react';\nimport { action, observable } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport sortBy from 'lodash/sortBy';\nimport Group from './Group';\nimport { ColumnLock } from '../../enum';\nimport { $l } from '../../../locale-context';\nimport ItemTitle from './ItemTitle';\nimport TableContext from '../../TableContext';\nimport ItemSuffix from './ItemSuffix';\nconst ColumnGroups = observer((props) => {\n const { dataSet } = props;\n const { groupedTreeRecords } = dataSet;\n const { tableStore: { columnDraggable }, prefixCls } = useContext(TableContext);\n const groups = useMemo(() => {\n const array = [\n { value: ColumnLock.left, records: [] },\n { value: ColumnLock.right, records: [] },\n { value: false, records: [] },\n ];\n return array.map((group) => {\n const { value } = group;\n const found = groupedTreeRecords.find((item) => item.value === value);\n if (found) {\n group.records = observable.array(sortBy(found.records, [r => r.get('sort')]));\n }\n else {\n group.records = observable.array();\n }\n return group;\n });\n }, [groupedTreeRecords]);\n const handleDragTree = useCallback(action((srcIndex, destIndex, srcLock, destLock) => {\n const srcGroup = groups.find((group) => String(group.value) === srcLock);\n if (srcGroup) {\n const { records } = srcGroup;\n const [removed] = records.splice(srcIndex, 1);\n if (srcLock === destLock) {\n records.splice(destIndex, 0, removed);\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n else {\n removed.set('lock', destLock === 'false' ? false : destLock);\n const destGroup = groups.find((group) => String(group.value) === destLock);\n if (destGroup) {\n const { records: destRecords } = destGroup;\n if (destRecords.length) {\n destRecords.splice(destIndex, 0, removed);\n }\n else {\n destRecords.push(removed);\n }\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n destRecords.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n }\n }\n }), [groups]);\n const handleDragTreeNode = useCallback(action((srcIndex, destIndex, parentId) => {\n const parent = dataSet.find(r => String(r.key) === parentId);\n if (parent) {\n const { children } = parent;\n if (children) {\n const records = sortBy(children, [r => r.get('sort')]);\n const [removed] = records.splice(srcIndex, 1);\n records.splice(destIndex, 0, removed);\n records.forEach((r, index) => {\n r.set('sort', index);\n });\n }\n }\n }), [dataSet]);\n const handleDragEnd = useCallback(({ destination, source: { droppableId: srcDroppableId, index: srcIndex } }) => {\n if (destination) {\n const { droppableId: destDroppableId, index: destIndex } = destination;\n const dest = destDroppableId.split('__--__');\n const src = srcDroppableId.split('__--__');\n if (srcIndex !== destIndex || src[1] !== dest[1]) {\n if (dest[0] === 'tree' && src[0] === 'tree') {\n handleDragTree(srcIndex, destIndex, src[1], dest[1]);\n }\n else if (dest[0] === 'treenode' && src[0] === 'treenode') {\n handleDragTreeNode(srcIndex, destIndex, src[1]);\n }\n }\n }\n }, [handleDragTree, handleDragTreeNode]);\n const treeNodeRenderer = useCallback((record, provided) => (React.createElement(ItemTitle, { record: record, provided: provided })), []);\n const treeNodeSuffix = useCallback((record, index, records) => (React.createElement(ItemSuffix, { record: record, index: index, records: records, groups: groups })), [groups]);\n function getGroupHeader(lock) {\n switch (lock) {\n case ColumnLock.left:\n return $l('Table', 'left_lock');\n case ColumnLock.right:\n return $l('Table', 'right_lock');\n default:\n return $l('Table', 'unlocked');\n }\n }\n const groupNodes = groups.map(({ value, records }) => (React.createElement(Group, { key: String(value), value: value, header: getGroupHeader(value), records: records, onDragEnd: handleDragEnd, treeNodeRenderer: treeNodeRenderer, treeNodeSuffix: treeNodeSuffix })));\n return (React.createElement(\"div\", { className: `${prefixCls}-customization-panel-content` }, columnDraggable ? (React.createElement(DragDropContext, { onDragEnd: handleDragEnd }, groupNodes)) : groupNodes));\n});\nColumnGroups.displayName = 'ColumnGroups';\nexport default ColumnGroups;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Droppable } from 'react-beautiful-dnd';\nimport TableContext from '../../TableContext';\nconst Tree = observer(function Tree(props) {\n const { children, value } = props;\n const { prefixCls, columnsDragRender = {}, tableStore: { columnDraggable } } = useContext(TableContext);\n const { droppableProps, renderClone } = columnsDragRender;\n return columnDraggable ? (React.createElement(Droppable, Object.assign({ droppableId: `tree__--__${value}`, key: \"tree\", renderClone: renderClone ? (provided, snapshot, rubric) => renderClone({ provided, snapshot, rubric }) : undefined }, droppableProps), (droppableProvided) => (React.createElement(\"div\", Object.assign({ ref: droppableProvided.innerRef, className: `${prefixCls}-customization-tree` }, (droppableProvided && droppableProvided.droppableProps)),\n children,\n droppableProvided && droppableProvided.placeholder)))) : (React.createElement(\"div\", { className: `${prefixCls}-customization-tree` }, children));\n});\nTree.displayName = 'Tree';\nexport default Tree;\n","import React, { Children, cloneElement, isValidElement, useCallback, useContext, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport { Droppable } from 'react-beautiful-dnd';\nimport defaultTo from 'lodash/defaultTo';\nimport isFunction from 'lodash/isFunction';\nimport Icon from '../../../icon';\nimport TableContext from '../../TableContext';\nconst TreeNode = observer(function TreeNode(props) {\n const { dataSet, prefixCls, columnsDragRender = {}, tableStore: { columnDraggable } } = useContext(TableContext);\n const { droppableProps, renderClone, renderIcon } = columnsDragRender;\n const selfPrefixCls = `${prefixCls}-customization-tree-treenode`;\n const { renderer, suffix, children, className, isLeaf, hidden, record, index, records, provided, snapshot } = props;\n const sort = record.get('sort');\n const isExpanded = defaultTo(record.getState('expanded'), true);\n const [expended, setExpanded] = useState(isExpanded);\n const [isHover, setIsHover] = useState(false);\n const toggleExpanded = useCallback(() => {\n record.setState('expanded', !isExpanded);\n if (!expended) {\n setExpanded(true);\n }\n }, [record, isExpanded, expended]);\n const handleMouseEnter = useCallback(() => setIsHover(true), []);\n const handleMouseLeave = useCallback(() => setIsHover(false), []);\n const { isDragging } = snapshot || {};\n useEffect(() => {\n setIsHover(false);\n }, [sort]);\n function renderSwitcherIcon() {\n return !isLeaf && (React.createElement(Icon, { type: \"expand_more\", className: classNames(`${selfPrefixCls}-switcher-icon`, { [`${selfPrefixCls}-switcher-icon-close`]: !isExpanded }), onClick: toggleExpanded }));\n }\n function renderChildren() {\n return Children.map(children, child => isValidElement(child) ? cloneElement(child, {\n hidden: hidden || !isExpanded,\n }) : child);\n }\n function getIcon() {\n if (provided) {\n const iconProps = { ...provided.dragHandleProps, style: { cursor: 'move' } };\n if (isFunction(renderIcon)) {\n const icon = renderIcon({ dataSet, column: record.toData(), snapshot });\n if (isValidElement(icon)) {\n return cloneElement(icon, iconProps);\n }\n return icon;\n }\n return (React.createElement(Icon, Object.assign({ className: `${selfPrefixCls}-drag-icon`, type: \"baseline-drag_indicator\" }, iconProps)));\n }\n }\n return (React.createElement(\"div\", Object.assign({ ref: provided && provided.innerRef }, (provided && provided.draggableProps), { className: classNames({ [`${selfPrefixCls}-dragging`]: isDragging }) }),\n React.createElement(\"div\", { className: classNames(selfPrefixCls, className, { [`${selfPrefixCls}-hover`]: isHover }), style: { display: hidden ? 'none' : '' }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },\n React.createElement(\"div\", { className: `${selfPrefixCls}-content` },\n getIcon(),\n React.createElement(\"div\", { className: `${selfPrefixCls}-title` },\n React.createElement(\"span\", { className: `${selfPrefixCls}-title-text` }, renderer(record, provided)),\n React.createElement(\"span\", { className: classNames(`${selfPrefixCls}-switcher`, { [`${selfPrefixCls}-switcher-noop`]: isLeaf }) }, renderSwitcherIcon())),\n suffix(record, index, records))),\n columnDraggable ? (React.createElement(Droppable, Object.assign({ droppableId: `treenode__--__${record.key}`, key: \"treenode\", renderClone: renderClone ? (cloneProvided, cloneSnapshot, rubric) => renderClone({ provided: cloneProvided, snapshot: cloneSnapshot, rubric }) : undefined }, droppableProps), (droppableProvided) => (React.createElement(\"div\", Object.assign({ style: { paddingLeft: 15 }, ref: droppableProvided && droppableProvided.innerRef }, (droppableProvided && droppableProvided.droppableProps)),\n expended && renderChildren(),\n droppableProvided && droppableProvided.placeholder)))) : (React.createElement(\"div\", { style: { paddingLeft: 15 } }, expended && renderChildren()))));\n});\nTreeNode.displayName = 'TreeNode';\nexport default TreeNode;\n","export { Tooltip as TableColumnTooltip } from '../core/enum';\nexport var ColumnLock;\n(function (ColumnLock) {\n ColumnLock[\"left\"] = \"left\";\n ColumnLock[\"right\"] = \"right\";\n})(ColumnLock || (ColumnLock = {}));\nexport var RowBoxPlacement;\n(function (RowBoxPlacement) {\n RowBoxPlacement[\"start\"] = \"start\";\n RowBoxPlacement[\"end\"] = \"end\";\n})(RowBoxPlacement || (RowBoxPlacement = {}));\nexport var ColumnAlign;\n(function (ColumnAlign) {\n ColumnAlign[\"left\"] = \"left\";\n ColumnAlign[\"center\"] = \"center\";\n ColumnAlign[\"right\"] = \"right\";\n})(ColumnAlign || (ColumnAlign = {}));\nexport var DragColumnAlign;\n(function (DragColumnAlign) {\n DragColumnAlign[\"left\"] = \"left\";\n DragColumnAlign[\"right\"] = \"right\";\n})(DragColumnAlign || (DragColumnAlign = {}));\nexport var ScrollPosition;\n(function (ScrollPosition) {\n ScrollPosition[\"left\"] = \"left\";\n ScrollPosition[\"right\"] = \"right\";\n ScrollPosition[\"both\"] = \"both\";\n ScrollPosition[\"middle\"] = \"middle\";\n})(ScrollPosition || (ScrollPosition = {}));\nexport var SelectionMode;\n(function (SelectionMode) {\n SelectionMode[\"rowbox\"] = \"rowbox\";\n SelectionMode[\"treebox\"] = \"treebox\";\n SelectionMode[\"click\"] = \"click\";\n SelectionMode[\"none\"] = \"none\";\n SelectionMode[\"dblclick\"] = \"dblclick\";\n SelectionMode[\"mousedown\"] = \"mousedown\";\n})(SelectionMode || (SelectionMode = {}));\nexport var TableButtonType;\n(function (TableButtonType) {\n TableButtonType[\"add\"] = \"add\";\n TableButtonType[\"delete\"] = \"delete\";\n TableButtonType[\"remove\"] = \"remove\";\n TableButtonType[\"save\"] = \"save\";\n TableButtonType[\"query\"] = \"query\";\n TableButtonType[\"reset\"] = \"reset\";\n TableButtonType[\"expandAll\"] = \"expandAll\";\n TableButtonType[\"collapseAll\"] = \"collapseAll\";\n TableButtonType[\"export\"] = \"export\";\n})(TableButtonType || (TableButtonType = {}));\nexport var TableCommandType;\n(function (TableCommandType) {\n TableCommandType[\"edit\"] = \"edit\";\n TableCommandType[\"delete\"] = \"delete\";\n})(TableCommandType || (TableCommandType = {}));\nexport var TableMode;\n(function (TableMode) {\n TableMode[\"list\"] = \"list\";\n TableMode[\"tree\"] = \"tree\";\n})(TableMode || (TableMode = {}));\nexport var TableEditMode;\n(function (TableEditMode) {\n TableEditMode[\"cell\"] = \"cell\";\n TableEditMode[\"inline\"] = \"inline\";\n})(TableEditMode || (TableEditMode = {}));\nexport var TableQueryBarType;\n(function (TableQueryBarType) {\n TableQueryBarType[\"normal\"] = \"normal\";\n TableQueryBarType[\"bar\"] = \"bar\";\n TableQueryBarType[\"none\"] = \"none\";\n TableQueryBarType[\"advancedBar\"] = \"advancedBar\";\n TableQueryBarType[\"professionalBar\"] = \"professionalBar\";\n TableQueryBarType[\"filterBar\"] = \"filterBar\";\n})(TableQueryBarType || (TableQueryBarType = {}));\nexport var TablePaginationPosition;\n(function (TablePaginationPosition) {\n TablePaginationPosition[\"top\"] = \"top\";\n TablePaginationPosition[\"bottom\"] = \"bottom\";\n TablePaginationPosition[\"both\"] = \"both\";\n})(TablePaginationPosition || (TablePaginationPosition = {}));\nexport var TableHeightType;\n(function (TableHeightType) {\n TableHeightType[\"auto\"] = \"auto\";\n TableHeightType[\"fixed\"] = \"fixed\";\n TableHeightType[\"flex\"] = \"flex\";\n})(TableHeightType || (TableHeightType = {}));\nexport var TableAutoHeightType;\n(function (TableAutoHeightType) {\n TableAutoHeightType[\"maxHeight\"] = \"maxHeight\";\n TableAutoHeightType[\"minHeight\"] = \"minHeight\";\n})(TableAutoHeightType || (TableAutoHeightType = {}));\nexport var HighLightRowType;\n(function (HighLightRowType) {\n HighLightRowType[\"click\"] = \"click\";\n HighLightRowType[\"focus\"] = \"focus\";\n})(HighLightRowType || (HighLightRowType = {}));\n","import Table from './Table';\nexport default Table;\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { action, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Menu, { Item } from 'choerodon-ui/lib/rc-components/menu/index';\nimport Button from '../../button/Button';\nimport Dropdown from '../../dropdown/Dropdown';\nimport { Size } from '../../core/enum';\nimport { FuncType } from '../../button/enum';\nimport TableContext from '../TableContext';\nimport { getHeader } from '../utils';\nimport { Placements } from '../../dropdown/enum';\nimport { stopEvent, stopPropagation } from '../../_util/EventManager';\nimport autobind from '../../_util/autobind';\nfunction handleMenuClick({ domEvent }) {\n domEvent.preventDefault();\n}\nlet ColumnFilter = class ColumnFilter extends Component {\n constructor(props, context) {\n super(props, context);\n this.setDropDownHidden(true);\n }\n saveMenu(node) {\n this.menu = node;\n }\n handleHiddenChange(hidden) {\n this.setDropDownHidden(hidden);\n }\n handleKeyDown(e) {\n if (this.menu && this.menu.onKeyDown(e)) {\n stopEvent(e);\n }\n }\n setDropDownHidden(hidden) {\n this.hidden = hidden;\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return `${prefixCls}-columns-chooser`;\n }\n render() {\n const prefixCls = this.getPrefixCls();\n return (React.createElement(\"div\", { className: prefixCls, onFocus: stopPropagation, onMouseDown: stopPropagation, tabIndex: -1 },\n React.createElement(Dropdown, { placement: Placements.bottomRight, overlay: this.getMenu, hidden: this.hidden, onHiddenChange: this.handleHiddenChange },\n React.createElement(Button, { funcType: FuncType.flat, icon: \"view_column\", size: Size.small, onKeyDown: this.handleKeyDown }))));\n }\n handleMenuSelect({ item: { props: { value }, }, }) {\n value.hidden = false;\n }\n handleMenuUnSelect({ item: { props: { value }, }, }) {\n value.hidden = true;\n }\n getMenu() {\n const { prefixCls } = this.props;\n const selfPrefixCls = this.getPrefixCls();\n const { tableStore, dataSet, aggregation } = this.context;\n const { allLeafs } = tableStore.columnGroups;\n const selectedKeys = [];\n const columns = [];\n allLeafs.forEach(({ column, key }) => {\n if (column.hideable) {\n const header = getHeader(column, dataSet, aggregation);\n if (header) {\n if (!column.hidden) {\n selectedKeys.push(key);\n }\n columns.push([column, header, key]);\n }\n }\n });\n return (React.createElement(Menu, { ref: this.saveMenu, multiple: true, defaultActiveFirst: true, prefixCls: `${prefixCls}-dropdown-menu`, className: `${selfPrefixCls}-dropdown-menu`, selectedKeys: selectedKeys, onSelect: this.handleMenuSelect, onDeselect: this.handleMenuUnSelect, onClick: handleMenuClick }, this.getOptions(columns)));\n }\n getOptions(columns) {\n return columns.map(([column, header, key]) => (React.createElement(Item, { key: key, value: column },\n React.createElement(\"span\", null, header))));\n }\n};\nColumnFilter.displayName = 'ColumnFilter';\nColumnFilter.contextType = TableContext;\n__decorate([\n observable\n], ColumnFilter.prototype, \"hidden\", void 0);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"saveMenu\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"handleHiddenChange\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"handleKeyDown\", null);\n__decorate([\n action\n], ColumnFilter.prototype, \"setDropDownHidden\", null);\n__decorate([\n action\n], ColumnFilter.prototype, \"handleMenuSelect\", null);\n__decorate([\n action\n], ColumnFilter.prototype, \"handleMenuUnSelect\", null);\n__decorate([\n autobind\n], ColumnFilter.prototype, \"getMenu\", null);\nColumnFilter = __decorate([\n observer\n], ColumnFilter);\nexport default ColumnFilter;\n","import React, { useCallback, useMemo, useState, memo } from 'react';\nimport Icon from 'choerodon-ui/lib/icon';\nimport TextField from '../../text-field';\nimport CheckBox from '../../check-box';\nimport { $l } from '../../locale-context';\nconst FieldList = memo(function FieldList({ value, onSelect, onUnSelect, groups, prefixCls }) {\n const [searchText, setSearchText] = useState('');\n const codes = useMemo(() => groups.reduce((res, current) => [...res, ...current.fields.map((o) => o.get('name'))], []), [groups]);\n const hasSelect = useMemo(() => value.length > 0, [value.length]);\n const hasSelectAll = useMemo(() => value.length >= codes.length, [codes.length, value.length]);\n const isChecked = useCallback((code) => value.includes(code), [value]);\n const handleChange = useCallback((code, select) => {\n if (select) {\n onSelect(code);\n }\n else {\n onUnSelect(code);\n }\n }, [onSelect, onUnSelect]);\n const renderGroup = useCallback((group) => group.fields.length > 0 && (React.createElement(\"div\", { className: `${prefixCls}-section`, key: group.title },\n React.createElement(\"div\", { className: `${prefixCls}-list` }, group.fields.map((field) => {\n const code = field.get('name');\n const label = field.get('label');\n const checked = isChecked(code);\n if (label.includes(searchText || '')) {\n return (React.createElement(\"div\", { className: `${prefixCls}-item`, key: code },\n React.createElement(CheckBox, { value: code, disabled: field.get('disabled'), checked: checked, onChange: () => handleChange(code, !checked) }, label)));\n }\n return null;\n })))), [handleChange, isChecked, searchText]);\n const selectItems = value.filter(v => codes.includes(v));\n return (React.createElement(\"div\", { className: prefixCls },\n React.createElement(\"div\", { className: `${prefixCls}-search` },\n React.createElement(TextField, { style: { flex: 1 }, value: searchText, onClick: (e) => {\n e.preventDefault();\n e.currentTarget.focus();\n }, onChange: (v) => {\n setSearchText(v);\n }, onInput: (e) => {\n // @ts-ignore\n setSearchText(e.target.value);\n }, prefix: React.createElement(Icon, { type: \"search\" }), placeholder: $l('Table', 'enter_text_filter'), clearButton: true })),\n React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(\"span\", { className: `${prefixCls}-search-selected` },\n $l('Screening', 'selected'),\n React.createElement(\"span\", { className: `${prefixCls}-search-items` }, selectItems.length),\n $l('Transfer', 'items')),\n React.createElement(\"span\", { className: `${prefixCls}-search-divide` }),\n React.createElement(\"span\", { style: { display: !hasSelectAll ? 'inline-block' : 'none' }, className: `${prefixCls}-search-action`, onClick: () => {\n handleChange(codes, true);\n } }, $l('Select', 'select_all')),\n React.createElement(\"span\", { style: { display: hasSelect ? 'inline-block' : 'none' }, className: `${prefixCls}-search-action`, onClick: () => {\n handleChange(codes, false);\n } }, $l('Table', 'clear_filter'))),\n React.createElement(\"div\", { className: `${prefixCls}-content` }, groups.map((group) => renderGroup(group)))));\n});\nFieldList.displayName = 'FieldList';\nexport default FieldList;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement } from 'react';\nimport omit from 'lodash/omit';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isNil from 'lodash/isNil';\nimport defer from 'lodash/defer';\nimport noop from 'lodash/noop';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport isString from 'lodash/isString';\nimport { observer } from 'mobx-react';\nimport { action, computed, isArrayLike, observable, reaction, runInAction, toJS } from 'mobx';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport Icon from '../../icon';\nimport { TextField } from '../../text-field/TextField';\nimport autobind from '../../_util/autobind';\nimport measureTextWidth from '../../_util/measureTextWidth';\nimport { getEditorByField } from '../utils';\nimport ObserverSelect from '../../select/Select';\nimport Option from '../../option/Option';\nimport isSameLike from '../../_util/isSameLike';\nimport { DataSetEvents } from '../../data-set/enum';\nimport { processFieldValue, toRangeValue } from '../../field/utils';\nlet FilterSelect = class FilterSelect extends TextField {\n constructor(props, context) {\n super(props, context);\n this.setFilterText = debounce(action((text) => {\n this.filterText = text;\n }), 500);\n this.doQuery = throttle(() => {\n const { onQuery = noop } = this.props;\n const { optionDataSet } = this.observableProps;\n optionDataSet.query();\n onQuery();\n }, 500);\n const { observableProps } = this;\n this.on(observableProps.queryDataSet);\n this.reaction = reaction(() => observableProps.queryDataSet, this.on);\n }\n get value() {\n const { filter } = this.props;\n const { value, queryDataSet } = this.observableProps;\n if (value) {\n return filter ? value.filter(filter) : value;\n }\n const { paramName } = this.props;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n const result = [];\n const keys = queryDataSet.fields.keys();\n [...new Set(paramName ? [...keys, paramName] : keys)].forEach((key) => {\n if (key && (!filter || filter(key))) {\n const values = current.get(key);\n if (isArrayLike(values)) {\n values.forEach(item => !isNil(item) && result.push(key));\n }\n else if (!isNil(values)) {\n result.push(key);\n }\n }\n });\n return result;\n }\n }\n return undefined;\n }\n set value(value) {\n runInAction(() => {\n this.observableProps.value = value;\n });\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n optionDataSet: props.optionDataSet,\n queryDataSet: props.queryDataSet,\n };\n }\n on(ds) {\n this.off();\n if (ds) {\n ds.addEventListener(DataSetEvents.update, this.handleDataSetUpdate);\n ds.addEventListener(DataSetEvents.reset, this.handleDataSetReset);\n }\n this.queryDataSet = ds;\n }\n off() {\n const { queryDataSet } = this;\n if (queryDataSet) {\n queryDataSet.removeEventListener(DataSetEvents.update, this.handleDataSetUpdate);\n queryDataSet.removeEventListener(DataSetEvents.reset, this.handleDataSetReset);\n }\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n this.setFilterText.cancel();\n this.off();\n this.reaction();\n }\n setText(text) {\n super.setText(text);\n this.setFilterText(text);\n }\n getPlaceholders() {\n if (!this.selectField) {\n return super.getPlaceholders();\n }\n return [];\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'paramName',\n 'optionDataSet',\n 'queryDataSet',\n 'dropdownMenuStyle',\n 'hiddenIfNone',\n 'editable',\n 'filter',\n ]);\n }\n getRootDomNode() {\n return this.element;\n }\n defaultRenderer({ value, repeat = 0 }) {\n const { paramName } = this.props;\n const { queryDataSet } = this.observableProps;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n let fieldValue = current.get(value);\n if (value === paramName) {\n return fieldValue;\n }\n const field = queryDataSet.getField(value);\n if (field) {\n const range = field.get('range');\n if (field.get('multiple')) {\n fieldValue = (fieldValue || [])[repeat];\n }\n if (range) {\n return `${this.getFieldLabel(field)}: ${toRangeValue(fieldValue, range).map(v => {\n return processFieldValue(isPlainObject(v) ? v : super.processValue(v), field, {\n getProp: (name) => this.getProp(name),\n getValue: () => this.getValue(),\n lang: this.lang,\n });\n }).join('~')}`;\n }\n if (field.get('bind') || isNil(fieldValue))\n return;\n return `${this.getFieldLabel(field)}: ${processFieldValue(isPlainObject(fieldValue) ? fieldValue : super.processValue(fieldValue), field, {\n getProp: (name) => this.getProp(name),\n getValue: () => this.getValue(),\n lang: this.lang,\n })}`;\n }\n return value;\n }\n }\n }\n getQueryRecord() {\n const { queryDataSet } = this.observableProps;\n if (queryDataSet) {\n return queryDataSet.current;\n }\n }\n getQueryField(fieldName) {\n const { queryDataSet } = this.observableProps;\n if (queryDataSet) {\n return queryDataSet.getField(fieldName);\n }\n }\n addQueryParams(value) {\n const { paramName } = this.props;\n if (paramName) {\n this.setQueryValue(paramName, value);\n }\n }\n afterRemoveValue(value, repeat) {\n const values = this.getQueryValues(value);\n if (repeat === -1) {\n values.pop();\n }\n else {\n values.splice(repeat, 1);\n }\n const multiple = this.getQueryFieldMultiple(value);\n this.setQueryValue(value, multiple ? values : values[0]);\n }\n getQueryFieldMultiple(value) {\n const { paramName } = this.props;\n if (paramName !== value) {\n const field = this.getQueryField(value);\n if (field && field.get('multiple')) {\n return true;\n }\n }\n return false;\n }\n handleDataSetReset() {\n const { onReset = noop } = this.props;\n this.setValue(undefined);\n onReset();\n }\n handleDataSetUpdate({ name, value }) {\n const values = this.getValues();\n if (isArrayLike(value)) {\n const { length } = value;\n if (length) {\n let repeat = 0;\n const filtered = values.filter(item => {\n if (item === name) {\n repeat += 1;\n if (repeat > length) {\n return false;\n }\n }\n return true;\n });\n for (let i = 0, n = length - repeat; i < n; i += 1) {\n filtered.push(name);\n }\n this.setValue(filtered);\n }\n else {\n this.setValue(values.filter(item => item !== name));\n }\n }\n else if (isNil(value)) {\n this.setValue(values.filter(item => item !== name));\n }\n else {\n if (values.indexOf(name) === -1) {\n values.push(name);\n }\n this.setValue(values);\n }\n this.doQuery();\n }\n handleBlur(e) {\n super.handleBlur(e);\n if (!e.isDefaultPrevented()) {\n this.setSelectField(undefined);\n }\n }\n isEditorReadOnly() {\n const { paramName, editable } = this.props;\n return (this.getQueryValues(paramName).length > 0 && !this.selectField) || !editable;\n }\n handleFieldChange(value) {\n const { selectField } = this;\n if (selectField) {\n const { name } = selectField;\n this.setQueryValue(name, value);\n }\n else if (isString(value)) {\n this.addQueryParams(value);\n if (this.isFocused) {\n this.element.expand();\n }\n }\n else {\n this.setSelectField(value);\n }\n }\n handleInput(e) {\n this.setText(e.target.value);\n }\n handleFieldEnterDown() {\n defer(() => this.focus());\n }\n handleKeyDown(e) {\n if (this.selectField) {\n if (e.keyCode === KeyCode.BACKSPACE && !this.text) {\n this.setSelectField(undefined);\n }\n }\n else {\n super.handleKeyDown(e);\n }\n }\n handleEnterDown() {\n }\n setSelectField(value) {\n this.selectField = value;\n this.setFilterText(undefined);\n }\n getQueryValues(fieldName) {\n const current = this.getQueryRecord();\n if (current) {\n return [].concat(toJS(current.get(fieldName)) || []);\n }\n return [];\n }\n syncValueOnBlur() {\n }\n setQueryValue(fieldName, value) {\n const current = this.getQueryRecord();\n if (current) {\n current.set(fieldName, value);\n }\n this.setSelectField(undefined);\n }\n getFieldLabel(field) {\n return field.get('label') || field.name;\n }\n multipleFieldExistsValue(field, current) {\n if (field.get('multiple')) {\n const { options } = field;\n if (options && current) {\n const values = current.get(field.name);\n const valueField = field.get('valueField');\n return options.some(r => !values.some(value => isSameLike(r.get(valueField), value)));\n }\n }\n return false;\n }\n getInputFilterOptions(filterText) {\n const { optionDataSet, optionDataSet: { fields }, } = this.observableProps;\n const values = new Set();\n optionDataSet.forEach(record => {\n [...fields.keys()].forEach(key => {\n const value = record.get(key);\n if (isString(value) && value.toLowerCase().indexOf(filterText.toLowerCase()) !== -1) {\n values.add(value);\n }\n });\n });\n return [...values].map(value => (React.createElement(Option, { key: value, value: value }, value)));\n }\n getFieldSelectOptions() {\n const { paramName } = this.props;\n const { queryDataSet } = this.observableProps;\n const data = [];\n if (queryDataSet) {\n [...queryDataSet.fields.entries()].forEach(([key, field]) => {\n if (key !== paramName &&\n (this.getValues().indexOf(key) === -1 ||\n this.multipleFieldExistsValue(field, this.getQueryRecord())) &&\n !field.get('bind')) {\n data.push(React.createElement(Option, { key: key, value: field }, this.getFieldLabel(field)));\n }\n });\n }\n return data;\n }\n getFieldEditor(props, selectField) {\n const editor = getEditorByField(selectField, true);\n const editorProps = {\n ...props,\n key: 'value',\n record: this.getQueryRecord(),\n name: selectField.name,\n autoFocus: true,\n onInput: this.handleInput,\n onEnterDown: this.handleFieldEnterDown,\n renderer: noop,\n };\n if (editor.type.__PRO_SELECT) {\n editorProps.dropdownMenuStyle = this.props.dropdownMenuStyle;\n editorProps.dropdownMatchSelectWidth = false;\n }\n return cloneElement(editor, editorProps);\n }\n getFieldSelect(props) {\n const { filterText, props: { dropdownMenuStyle }, } = this;\n const editable = !this.isEditorReadOnly();\n const options = editable && filterText\n ? this.getInputFilterOptions(filterText)\n : this.getFieldSelectOptions();\n return (React.createElement(ObserverSelect, Object.assign({}, props, { key: \"key\", combo: editable, searchable: editable, value: null, onInput: this.handleInput, onEnterDown: this.handleFieldEnterDown, autoFocus: this.isFocused, dropdownMenuStyle: dropdownMenuStyle, dropdownMatchSelectWidth: false }), options));\n }\n clear() {\n const record = this.getQueryRecord();\n if (record) {\n record.clear();\n }\n this.setValue(undefined);\n this.setSelectField(undefined);\n this.element.text = undefined;\n }\n renderWrapper() {\n const { hiddenIfNone } = this.props;\n if (this.isEmpty() && hiddenIfNone) {\n return null;\n }\n return super.renderWrapper();\n }\n renderMultipleEditor(props) {\n const { text, selectField, prefixCls } = this;\n const editorProps = {\n ...omit(props, ['multiple', 'prefixCls']),\n clearButton: false,\n prefix: null,\n suffix: null,\n elementClassName: `${prefixCls}-inner-editor`,\n onChange: this.handleFieldChange,\n };\n if (text) {\n editorProps.style = { width: pxToRem(measureTextWidth(text)) };\n }\n return (React.createElement(\"li\", { key: \"text\" },\n selectField ? (React.createElement(\"span\", { className: `${prefixCls}-select-field` },\n this.getFieldLabel(selectField),\n \":\")) : null,\n selectField\n ? this.getFieldEditor(editorProps, selectField)\n : this.getFieldSelect(editorProps)));\n }\n};\nFilterSelect.displayName = 'FilterSelect';\nFilterSelect.defaultProps = {\n ...TextField.defaultProps,\n multiple: true,\n clearButton: true,\n editable: true,\n prefix: React.createElement(Icon, { type: \"filter_list\" }),\n dropdownMenuStyle: { minWidth: pxToRem(180) },\n};\n__decorate([\n observable\n], FilterSelect.prototype, \"selectField\", void 0);\n__decorate([\n observable\n], FilterSelect.prototype, \"filterText\", void 0);\n__decorate([\n computed\n], FilterSelect.prototype, \"value\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"on\", null);\n__decorate([\n action\n], FilterSelect.prototype, \"setText\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"getRootDomNode\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"defaultRenderer\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleDataSetReset\", null);\n__decorate([\n autobind,\n action\n], FilterSelect.prototype, \"handleDataSetUpdate\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleFieldChange\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleInput\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleFieldEnterDown\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], FilterSelect.prototype, \"handleEnterDown\", null);\n__decorate([\n action\n], FilterSelect.prototype, \"setSelectField\", null);\n__decorate([\n action\n], FilterSelect.prototype, \"setQueryValue\", null);\n__decorate([\n action\n], FilterSelect.prototype, \"clear\", null);\nFilterSelect = __decorate([\n observer\n], FilterSelect);\nexport default FilterSelect;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component } from 'react';\nimport { observer } from 'mobx-react';\nimport isFunction from 'lodash/isFunction';\nimport noop from 'lodash/noop';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport Button from '../../button';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport TableButtons from './TableButtons';\nimport FilterSelect from './FilterSelect';\nimport Modal from '../../modal';\nimport Form from '../../form/Form';\nimport { LabelLayout } from '../../form/enum';\nlet TableAdvancedQueryBar = class TableAdvancedQueryBar extends Component {\n componentWillUnmount() {\n if (this.modal) {\n this.modal.close(true);\n }\n }\n handleFieldEnter() {\n this.handleQuery();\n if (this.modal) {\n this.modal.close();\n }\n }\n handleQuery() {\n const { dataSet } = this.props;\n dataSet.query();\n }\n valueFilter(value) {\n const { queryFields, queryFieldsLimit } = this.props;\n return queryFields.slice(0, queryFieldsLimit).every(element => element.props.name !== value);\n }\n getMoreFieldsButton(fields) {\n if (fields.length) {\n return (React.createElement(Button, { funcType: FuncType.raised, color: ButtonColor.primary, onClick: () => this.openMore(fields) }, $l('Table', 'advanced_query')));\n }\n }\n openMore(children) {\n this.modal = Modal.open({\n title: $l('Table', 'advanced_query'),\n children: React.createElement(Form, { labelLayout: LabelLayout.float }, children),\n okText: $l('Table', 'query_button'),\n onOk: this.handleQuery,\n style: {\n width: pxToRem(380),\n },\n drawer: true,\n });\n }\n getResetButton() {\n return (React.createElement(Button, { funcType: FuncType.raised, onClick: this.handleQueryReset }, $l('Table', 'reset_button')));\n }\n getQueryBar() {\n const { prefixCls, queryFieldsLimit, queryFields, buttons, queryDataSet } = this.props;\n if (queryDataSet && queryFields.length) {\n const currentFields = this.createFields(queryFields.slice(0, queryFieldsLimit), queryDataSet, false);\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit), queryDataSet, true);\n const moreFieldsButton = this.getMoreFieldsButton(moreFields);\n return (React.createElement(\"div\", { key: \"toolbar\", className: `${prefixCls}-advanced-query-bar` },\n currentFields,\n React.createElement(\"span\", { className: `${prefixCls}-advanced-query-bar-button` },\n this.getResetButton(),\n moreFieldsButton,\n buttons)));\n }\n }\n createFields(elements, dataSet, isMore) {\n return elements.map(element => {\n const { name, style, onEnterDown } = element.props;\n const newStyle = {};\n if (!isMore) {\n newStyle.width = pxToRem(260);\n newStyle.marginRight = pxToRem(10);\n }\n const props = {\n onEnterDown: isFunction(onEnterDown) ? onEnterDown : this.handleFieldEnter,\n labelLayout: LabelLayout.float,\n style: {\n marginRight: !isMore ? pxToRem(10) : 0,\n ...style,\n },\n };\n const field = dataSet.getField(name);\n if (field) {\n const label = field.get('label');\n if (label) {\n if (isMore) {\n props.label = label;\n }\n else {\n props.placeholder = label;\n }\n }\n }\n return cloneElement(element, props);\n });\n }\n handleQueryReset() {\n const { queryDataSet, dataSet, queryFields, onReset = noop } = this.props;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n onReset();\n }\n dataSet.fireEvent('queryBarReset', {\n dataSet,\n queryFields,\n });\n this.handleQuery();\n }\n }\n getFilterSelect() {\n const { prefixCls, dataSet, queryDataSet, onQuery = noop } = this.props;\n return (React.createElement(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: true, onQuery: onQuery }));\n }\n render() {\n const { buttons, prefixCls } = this.props;\n const queryBar = this.getQueryBar();\n if (queryBar) {\n return [queryBar, this.getFilterSelect()];\n }\n return React.createElement(TableButtons, { key: \"toolbar\", prefixCls: prefixCls, buttons: buttons });\n }\n};\nTableAdvancedQueryBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n queryFieldsLimit: 1,\n};\n__decorate([\n autobind\n], TableAdvancedQueryBar.prototype, \"handleFieldEnter\", null);\n__decorate([\n autobind\n], TableAdvancedQueryBar.prototype, \"handleQuery\", null);\n__decorate([\n autobind\n], TableAdvancedQueryBar.prototype, \"valueFilter\", null);\n__decorate([\n autobind\n], TableAdvancedQueryBar.prototype, \"handleQueryReset\", null);\nTableAdvancedQueryBar = __decorate([\n observer\n], TableAdvancedQueryBar);\nexport default TableAdvancedQueryBar;\n","import React, { memo } from 'react';\nexport default memo(function TableButtons({ prefixCls, buttons, children }) {\n const buttonGroup = buttons.length ? (React.createElement(\"span\", { className: `${prefixCls}-toolbar-button-group` }, buttons)) : null;\n if (buttonGroup || children) {\n return (React.createElement(\"div\", { className: `${prefixCls}-toolbar` },\n buttonGroup,\n children));\n }\n return null;\n});\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component, isValidElement } from 'react';\nimport { observer } from 'mobx-react';\nimport { action, isArrayLike, observable, runInAction, toJS } from 'mobx';\nimport uniq from 'lodash/uniq';\nimport pull from 'lodash/pull';\nimport noop from 'lodash/noop';\nimport map from 'lodash/map';\nimport isObject from 'lodash/isObject';\nimport isEnumEmpty from 'lodash/isEmpty';\nimport isNumber from 'lodash/isNumber';\nimport isFunction from 'lodash/isFunction';\nimport isEqual from 'lodash/isEqual';\nimport isArray from 'lodash/isArray';\nimport isString from 'lodash/isString';\nimport { getConfig, getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport Icon from 'choerodon-ui/lib/icon';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport { RecordStatus } from '../../data-set/enum';\nimport Button from '../../button';\nimport Dropdown from '../../dropdown';\nimport TextField from '../../text-field';\nimport Tooltip from '../../tooltip';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport isEmpty from '../../_util/isEmpty';\nimport FieldList from './FieldList';\nimport TableButtons from './TableButtons';\nimport ColumnFilter from './ColumnFilter';\nimport QuickFilterMenu from './quick-filter';\n/**\n * 当前数据是否有值并需要选中\n * @param data\n */\nfunction isSelect(data) {\n if (isObject(data[1])) {\n return !isEnumEmpty(data[1]);\n }\n return data[0] !== '__dirty' && !isEmpty(data[1]);\n}\nfunction isEqualDynamicProps(originalValue, newValue) {\n if (isEqual(newValue, originalValue)) {\n return true;\n }\n if (isObject(newValue) && isObject(originalValue) && Object.keys(newValue).length) {\n return Object.keys(newValue).every(key => {\n const value = newValue[key];\n const oldValue = originalValue[key];\n if (oldValue === value) {\n return true;\n }\n const oEp = isNumber(oldValue) ? isEmpty(oldValue) : isEnumEmpty(oldValue);\n const nEp = isNumber(value) ? isEmpty(value) : isEnumEmpty(value);\n if (oEp && nEp) {\n return true;\n }\n return isEqual(oldValue, value);\n });\n }\n return isEqual(newValue, originalValue);\n}\nlet TableDynamicFilterBar = class TableDynamicFilterBar extends Component {\n constructor(props, context) {\n super(props, context);\n this.refDropdown = null;\n this.refSingleWrapper = null;\n this.refEditors = new Map();\n this.originalConditionFields = [];\n this.handleClickOut = (e) => {\n if (this.refDropdown && !this.refDropdown.contains(e.target)) {\n this.fieldSelectHidden = true;\n }\n };\n this.setOriginalConditionFields = (code) => {\n if (!code) {\n this.originalConditionFields = [];\n }\n else {\n const codes = Array.isArray(code) ? code : [code];\n this.originalConditionFields = uniq([...this.originalConditionFields, ...codes]);\n }\n this.selectFields = [...this.originalConditionFields];\n };\n /**\n * 勾选\n * @param code\n */\n this.handleSelect = (code) => {\n const codes = Array.isArray(code) ? code : [code];\n this.selectFields = uniq([...this.selectFields, ...codes]);\n const shouldUpdate = !isEqual(toJS(this.selectFields), toJS(this.originalConditionFields));\n this.setConditionStatus(shouldUpdate ? RecordStatus.update : RecordStatus.sync);\n };\n /**\n * 取消勾选\n * @param code\n */\n this.handleUnSelect = (code) => {\n const { queryDataSet } = this.props;\n const codes = Array.isArray(code) ? code : [code];\n if (queryDataSet) {\n codes.map((name) => {\n if (queryDataSet.current) {\n queryDataSet.current.set(name, undefined);\n }\n return null;\n });\n }\n this.selectFields = pull([...this.selectFields], ...codes);\n const shouldUpdate = !isEqual(toJS(this.selectFields), toJS(this.originalConditionFields));\n this.setConditionStatus(shouldUpdate ? RecordStatus.update : RecordStatus.sync);\n };\n runInAction(() => {\n this.fieldSelectHidden = true;\n this.selectFields = [];\n this.expand = true;\n });\n }\n componentDidMount() {\n this.processDataSetListener(true);\n document.addEventListener('click', this.handleClickOut);\n }\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClickOut);\n this.processDataSetListener(false);\n }\n processDataSetListener(flag) {\n const { queryDataSet } = this.props;\n if (queryDataSet) {\n const handler = flag ? queryDataSet.addEventListener : queryDataSet.removeEventListener;\n handler.call(queryDataSet, 'validate', this.handleDataSetValidate);\n handler.call(queryDataSet, 'update', this.handleDataSetUpdate);\n handler.call(queryDataSet, 'create', this.handleDataSetCreate);\n }\n }\n /**\n * queryDataSet 查询前校验事件 触发展开动态字段\n * @param dataSet 查询DS\n * @param result\n */\n async handleDataSetValidate({ dataSet, result }) {\n if (!await result) {\n const fields = [...dataSet.fields.keys()];\n map(fields, field => {\n if (!dataSet.current.getField(field).isValid()) {\n this.handleSelect(field);\n }\n });\n runInAction(() => {\n this.expand = true;\n });\n this.refSingleWrapper.style.height = '';\n this.refSingleWrapper.style.overflow = '';\n }\n }\n setConditionStatus(value, orglValue) {\n runInAction(() => this.conditionStatus = value);\n if (value === RecordStatus.sync && orglValue) {\n this.originalValue = orglValue;\n }\n }\n /**\n * 筛选条件更新 触发表格查询\n */\n handleDataSetUpdate({ record }) {\n const { dataSet, onQuery = noop, autoQuery } = this.props;\n let status = RecordStatus.update;\n if (record) {\n status = isEqualDynamicProps(this.originalValue, record.toData()) ? RecordStatus.sync : RecordStatus.update;\n }\n this.setConditionStatus(status);\n if (autoQuery) {\n dataSet.query();\n onQuery();\n }\n }\n /**\n * queryDS 新建,初始勾选值\n */\n handleDataSetCreate({ dataSet, record }) {\n const conditionData = Object.entries(record.toData());\n this.originalValue = record.toData();\n const keys = [...dataSet.fields.keys()];\n map(conditionData, data => {\n let name = data[0];\n if (!keys.includes(data[0]) &&\n isObject(data[1]) &&\n !isEnumEmpty(data[1]) &&\n !isArray(data[1])) {\n name = `${data[0]}.${Object.keys(data[1])[0]}`;\n }\n if (isSelect(data) && !dataSet.getField(name).get('bind')) {\n if (!this.selectFields.includes(name)) {\n this.originalConditionFields.push(name);\n this.handleSelect(name);\n }\n }\n });\n }\n /**\n * tableFilterSuffix 预留自定义区域\n */\n renderSuffix() {\n const { prefixCls, dynamicFilterBar, queryDataSet, dataSet, buttons } = this.props;\n const suffixes = dynamicFilterBar?.suffixes || getConfig('tableFilterSuffix');\n const children = [];\n let suffixesDom = null;\n const tableButtons = buttons.length ? (React.createElement(TableButtons, { key: \"toolbar\", prefixCls: `${prefixCls}-dynamic-filter`, buttons: buttons })) : null;\n if (suffixes && suffixes.length) {\n suffixes.forEach(suffix => {\n if (suffix === 'filter') {\n children.push(React.createElement(ColumnFilter, { prefixCls: prefixCls }));\n }\n else if (isValidElement(suffix)) {\n children.push(suffix);\n }\n else if (isFunction(suffix)) {\n children.push(suffix({ queryDataSet, dataSet }));\n }\n });\n suffixesDom = (React.createElement(\"div\", { className: `${prefixCls}-dynamic-filter-bar-suffix` }, children));\n }\n return [\n tableButtons,\n suffixesDom,\n ];\n }\n getPrefix() {\n const { prefixCls, dynamicFilterBar, queryDataSet, dataSet } = this.props;\n const prefixes = dynamicFilterBar?.prefixes;\n const children = [];\n if (prefixes && prefixes.length) {\n prefixes.forEach((prefix) => {\n if (isString(prefix) && prefix === 'filter') {\n children.push(React.createElement(ColumnFilter, { prefixCls: prefixCls }));\n }\n else if (isValidElement(prefix)) {\n children.push(prefix);\n }\n else if (isFunction(prefix)) {\n children.push(prefix({ queryDataSet, dataSet }));\n }\n });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-dynamic-filter-bar-prefix` }, children),\n React.createElement(\"span\", { className: `${prefixCls}-filter-search-divide` })));\n }\n return null;\n }\n /**\n * 注入 onEnterDown 事件\n * @param element\n * @param name\n */\n createFields(element, name) {\n const { onEnterDown } = element.props;\n if (onEnterDown && isFunction(onEnterDown)) {\n return element;\n }\n const props = {\n onEnterDown: () => {\n this.handleQuery();\n },\n ref: (node) => this.refEditors.set(name, node),\n };\n return cloneElement(element, props);\n }\n /**\n * 判断查询值是否为空\n * @param value\n */\n isEmpty(value) {\n return isArrayLike(value) ? !value.length : isEmpty(value);\n }\n get tableFilterAdapter() {\n const { dynamicFilterBar } = this.props;\n return dynamicFilterBar?.tableFilterAdapter || getConfig('tableFilterAdapter');\n }\n /**\n * 是否单行操作\n */\n isSingleLineOpt() {\n const { fuzzyQuery } = this.props;\n return !(fuzzyQuery || this.tableFilterAdapter);\n }\n /**\n * 渲染展开逻辑\n * @param hidden 是否隐藏全部\n */\n getExpandNode(hidden) {\n const { prefixCls } = this.props;\n return (React.createElement(\"span\", { className: `${prefixCls}-filter-menu-expand`, onClick: () => {\n const { height } = this.refSingleWrapper.getBoundingClientRect();\n const { height: childHeight } = this.refSingleWrapper.children[0].children[0].getBoundingClientRect();\n runInAction(() => {\n this.expand = hidden ? height <= 0 : height <= (childHeight + 18);\n });\n if (hidden && height) {\n // 收起全部\n this.refSingleWrapper.style.display = 'none';\n }\n else {\n this.refSingleWrapper.style.display = 'flex';\n this.refSingleWrapper.style.height = '';\n this.refSingleWrapper.style.overflow = '';\n }\n if (height > (childHeight + 18) && !hidden) {\n // 收起留一行高度\n this.refSingleWrapper.style.height = pxToRem(childHeight + 18) || '';\n this.refSingleWrapper.style.overflow = 'hidden';\n }\n else {\n this.refSingleWrapper.style.height = '';\n this.refSingleWrapper.style.overflow = '';\n }\n } }, this.expand ? (React.createElement(Tooltip, { title: $l('Table', 'collapse') },\n React.createElement(Icon, { type: \"baseline-arrow_drop_up\" }))) : (React.createElement(Tooltip, { title: $l('Table', 'expand_button') },\n React.createElement(Icon, { type: \"baseline-arrow_drop_down\" })))));\n }\n /**\n * 渲染模糊搜索\n */\n getFuzzyQuery() {\n const { prefixCls, dataSet, dynamicFilterBar, autoQueryAfterReset, fuzzyQuery, fuzzyQueryPlaceholder, onReset = noop } = this.props;\n const searchText = dynamicFilterBar?.searchText || getConfig('tableFilterSearchText') || 'params';\n const placeholder = fuzzyQueryPlaceholder || $l('Table', 'enter_search_content');\n if (!fuzzyQuery)\n return null;\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-search` },\n React.createElement(TextField, { style: { width: 280 }, clearButton: true, placeholder: placeholder, prefix: React.createElement(Icon, { type: \"search\" }), value: this.searchText, onChange: () => noop, onClear: () => {\n runInAction(() => {\n this.searchText = '';\n });\n onReset();\n if (autoQueryAfterReset) {\n dataSet.setQueryParameter(searchText, undefined);\n this.handleQuery(true);\n }\n }, onInput: (e) => {\n // @ts-ignore\n const { value } = e.target;\n runInAction(() => {\n this.searchText = value || '';\n });\n dataSet.setQueryParameter(searchText, value);\n this.handleQuery();\n } })));\n }\n /**\n * 渲染重置按钮\n */\n getResetButton() {\n const { prefixCls, queryDataSet, autoQueryAfterReset, onReset = noop } = this.props;\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-buttons` }, this.conditionStatus === RecordStatus.update && React.createElement(Button, { onClick: () => {\n if (queryDataSet && queryDataSet.current) {\n queryDataSet.current.reset();\n }\n this.handleDataSetCreate({ dataSet: queryDataSet, record: queryDataSet?.current });\n this.setConditionStatus(RecordStatus.sync);\n onReset();\n if (autoQueryAfterReset) {\n this.handleQuery();\n }\n } }, $l('Table', 'reset_button'))));\n }\n /**\n * 筛选头\n * fuzzyQuery + quickFilterMenu + resetButton + buttons\n */\n getFilterMenu() {\n const { prefixCls, queryFields, queryDataSet, dataSet, dynamicFilterBar, searchCode, autoQuery } = this.props;\n if (queryDataSet && queryFields.length) {\n const prefix = this.getPrefix();\n const fuzzyQuery = this.getFuzzyQuery();\n const quickFilterMenu = this.tableFilterAdapter && searchCode ? (React.createElement(QuickFilterMenu, { autoQuery: autoQuery, prefixCls: prefixCls, expand: this.expand, dynamicFilterBar: dynamicFilterBar, searchCode: searchCode, dataSet: dataSet, queryDataSet: queryDataSet, onChange: this.handleSelect, conditionStatus: this.conditionStatus, onStatusChange: this.setConditionStatus, selectFields: this.selectFields, onOriginalChange: this.setOriginalConditionFields })) : null;\n const resetButton = this.isSingleLineOpt() || this.tableFilterAdapter ? null : this.getResetButton();\n const expandNode = this.getExpandNode(true);\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-menu` },\n prefix,\n fuzzyQuery,\n quickFilterMenu,\n resetButton,\n this.isSingleLineOpt() ? null : (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: `${prefixCls}-filter-search-divide` }),\n expandNode)),\n this.renderSuffix()));\n }\n }\n /**\n * 渲染查询条\n */\n getQueryBar() {\n const { prefixCls, queryFieldsLimit = 3, queryFields, queryDataSet } = this.props;\n const singleLineModeAction = this.isSingleLineOpt() ? React.createElement(\"div\", { className: `${prefixCls}-dynamic-filter-bar-single-action` },\n this.getResetButton(),\n this.getExpandNode(false)) : null;\n if (queryDataSet && queryFields.length) {\n return (React.createElement(\"div\", { key: \"query_bar\", className: `${prefixCls}-dynamic-filter-bar` },\n this.getFilterMenu(),\n React.createElement(\"div\", { className: `${prefixCls}--dynamic-filter-single-wrapper`, ref: (node) => this.refSingleWrapper = node },\n React.createElement(\"div\", { className: `${prefixCls}-filter-wrapper` },\n queryFields.slice(0, queryFieldsLimit).map(element => {\n const { name, hidden } = element.props;\n if (hidden)\n return null;\n const queryField = queryDataSet.getField(name);\n const itemClassName = `${prefixCls}-filter-item`;\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-content`, key: name, onClick: () => this.refEditors.get(name).focus() },\n React.createElement(\"span\", { className: `${prefixCls}-filter-label` }, queryField?.get('label')),\n React.createElement(\"span\", { className: itemClassName }, this.createFields(element, name))));\n }),\n queryFields.slice(queryFieldsLimit).map(element => {\n const { name, hidden } = element.props;\n if (hidden)\n return null;\n const queryField = queryDataSet.getField(name);\n if (this.selectFields.includes(name)) {\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-content`, key: name, onClick: () => this.refEditors.get(name).focus() },\n React.createElement(Icon, { type: \"cancel\", className: `${prefixCls}-filter-item-close`, onClick: () => {\n this.handleUnSelect([name]);\n } }),\n React.createElement(\"span\", { className: `${prefixCls}-filter-label` }, queryField?.get('label')),\n React.createElement(\"span\", { className: `${prefixCls}-filter-item` }, this.createFields(element, name))));\n }\n return null;\n }),\n (queryFieldsLimit < queryFields.length) && (React.createElement(\"div\", { className: `${prefixCls}-filter-item` },\n React.createElement(Dropdown, { visible: !this.fieldSelectHidden, overlay: (React.createElement(\"div\", { role: \"none\", ref: (node) => this.refDropdown = node, onClick: (e) => {\n e.stopPropagation();\n } },\n React.createElement(FieldList, { groups: [{\n title: $l('Table', 'predefined_fields'),\n fields: [...queryDataSet.fields.values()].filter(f => !f.get('bind')).slice(queryFieldsLimit),\n }], prefixCls: `${prefixCls}-filter-list` || 'c7n-pro-table-filter-list', closeMenu: () => runInAction(() => this.fieldSelectHidden = true), value: this.selectFields, onSelect: this.handleSelect, onUnSelect: this.handleUnSelect }))), trigger: [Action.click] },\n React.createElement(\"span\", { className: `${prefixCls}-add-fields`, onClick: (e) => {\n e.nativeEvent.stopImmediatePropagation();\n runInAction(() => {\n this.fieldSelectHidden = false;\n });\n } },\n React.createElement(Icon, { type: \"add\" }),\n $l('Table', 'add_filter')))))),\n singleLineModeAction)));\n }\n return null;\n }\n handleQuery(collapse) {\n const { dataSet, onQuery = noop, autoQuery } = this.props;\n if (autoQuery) {\n dataSet.query();\n }\n if (!collapse) {\n onQuery();\n }\n }\n render() {\n const { summaryBar, buttons, prefixCls } = this.props;\n const queryBar = this.getQueryBar();\n if (queryBar) {\n return [queryBar, summaryBar];\n }\n return React.createElement(TableButtons, { key: \"toolbar\", prefixCls: `${prefixCls}-dynamic-filter-buttons`, buttons: buttons }, summaryBar);\n }\n};\nTableDynamicFilterBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n queryFieldsLimit: 3,\n autoQueryAfterReset: true,\n fuzzyQuery: true,\n autoQuery: true,\n};\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"moreFields\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"fieldSelectHidden\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"selectFields\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"expand\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"searchText\", void 0);\n__decorate([\n observable\n], TableDynamicFilterBar.prototype, \"conditionStatus\", void 0);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleClickOut\", void 0);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"setConditionStatus\", null);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"setOriginalConditionFields\", void 0);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetUpdate\", null);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleDataSetCreate\", null);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleSelect\", void 0);\n__decorate([\n action\n], TableDynamicFilterBar.prototype, \"handleUnSelect\", void 0);\n__decorate([\n autobind\n], TableDynamicFilterBar.prototype, \"handleQuery\", null);\nTableDynamicFilterBar = __decorate([\n observer\n], TableDynamicFilterBar);\nexport default TableDynamicFilterBar;\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport FilterSelect from './FilterSelect';\nimport ColumnFilter from './ColumnFilter';\nimport { $l } from '../../locale-context';\nlet TableFilterBar = class TableFilterBar extends Component {\n renderSuffix() {\n const { prefixCls } = this.props;\n return React.createElement(ColumnFilter, { prefixCls: prefixCls });\n }\n getButtons() {\n const { prefixCls, buttons } = this.props;\n if (buttons.length) {\n return (React.createElement(\"div\", { key: \"toolbar\", className: `${prefixCls}-toolbar` },\n React.createElement(\"span\", { className: `${prefixCls}-toolbar-button-group` }, buttons)));\n }\n }\n render() {\n const { prefixCls, dataSet, queryDataSet, paramName, placeholder = $l('Table', 'filter_bar_placeholder'), pagination, onQuery = noop, onReset = noop } = this.props;\n const buttons = this.getButtons();\n return [\n buttons,\n pagination,\n React.createElement(FilterSelect, { key: \"filter\", prefixCls: `${prefixCls}-filter-select`, optionDataSet: dataSet, queryDataSet: queryDataSet, placeholder: placeholder, suffix: this.renderSuffix(), paramName: paramName, onQuery: onQuery, onReset: onReset }),\n ];\n }\n};\nTableFilterBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n paramName: 'params',\n};\nTableFilterBar = __decorate([\n observer\n], TableFilterBar);\nexport default TableFilterBar;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component } from 'react';\nimport { observer } from 'mobx-react';\nimport { action, observable, runInAction } from 'mobx';\nimport isFunction from 'lodash/isFunction';\nimport noop from 'lodash/noop';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport Icon from 'choerodon-ui/lib/icon';\nimport TableButtons from './TableButtons';\nimport Button from '../../button';\nimport TableContext from '../TableContext';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport Form from '../../form';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport { LabelLayout } from '../../form/enum';\nimport { Tooltip as LabelTooltip } from '../../core/enum';\nlet TableProfessionalBar = class TableProfessionalBar extends Component {\n constructor() {\n super(...arguments);\n this.openMore = (fields) => {\n const { tableStore } = this.context;\n if (this.moreFields && this.moreFields.length) {\n this.moreFields = [];\n }\n else {\n this.moreFields = fields;\n }\n if (tableStore.node) {\n tableStore.node.handleResize();\n }\n return this.moreFields;\n };\n }\n componentDidMount() {\n const { queryFieldsLimit, queryFields, queryDataSet, defaultExpanded } = this.props;\n if (queryDataSet && queryFields.length && defaultExpanded) {\n runInAction(() => {\n this.moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n });\n }\n this.processDataSetListener(true);\n }\n componentWillReceiveProps(nextProps, _) {\n const { queryFieldsLimit, queryFields, queryDataSet, defaultExpanded } = nextProps;\n if (queryDataSet && queryFields.length && (defaultExpanded || (this.moreFields && this.moreFields.length))) {\n runInAction(() => {\n this.moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n });\n }\n }\n componentWillUnmount() {\n this.processDataSetListener(false);\n }\n processDataSetListener(flag) {\n const { queryDataSet } = this.props;\n if (queryDataSet) {\n const handler = flag ? queryDataSet.addEventListener : queryDataSet.removeEventListener;\n handler.call(queryDataSet, 'validate', this.handleDataSetValidate);\n }\n }\n /**\n * queryDataSet 查询前校验事件 触发展开动态字段\n * @param dataSet 查询DS\n * @param result\n */\n async handleDataSetValidate({ result }) {\n const { queryFieldsLimit, queryFields } = this.props;\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n if (!await result) {\n runInAction(() => {\n this.moreFields = moreFields;\n });\n }\n }\n handleFieldEnter() {\n this.handleQuery();\n }\n async handleQuery(collapse) {\n const { dataSet, queryDataSet, onQuery = noop } = this.props;\n if (await queryDataSet?.validate()) {\n await dataSet.query();\n if (!collapse) {\n await onQuery();\n }\n }\n }\n getResetButton() {\n const { prefixCls } = this.props;\n return (React.createElement(Button, { key: 'lov_reset_btn', className: `${prefixCls}-professional-reset-btn`, funcType: FuncType.raised, onClick: this.handleQueryReset }, $l('Table', 'reset_button')));\n }\n getMoreFieldsButton(fields) {\n const { prefixCls } = this.props;\n if (fields.length) {\n return (React.createElement(Button, { className: `${prefixCls}-professional-query-more`, funcType: FuncType.raised, onClick: () => this.openMore(fields) },\n $l('Table', 'more'),\n this.moreFields && this.moreFields.length ? React.createElement(Icon, { type: 'expand_less' }) : React.createElement(Icon, { type: 'expand_more' })));\n }\n }\n /**\n * 注入 onEnterDown 事件\n * @param elements\n */\n createFields(elements) {\n return elements.map(element => {\n const { onEnterDown } = element.props;\n if (onEnterDown && isFunction(onEnterDown)) {\n return element;\n }\n const props = {\n onEnterDown: this.handleFieldEnter,\n };\n return cloneElement(element, props);\n });\n }\n getQueryBar() {\n const { prefixCls, queryFieldsLimit, queryFields, queryDataSet, formProps } = this.props;\n if (queryDataSet && queryFields.length) {\n const currentFields = (React.createElement(Form, Object.assign({ dataSet: queryDataSet, columns: queryFieldsLimit, labelLayout: LabelLayout.horizontal, labelTooltip: LabelTooltip.overflow, labelWidth: 80 }, formProps),\n this.createFields(queryFields.slice(0, queryFieldsLimit)),\n this.moreFields));\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit));\n const moreFieldsButton = this.getMoreFieldsButton(moreFields);\n return (React.createElement(\"div\", { key: \"query_bar\", className: `${prefixCls}-professional-query-bar` },\n currentFields,\n React.createElement(\"span\", { className: `${prefixCls}-professional-query-bar-button` },\n moreFieldsButton,\n this.getResetButton(),\n React.createElement(Button, { color: ButtonColor.primary, wait: 500, onClick: () => this.handleQuery() }, $l('Table', 'query_button')))));\n }\n }\n handleQueryReset() {\n const { queryDataSet, autoQueryAfterReset, onReset = noop } = this.props;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n onReset();\n if (autoQueryAfterReset) {\n this.handleQuery(true);\n }\n }\n }\n }\n render() {\n const { prefixCls, buttons, summaryBar } = this.props;\n const queryBar = this.getQueryBar();\n const tableButtons = buttons.length ? (React.createElement(\"div\", { key: \"professional_toolbar\", className: `${prefixCls}-professional-toolbar` },\n React.createElement(TableButtons, { key: \"toolbar\", prefixCls: prefixCls, buttons: buttons }, summaryBar))) : (React.createElement(\"div\", { className: `${prefixCls}-toolbar` }, summaryBar));\n return [queryBar, tableButtons];\n }\n};\nTableProfessionalBar.contextType = TableContext;\nTableProfessionalBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n queryFieldsLimit: 3,\n autoQueryAfterReset: true,\n};\n__decorate([\n observable\n], TableProfessionalBar.prototype, \"moreFields\", void 0);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleDataSetValidate\", null);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleFieldEnter\", null);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleQuery\", null);\n__decorate([\n action\n], TableProfessionalBar.prototype, \"openMore\", void 0);\n__decorate([\n autobind\n], TableProfessionalBar.prototype, \"handleQueryReset\", null);\nTableProfessionalBar = __decorate([\n observer\n], TableProfessionalBar);\nexport default TableProfessionalBar;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, Component } from 'react';\nimport { observer } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport Button from '../../button/Button';\nimport { ButtonColor, FuncType } from '../../button/enum';\nimport Modal from '../../modal';\nimport Form from '../../form/Form';\nimport Icon from '../../icon';\nimport { $l } from '../../locale-context';\nimport autobind from '../../_util/autobind';\nimport TableButtons from './TableButtons';\n/**\n * 去除级联字段\n *\n * @export\n * @param {Fields} fields 待筛选的字段数组\n * @returns {{ [key: string]: Field }} 不含级联字段的字段数组\n */\nexport function filterBindField(fields) {\n return [...fields.entries()].reduce((newFields, [key, field]) => {\n if (!field.get('bind')) {\n newFields[key] = field;\n }\n return newFields;\n }, {});\n}\nlet TableToolBar = class TableToolBar extends Component {\n handleFieldEnter() {\n this.handleQuery();\n if (this.modal) {\n this.modal.close();\n }\n }\n handleQueryReset() {\n const { queryDataSet, onReset = noop } = this.props;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n onReset();\n }\n this.handleQuery(true);\n }\n }\n async handleQuery(collapse) {\n const { dataSet, queryDataSet, onQuery = noop } = this.props;\n if (await queryDataSet?.validate()) {\n dataSet.query();\n if (!collapse) {\n onQuery();\n }\n }\n }\n componentWillUnmount() {\n if (this.modal) {\n this.modal.close(true);\n }\n }\n getQueryBar() {\n const { prefixCls, queryFieldsLimit, queryFields, queryDataSet } = this.props;\n if (queryDataSet && queryFields.length) {\n const currentFields = this.createFields(queryFields.slice(0, queryFieldsLimit), queryDataSet, false);\n const moreFields = this.createFields(queryFields.slice(queryFieldsLimit), queryDataSet, true);\n let more;\n let dirtyInfo;\n if (moreFields.length) {\n more = this.getMoreButton(moreFields);\n dirtyInfo = this.getDirtyInfo(queryDataSet.current, moreFields);\n }\n return (React.createElement(\"span\", { className: `${prefixCls}-query-bar` },\n dirtyInfo,\n currentFields,\n React.createElement(Button, { color: ButtonColor.primary, onClick: () => { this.handleQuery(); } }, $l('Table', 'query_button')),\n more));\n }\n }\n getDirtyInfo(current, moreFields) {\n if (current &&\n moreFields.some(element => {\n const { name } = element.props;\n const field = current.getField(name);\n return field ? field.dirty : false;\n })) {\n const { prefixCls } = this.props;\n return (React.createElement(\"span\", { className: `${prefixCls}-query-bar-dirty-info` },\n React.createElement(Icon, { type: \"info\" }),\n React.createElement(\"span\", null, $l('Table', 'dirty_info')),\n React.createElement(\"a\", { onClick: this.handleQueryReset }, $l('Table', 'restore'))));\n }\n }\n getMoreButton(moreFields) {\n return (React.createElement(Button, { color: ButtonColor.primary, funcType: FuncType.flat, onClick: () => this.openMore(moreFields) }, $l('Table', 'advanced_search')));\n }\n createFields(elements, dataSet, isMore) {\n return elements.map((element, index) => {\n const { name } = element.props;\n const props = {\n autoFocus: isMore && index === 0,\n onEnterDown: this.handleFieldEnter,\n style: isMore ? undefined : { width: pxToRem(130) },\n };\n const field = dataSet.getField(name);\n if (field) {\n const label = field.get('label');\n if (label) {\n if (isMore) {\n props.label = label;\n }\n else {\n props.placeholder = label;\n }\n }\n }\n return cloneElement(element, props);\n });\n }\n openMore(children) {\n this.modal = Modal.open({\n title: $l('Table', 'advanced_search'),\n children: React.createElement(Form, null, children),\n okText: $l('Table', 'query_button'),\n onOk: this.handleQuery,\n style: {\n width: pxToRem(400),\n },\n drawer: true,\n });\n }\n render() {\n const { prefixCls, pagination, buttons } = this.props;\n return [\n React.createElement(TableButtons, { key: \"toolbar\", prefixCls: prefixCls, buttons: buttons }, this.getQueryBar()),\n pagination,\n ];\n }\n};\nTableToolBar.displayName = 'TableToolBar';\nTableToolBar.defaultProps = {\n prefixCls: getProPrefixCls('table'),\n queryFieldsLimit: 1,\n pagination: null,\n};\n__decorate([\n autobind\n], TableToolBar.prototype, \"handleFieldEnter\", null);\n__decorate([\n autobind\n], TableToolBar.prototype, \"handleQueryReset\", null);\n__decorate([\n autobind\n], TableToolBar.prototype, \"handleQuery\", null);\nTableToolBar = __decorate([\n observer\n], TableToolBar);\nexport default TableToolBar;\n","import { __decorate } from \"tslib\";\nimport React, { cloneElement, useState, Component, isValidElement } from 'react';\nimport { observer } from 'mobx-react';\nimport { action, isArrayLike, observable } from 'mobx';\nimport isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport reduce from 'lodash/reduce';\nimport { pxToRem } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Icon from 'choerodon-ui/lib/icon';\nimport { ProgressStatus } from 'choerodon-ui/lib/progress/enum';\nimport noop from 'lodash/noop';\nimport { TableButtonType, TableQueryBarType } from '../enum';\nimport TableButtons from './TableButtons';\nimport Table from '../Table';\nimport Button from '../../button/Button';\nimport { ButtonType, ButtonColor } from '../../button/enum';\nimport { DataSetStatus, FieldType, DataSetExportStatus } from '../../data-set/enum';\nimport { $l } from '../../locale-context';\nimport TableContext from '../TableContext';\nimport autobind from '../../_util/autobind';\nimport DataSet from '../../data-set';\nimport Modal from '../../modal';\nimport Progress from '../../progress';\nimport Column from '../Column';\nimport { getEditorByField, getPlaceholderByField } from '../utils';\nimport TableToolBar from './TableToolBar';\nimport TableFilterBar from './TableFilterBar';\nimport TableAdvancedQueryBar from './TableAdvancedQueryBar';\nimport TableProfessionalBar from './TableProfessionalBar';\nimport TableDynamicFilterBar from './TableDynamicFilterBar';\nimport { findBindFieldBy, exportExcel } from '../../data-set/utils';\nimport Dropdown from '../../dropdown/Dropdown';\nimport Menu from '../../menu';\nimport TextField from '../../text-field';\nconst ExportBody = observer((props) => {\n const { dataSet, prefixCls } = props;\n let exportMessage = $l('Table', 'export_ing');\n let exportProgress = {\n percent: 1,\n status: ProgressStatus.active,\n };\n switch (dataSet.exportStatus) {\n case DataSetExportStatus.start:\n exportProgress = {\n percent: 1,\n status: ProgressStatus.active,\n };\n break;\n case DataSetExportStatus.exporting:\n exportProgress = {\n percent: dataSet.exportProgress,\n status: ProgressStatus.active,\n };\n break;\n case DataSetExportStatus.progressing:\n exportProgress = {\n percent: dataSet.exportProgress,\n status: ProgressStatus.active,\n };\n break;\n case DataSetExportStatus.failed:\n exportMessage = $l('Table', 'export_failed');\n exportProgress = {\n percent: 50,\n status: ProgressStatus.exception,\n };\n break;\n case DataSetExportStatus.success:\n exportMessage = $l('Table', 'export_success');\n exportProgress = {\n percent: 100,\n status: ProgressStatus.success,\n };\n break;\n default:\n break;\n }\n return (React.createElement(\"div\", { className: `${prefixCls}-export-progress-body` },\n React.createElement(\"span\", null, exportMessage),\n React.createElement(Progress, Object.assign({}, exportProgress))));\n});\nconst ExportFooter = observer((props) => {\n const { dataSet, prefixCls, exportButton } = props;\n const [username, setUsername] = useState(dataSet.name || $l('Table', 'defalut_export'));\n const handleClick = () => {\n exportButton(dataSet.exportStatus, username);\n };\n const [messageTimeout, setMessageTimeout] = useState(undefined);\n React.useEffect(() => {\n let currentTimeout = null;\n currentTimeout = setTimeout(() => {\n if (dataSet && dataSet.exportStatus !== DataSetExportStatus.success && dataSet.exportStatus !== DataSetExportStatus.failed) {\n setMessageTimeout($l('Table', 'export_waiting'));\n }\n }, 5000);\n return () => {\n if (currentTimeout) {\n clearTimeout(currentTimeout);\n }\n };\n }, []);\n return (React.createElement(\"div\", { className: `${prefixCls}-export-progress-footer` },\n dataSet.exportStatus === DataSetExportStatus.failed && React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, $l('Table', 'export_break')),\n React.createElement(Button, { onClick: handleClick }, $l('Table', 'retry_button'))),\n dataSet.exportStatus === DataSetExportStatus.success && React.createElement(React.Fragment, null,\n React.createElement(\"div\", null,\n React.createElement(\"span\", null, `${$l('Table', 'file_name')}:`),\n React.createElement(TextField, { value: username, onChange: (value) => {\n setUsername(value);\n } })),\n React.createElement(Button, { color: ButtonColor.primary, onClick: handleClick }, $l('Table', 'download_button'))),\n dataSet.exportStatus !== DataSetExportStatus.success &&\n dataSet.exportStatus !== DataSetExportStatus.failed &&\n React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, messageTimeout || $l('Table', 'export_operating')),\n React.createElement(Button, { color: ButtonColor.gray, onClick: handleClick }, $l('Table', 'cancel_button')))));\n});\nlet TableQueryBar = class TableQueryBar extends Component {\n constructor() {\n super(...arguments);\n /**\n * 点击汇总条展开收起\n * @param summary\n */\n this.openMore = (summary) => {\n if (this.moreSummary && this.moreSummary.length) {\n this.moreSummary = [];\n }\n else {\n this.moreSummary = this.renderSummary(summary);\n }\n return this.moreSummary;\n };\n }\n get showQueryBar() {\n const { props: { showQueryBar }, context: { tableStore: { queryBar }, }, } = this;\n return showQueryBar !== false && queryBar !== TableQueryBarType.none;\n }\n componentWillUnmount() {\n if (this.exportModal) {\n this.exportModal.close(true);\n }\n }\n handleButtonCreate() {\n const { tableStore: { dataSet }, } = this.context;\n dataSet.create({}, 0);\n }\n handleButtonSubmit() {\n const { tableStore: { dataSet }, } = this.context;\n return dataSet.submit();\n }\n handleButtonDelete() {\n const { tableStore: { dataSet }, } = this.context;\n return dataSet.delete(dataSet.selected);\n }\n handleButtonRemove() {\n const { tableStore: { dataSet }, } = this.context;\n dataSet.remove(dataSet.selected);\n }\n handleButtonReset() {\n const { tableStore: { dataSet }, } = this.context;\n dataSet.reset();\n }\n handleQueryReset() {\n const { tableStore: { dataSet: { queryDataSet }, }, } = this.context;\n if (queryDataSet) {\n const { current } = queryDataSet;\n if (current) {\n current.reset();\n }\n this.handleQuery();\n }\n }\n handleExpandAll() {\n const { tableStore } = this.context;\n tableStore.expandAll();\n }\n handleCollapseAll() {\n const { tableStore } = this.context;\n tableStore.collapseAll();\n }\n async handleButtonExport() {\n const { tableStore } = this.context;\n const columnHeaders = await tableStore.getColumnHeaders();\n this.exportDataSet = new DataSet({ data: columnHeaders, paging: false });\n this.exportDataSet.selectAll();\n this.exportModal = Modal.open({\n title: $l('Table', 'choose_export_columns'),\n children: (React.createElement(React.Fragment, null,\n React.createElement(Table, { dataSet: this.exportDataSet, style: { height: pxToRem(300) } },\n React.createElement(Column, { header: $l('Table', 'column_name'), name: \"label\", resizable: false })))),\n closable: true,\n okText: $l('Table', 'export_button'),\n onOk: this.handleExport,\n style: {\n width: pxToRem(400),\n },\n });\n }\n handleQuery() {\n const { tableStore: { dataSet }, } = this.context;\n return dataSet.query();\n }\n handleExport() {\n const { selected } = this.exportDataSet;\n const { props: { clientExportQuantity }, context: { tableStore: { prefixCls, dataSet }, }, } = this;\n if (selected.length) {\n const { exportModal } = this;\n dataSet.export(selected.reduce((columns, record) => {\n let myName = record.get('name');\n const myField = dataSet.getField(myName);\n if (myField && myField.type === FieldType.object) {\n const bindField = findBindFieldBy(myField, dataSet.fields, 'textField');\n if (bindField) {\n myName = bindField.name;\n }\n }\n columns[myName] = record.get('label');\n return columns;\n }, {}), clientExportQuantity).then((exportData) => {\n this.exportData = exportData;\n });\n if (exportModal) {\n exportModal.update({\n title: $l('Table', 'export_button'),\n children: (React.createElement(ExportBody, { prefixCls: prefixCls, dataSet: dataSet })),\n onCancel: this.handleExportButton,\n footer: React.createElement(ExportFooter, { prefixCls: prefixCls, exportButton: this.handleExportButton, exportModal: exportModal, dataSet: dataSet }),\n });\n }\n }\n return false;\n }\n handleExportButton(data, filename) {\n const { tableStore: { dataSet }, } = this.context;\n if (data === DataSetExportStatus.success) {\n if (this.exportData) {\n exportExcel(this.exportData, filename);\n this.exportModal.close();\n this.exportData = null;\n }\n }\n else if (data === DataSetExportStatus.failed) {\n this.exportData = null;\n this.handleExport();\n }\n else {\n this.exportModal.close();\n this.exportData = null;\n }\n dataSet.exportStatus = undefined;\n }\n getButtonProps(type) {\n const { isTree, tableStore: { dataSet }, } = this.context;\n const disabled = dataSet.status !== DataSetStatus.ready;\n switch (type) {\n case TableButtonType.add:\n return {\n icon: 'playlist_add',\n onClick: this.handleButtonCreate,\n children: $l('Table', 'create_button'),\n disabled: disabled || (dataSet.parent ? !dataSet.parent.current : false),\n };\n case TableButtonType.save:\n return {\n icon: 'save',\n onClick: this.handleButtonSubmit,\n children: $l('Table', 'save_button'),\n type: ButtonType.submit,\n disabled,\n };\n case TableButtonType.delete:\n return {\n icon: 'delete',\n onClick: this.handleButtonDelete,\n children: $l('Table', 'delete_button'),\n disabled: disabled || dataSet.selected.length === 0,\n };\n case TableButtonType.remove:\n return {\n icon: 'remove_circle',\n onClick: this.handleButtonRemove,\n children: $l('Table', 'remove_button'),\n disabled: disabled || dataSet.selected.length === 0,\n };\n case TableButtonType.reset:\n return {\n icon: 'undo',\n onClick: this.handleButtonReset,\n children: $l('Table', 'reset_button'),\n type: ButtonType.reset,\n };\n case TableButtonType.query:\n return { icon: 'search', onClick: this.handleQuery, children: $l('Table', 'query_button') };\n case TableButtonType.export:\n return {\n icon: 'export',\n onClick: this.handleButtonExport,\n children: $l('Table', 'export_button'),\n };\n case TableButtonType.expandAll:\n return isTree\n ? {\n icon: 'add_box',\n onClick: this.handleExpandAll,\n children: $l('Table', 'expand_button'),\n }\n : undefined;\n case TableButtonType.collapseAll:\n return isTree\n ? {\n icon: 'short_text',\n onClick: this.handleCollapseAll,\n children: $l('Table', 'collapse_button'),\n }\n : undefined;\n default:\n }\n }\n /**\n * 渲染表头汇总列\n * @param summary\n */\n renderSummary(summary) {\n const { props: { summaryBar, summaryFieldsLimit = 3 }, context: { tableStore: { prefixCls, dataSet }, }, } = this;\n const fieldTypeArr = [FieldType.currency, FieldType.number];\n if (summaryBar && summary && summary.length) {\n return summary.map((summaryCol, index) => {\n const field = dataSet.getField(summaryCol);\n const hasSeparate = summaryBar.length > summaryFieldsLimit || index !== (summaryBar.length - 1);\n if (isString(summaryCol) && field && fieldTypeArr.includes(field.type)) {\n const summaryValue = reduce(dataSet.data.map((record) => isNumber(record.get(summaryCol)) ? record.get(summaryCol) : 0), (sum, n) => sum + n);\n return (React.createElement(\"div\", { key: field.get('name') },\n React.createElement(\"div\", { className: `${prefixCls}-summary-col` },\n React.createElement(\"div\", { className: `${prefixCls}-summary-col-label`, title: field.get('label') },\n field.get('label'),\n \":\"),\n React.createElement(\"div\", { className: `${prefixCls}-summary-col-value`, title: summaryValue }, summaryValue)),\n hasSeparate && React.createElement(\"div\", { className: `${prefixCls}-summary-col-separate` },\n React.createElement(\"div\", null))));\n }\n if (typeof summaryCol === 'function') {\n const summaryObj = summaryCol({ summaryFieldsLimit, dataSet });\n return (React.createElement(\"div\", { key: isString(summaryObj.label) ? summaryObj.label : '' },\n React.createElement(\"div\", { className: `${prefixCls}-summary-col` },\n React.createElement(\"div\", { className: `${prefixCls}-summary-col-label`, title: isString(summaryObj.label) ? summaryObj.label : '' },\n summaryObj.label,\n \":\"),\n React.createElement(\"div\", { className: `${prefixCls}-summary-col-value`, title: isString(summaryObj.value) || isNumber(summaryObj.value) ? summaryObj.value.toString() : '' }, summaryObj.value)),\n hasSeparate && React.createElement(\"div\", { className: `${prefixCls}-summary-col-separate` },\n React.createElement(\"div\", null))));\n }\n return null;\n });\n }\n }\n /**\n * 汇总条展开收起按钮\n * @param summary\n */\n getMoreSummaryButton(summary) {\n const { tableStore: { prefixCls } } = this.context;\n if (summary.length) {\n return (React.createElement(\"div\", { className: `${prefixCls}-summary-button-more` },\n React.createElement(\"a\", { onClick: () => this.openMore(summary) },\n $l('Table', 'more'),\n this.moreSummary && this.moreSummary.length ? React.createElement(Icon, { type: 'expand_less' }) : React.createElement(Icon, { type: 'expand_more' }))));\n }\n }\n /**\n * 渲染汇总条\n */\n getSummaryBar() {\n const { props: { summaryBar, summaryFieldsLimit, }, context: { tableStore: { prefixCls }, }, } = this;\n if (summaryBar) {\n const currentSummaryBar = this.renderSummary(summaryBar.slice(0, summaryFieldsLimit));\n const moreSummary = summaryBar.slice(summaryFieldsLimit);\n const moreSummaryButton = this.getMoreSummaryButton(moreSummary);\n const width = 170 * Math.min(summaryBar.length, summaryFieldsLimit) + Math.min(summaryBar.length, summaryFieldsLimit);\n return (React.createElement(\"div\", { className: `${prefixCls}-summary-group-wrapper` },\n React.createElement(\"div\", { className: `${prefixCls}-summary-group`, style: { width } },\n currentSummaryBar,\n this.moreSummary),\n moreSummaryButton));\n }\n }\n /**\n * buttons 大于 buttonsLimits 放入下拉\n * @param buttonsLimits\n */\n getMoreButton(buttonsLimits) {\n const { buttons } = this.props;\n const { tableStore: { prefixCls } } = this.context;\n const tableButtonProps = getConfig('tableButtonProps');\n const children = [];\n if (buttons && buttons.length && buttonsLimits) {\n buttons.slice(buttonsLimits).forEach(button => {\n let props = {};\n if (isArrayLike(button)) {\n props = button[1] || {};\n button = button[0];\n }\n if (isString(button) && button in TableButtonType) {\n const { afterClick, ...buttonProps } = props;\n const defaultButtonProps = this.getButtonProps(button);\n if (defaultButtonProps) {\n if (afterClick) {\n const { onClick } = defaultButtonProps;\n defaultButtonProps.onClick = async (e) => {\n e.persist();\n try {\n await onClick(e);\n }\n finally {\n afterClick(e);\n }\n };\n }\n children.push(React.createElement(Menu.Item, { key: button, className: `${prefixCls}-button-menu-item` },\n React.createElement(Button, Object.assign({ key: `${button}-btn` }, tableButtonProps, defaultButtonProps, buttonProps))));\n }\n }\n else if (isValidElement(button)) {\n children.push(React.createElement(Menu.Item, { className: `${prefixCls}-button-menu-item` }, cloneElement(button, { ...tableButtonProps, ...button.props })));\n }\n else if (isObject(button)) {\n children.push(React.createElement(Menu.Item, { className: `${prefixCls}-button-menu-item` },\n React.createElement(Button, Object.assign({}, tableButtonProps, button))));\n }\n });\n }\n const menu = (React.createElement(Menu, null, children));\n return (React.createElement(Dropdown, { overlay: menu, key: \"dropdown_button\" },\n React.createElement(Button, Object.assign({}, tableButtonProps, { key: \"more_button\" }),\n $l('Table', 'more'),\n \" \",\n React.createElement(Icon, { type: 'expand_more' }))));\n }\n getButtons() {\n const { buttons, summaryBar, buttonsLimit } = this.props;\n const children = [];\n if (buttons) {\n // 汇总条存在下 buttons 大于 3 个放入下拉\n const buttonsLimits = summaryBar ? (buttonsLimit || 3) : buttonsLimit;\n const tableButtonProps = getConfig('tableButtonProps');\n const buttonsArr = buttons.slice(0, buttonsLimits);\n buttonsArr.forEach(button => {\n let props = {};\n if (isArrayLike(button)) {\n props = button[1] || {};\n button = button[0];\n }\n if (isString(button) && button in TableButtonType) {\n const { afterClick, ...buttonProps } = props;\n const defaultButtonProps = this.getButtonProps(button);\n if (defaultButtonProps) {\n if (afterClick) {\n const { onClick } = defaultButtonProps;\n defaultButtonProps.onClick = async (e) => {\n e.persist();\n try {\n await onClick(e);\n }\n finally {\n afterClick(e);\n }\n };\n }\n children.push(React.createElement(Button, Object.assign({ key: button }, tableButtonProps, defaultButtonProps, buttonProps)));\n }\n }\n else if (isValidElement(button)) {\n children.push(cloneElement(button, { ...tableButtonProps, ...button.props }));\n }\n else if (isObject(button)) {\n children.push(React.createElement(Button, Object.assign({}, tableButtonProps, button)));\n }\n });\n if (buttonsLimits && buttons.length > buttonsLimits) {\n const moreButton = this.getMoreButton(buttonsLimits);\n children.push(moreButton);\n }\n }\n return children;\n }\n getQueryFields() {\n const { context: { tableStore: { dataSet, queryBar }, }, props: { queryFields }, } = this;\n const { queryDataSet } = dataSet;\n const result = [];\n if (queryDataSet) {\n const { fields } = queryDataSet;\n return [...fields.entries()].reduce((list, [name, field]) => {\n if (!field.get('bind') && !name.includes('__tls')) {\n const element = queryFields[name];\n let filterBarProps = {};\n if (queryBar === TableQueryBarType.filterBar) {\n const placeholder = isValidElement(element) && element.props.placeholder ? element.props.placeholder : getPlaceholderByField(field);\n filterBarProps = {\n placeholder,\n };\n }\n const props = {\n key: name,\n name,\n dataSet: queryDataSet,\n isFlat: queryBar === TableQueryBarType.filterBar,\n ...filterBarProps,\n };\n list.push(isValidElement(element)\n ? cloneElement(element, props)\n : cloneElement(getEditorByField(field, queryBar !== TableQueryBarType.professionalBar, queryBar === TableQueryBarType.filterBar), {\n ...props,\n ...(isObject(element) ? element : {}),\n }));\n }\n return list;\n }, result);\n }\n return result;\n }\n renderToolBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableToolBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n renderFilterBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n const { props: { filterBarFieldName, filterBarPlaceholder }, } = this;\n return (React.createElement(TableFilterBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls, paramName: filterBarFieldName, placeholder: filterBarPlaceholder }, props)));\n }\n renderAdvancedQueryBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableAdvancedQueryBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n renderProfessionalBar(props) {\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableProfessionalBar, Object.assign({ key: \"toolbar\", prefixCls: prefixCls }, props));\n }\n renderDynamicFilterBar(props) {\n const { dynamicFilterBar, searchCode } = this.props;\n const { tableStore: { prefixCls } } = this.context;\n return React.createElement(TableDynamicFilterBar, Object.assign({ key: \"toolbar\", searchCode: searchCode, dynamicFilterBar: dynamicFilterBar, prefixCls: prefixCls }, props));\n }\n expandTree() {\n const { tableStore } = this.context;\n const { props: { queryBarProps } } = tableStore;\n if (typeof queryBarProps.onQuery === 'function') {\n queryBarProps.onQuery();\n }\n tableStore.expandAll();\n }\n collapseTree() {\n const { tableStore } = this.context;\n const { props: { queryBarProps } } = tableStore;\n if (typeof queryBarProps.onReset === 'function') {\n queryBarProps.onReset();\n }\n tableStore.collapseAll();\n }\n render() {\n const buttons = this.getButtons();\n const summaryBar = this.getSummaryBar();\n const { context: { tableStore: { dataSet, queryBar, prefixCls, isTree, props: { queryBarProps } }, }, props: { queryFieldsLimit, summaryFieldsLimit, pagination, treeQueryExpanded }, showQueryBar, } = this;\n if (showQueryBar) {\n const { queryDataSet } = dataSet;\n const queryFields = this.getQueryFields();\n const tableQueryBarProps = { ...queryBarProps, ...getConfig('queryBarProps') };\n const onReset = tableQueryBarProps && typeof tableQueryBarProps.onReset === 'function' ? tableQueryBarProps.onReset : noop;\n const onQuery = tableQueryBarProps && typeof tableQueryBarProps.onQuery === 'function' ? tableQueryBarProps.onQuery : noop;\n const props = {\n ...tableQueryBarProps,\n dataSet,\n queryDataSet,\n buttons,\n pagination,\n queryFields,\n queryFieldsLimit: queryFieldsLimit,\n summaryFieldsLimit: summaryFieldsLimit,\n summaryBar,\n onQuery: treeQueryExpanded && isTree ? this.expandTree : onQuery,\n onReset: treeQueryExpanded && isTree ? this.collapseTree : onReset,\n };\n if (typeof queryBar === 'function') {\n return queryBar(props);\n }\n switch (queryBar) {\n case TableQueryBarType.normal:\n return this.renderToolBar(props);\n case TableQueryBarType.bar:\n return this.renderFilterBar(props);\n case TableQueryBarType.advancedBar:\n return this.renderAdvancedQueryBar(props);\n case TableQueryBarType.professionalBar:\n return this.renderProfessionalBar(props);\n case TableQueryBarType.filterBar:\n return this.renderDynamicFilterBar(props);\n default:\n }\n }\n return [\n React.createElement(TableButtons, { key: \"toolbar\", prefixCls: prefixCls, buttons: buttons }, summaryBar),\n pagination,\n ];\n }\n};\nTableQueryBar.displayName = 'TableQueryBar';\nTableQueryBar.contextType = TableContext;\nTableQueryBar.defaultProps = {\n summaryFieldsLimit: 3,\n};\n__decorate([\n observable\n], TableQueryBar.prototype, \"moreSummary\", void 0);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonCreate\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonSubmit\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonDelete\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonRemove\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonReset\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleQueryReset\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleExpandAll\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleCollapseAll\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleButtonExport\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleQuery\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"handleExport\", null);\n__decorate([\n autobind,\n action\n], TableQueryBar.prototype, \"handleExportButton\", null);\n__decorate([\n action\n], TableQueryBar.prototype, \"openMore\", void 0);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"expandTree\", null);\n__decorate([\n autobind\n], TableQueryBar.prototype, \"collapseTree\", null);\nTableQueryBar = __decorate([\n observer\n], TableQueryBar);\nexport default TableQueryBar;\n","import React, { createContext, useMemo } from 'react';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport DataSet from '../../../data-set';\nimport { DataSetSelection, DataToJSON, FieldIgnore, FieldType } from '../../../data-set/interface';\nfunction processAxiosConfig(axiosConfig = {}, args) {\n if (typeof axiosConfig === 'function') {\n return axiosConfig({ ...args });\n }\n return axiosConfig;\n}\nfunction getTransportConfig(props) {\n const { config, type, searchCode, queryDataSet, tableFilterAdapter } = props;\n return processAxiosConfig(tableFilterAdapter, { type, config, searchCode, queryDataSet });\n}\nconst ConditionDataSet = () => ({\n paging: false,\n fields: [\n {\n name: 'fieldName',\n type: FieldType.string,\n },\n {\n name: 'comparator',\n type: FieldType.string,\n defaultValue: 'EQUAL',\n },\n {\n name: 'value',\n },\n {\n name: 'searchConditionId',\n type: FieldType.number,\n },\n ],\n dataToJSON: DataToJSON.all,\n events: {\n update: () => {\n },\n },\n});\nconst QuickFilterDataSet = ({ searchCode, queryDataSet, tableFilterAdapter }) => ({\n paging: false,\n autoQuery: false,\n primaryKey: 'searchId',\n transport: {\n adapter: (config, type) => getTransportConfig({\n config,\n type,\n searchCode,\n queryDataSet,\n tableFilterAdapter,\n }),\n },\n fields: [\n { name: 'searchName', type: 'string', maxLength: 10, required: true },\n { name: 'searchId', type: 'string' },\n { name: 'defaultFlag', type: 'boolean', falseValue: 0, trueValue: 1 },\n { name: 'searchCode', type: 'string', defaultValue: searchCode },\n { name: 'conditionList', type: 'object' },\n ],\n});\nconst Store = createContext({});\nexport default Store;\nexport const StoreProvider = props => {\n const { children, dynamicFilterBar, queryDataSet, searchCode } = props;\n const searchCodes = dynamicFilterBar?.searchCode || searchCode;\n const tableFilterAdapter = dynamicFilterBar?.tableFilterAdapter || getConfig('tableFilterAdapter');\n const filterMenuDS = useMemo(() => new DataSet({\n autoCreate: true,\n fields: [\n {\n name: 'filterName',\n type: FieldType.string,\n textField: 'searchName',\n valueField: 'searchId',\n options: new DataSet({\n selection: DataSetSelection.single,\n }),\n ignore: FieldIgnore.always,\n },\n ],\n }), []);\n const conditionDataSet = useMemo(() => new DataSet(ConditionDataSet()), []);\n const menuDataSet = useMemo(() => new DataSet(QuickFilterDataSet({\n searchCode: searchCodes,\n queryDataSet,\n tableFilterAdapter,\n })), []);\n const value = {\n ...props,\n menuDataSet,\n filterMenuDS,\n conditionDataSet,\n };\n return React.createElement(Store.Provider, { value: value }, children);\n};\n","import React, { memo, useContext, useEffect } from 'react';\nimport { runInAction } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport map from 'lodash/map';\nimport isObject from 'lodash/isObject';\nimport isEnumEmpty from 'lodash/isEmpty';\nimport isArray from 'lodash/isArray';\nimport Icon from 'choerodon-ui/lib/icon';\nimport Tag from 'choerodon-ui/lib/tag';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport isSampleEmpty from '../../../_util/isEmpty';\nimport { $l } from '../../../locale-context';\nimport Button from '../../../button';\nimport Select from '../../../select';\nimport Modal from '../../../modal';\nimport CheckBox from '../../../check-box';\nimport TextField from '../../../text-field';\nimport { ValueChangeAction } from '../../../text-field/enum';\nimport Dropdown from '../../../dropdown';\nimport Menu from '../../../menu';\nimport Record from '../../../data-set/Record';\nimport { RecordStatus } from '../../../data-set/enum';\nimport { hide, show } from '../../../tooltip/singleton';\nimport isOverflow from '../../../overflow-tip/util';\nimport Store from './QuickFilterDataSet';\nconst modalKey = Modal.key();\n/**\n * 判断查询值是否为空\n * @param value\n */\nfunction isEmpty(value) {\n return isArray(value) ? !value.length : isSampleEmpty(value);\n}\n/**\n * 根据数据查找需要处理的字段对象\n * @param queryDataSet\n * @param data\n */\nfunction findFieldObj(queryDataSet, data) {\n const keys = [...queryDataSet.fields.keys()];\n let name = data[0];\n let value = data[1];\n if (!keys.includes(data[0]) &&\n isObject(data[1]) &&\n !isEnumEmpty(data[1]) &&\n !isArray(data[1])) {\n name = `${data[0]}.${Object.keys(data[1])[0]}`;\n value = Object.values(data[1])[0];\n }\n if (queryDataSet.getField(name) && queryDataSet.getField(name).get('ignore') !== 'always') {\n return { name, value };\n }\n}\n/**\n * 当前数据是否有值并需要选中\n * @param data\n */\nfunction isSelect(data) {\n if (isObject(data[1])) {\n return !isEnumEmpty(data[1]);\n }\n return data[0] !== '__dirty' && !isEmpty(data[1]);\n}\n/**\n * 编辑/新建筛选弹窗\n * @param prefixCls\n * @param modal\n * @param menuDataSet\n * @param queryDataSet\n * @param onLocateData\n * @constructor\n */\nconst ModalContent = memo(function ModalContent({ prefixCls, modal, menuDataSet, queryDataSet, onLoadData, type, selectFields }) {\n modal.handleOk(async () => {\n const putData = [];\n const statusKey = getConfig('statusKey');\n const statusAdd = getConfig('status').add;\n const status = {};\n status[statusKey] = statusAdd;\n if (type !== 'edit') {\n const conditionData = Object.entries(queryDataSet.current.toData());\n map(conditionData, data => {\n if (isSelect(data)) {\n const fieldObj = findFieldObj(queryDataSet, data);\n if (fieldObj?.name) {\n putData.push({\n comparator: 'EQUAL',\n fieldName: fieldObj.name,\n value: fieldObj.value,\n ...status,\n });\n }\n }\n });\n // 加入空值勾选字段\n const hasValueFields = putData.map(pt => pt.fieldName);\n map(selectFields, fieldName => {\n if (!hasValueFields.includes(fieldName)) {\n const value = queryDataSet.current.get(fieldName);\n putData.push({\n comparator: 'EQUAL',\n fieldName,\n value,\n ...status,\n });\n }\n });\n }\n // 另存为\n if (type === 'save') {\n const otherRecord = menuDataSet.current.clone();\n otherRecord.set('conditionList', putData);\n menuDataSet.current.reset();\n menuDataSet.create({ ...otherRecord.toData(), searchId: undefined });\n // 新建\n }\n else if (type === 'create') {\n menuDataSet.current.set('conditionList', putData);\n }\n const res = await menuDataSet.submit();\n if (res && res.success) {\n onLoadData(res.content ? res.content[0].searchId : undefined);\n return true;\n }\n return !((res && res.failed) || !res);\n });\n modal.handleCancel(() => {\n menuDataSet.current.reset();\n });\n const proPrefixCls = getConfig('proPrefixCls');\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: `${prefixCls}-filter-modal-item` },\n React.createElement(\"div\", { className: `${proPrefixCls}-form ${proPrefixCls}-field-label ${proPrefixCls}-field-required` }, $l('Table', 'filter_name')),\n React.createElement(TextField, { style: { width: '100%' }, name: \"searchName\", placeholder: $l('Table', 'please_enter'), showLengthInfo: true, valueChangeAction: ValueChangeAction.input, dataSet: menuDataSet })),\n type !== 'edit' && (React.createElement(\"div\", { className: `${prefixCls}-filter-modal-item` },\n React.createElement(CheckBox, { name: \"defaultFlag\", dataSet: menuDataSet }),\n React.createElement(\"span\", { className: `${proPrefixCls}-form ${proPrefixCls}-field-label` }, $l('Table', 'set_default'))))));\n});\n/**\n * 快速筛选下拉\n */\nconst QuickFilterMenu = observer(function QuickFilterMenu() {\n const { autoQuery, dataSet, menuDataSet, prefixCls, queryDataSet, filterMenuDS, conditionDataSet, onChange, \n // expand,\n conditionStatus, onStatusChange, selectFields, onOriginalChange, } = useContext(Store);\n const optionDs = filterMenuDS.getField('filterName').get('options');\n /**\n * queryDS 筛选赋值并更新初始勾选项\n */\n const conditionAssign = () => {\n onOriginalChange();\n const { conditionList } = menuDataSet.current.toData();\n const emptyRecord = new Record({}, queryDataSet);\n runInAction(() => {\n queryDataSet.records.push(emptyRecord);\n queryDataSet.current = emptyRecord;\n });\n if (conditionList && conditionList.length) {\n map(conditionList, condition => {\n if (condition.comparator === 'EQUAL') {\n const { fieldName, value } = condition;\n queryDataSet.current.set(fieldName, value);\n onChange(fieldName);\n onOriginalChange(fieldName);\n }\n });\n onStatusChange(RecordStatus.sync, queryDataSet.current.toData());\n }\n else {\n onStatusChange(RecordStatus.sync);\n if (autoQuery) {\n dataSet.query();\n }\n }\n };\n function handleQueryReset() {\n if (filterMenuDS.current?.get('filterName')) {\n // 筛选项重置重新赋值\n conditionAssign();\n }\n else {\n /**\n * 未选择或清除筛选项\n * 重置初始勾选项及初始赋值\n */\n onOriginalChange();\n queryDataSet.removeAll();\n queryDataSet.create({});\n if (autoQuery) {\n dataSet.query();\n }\n }\n onStatusChange(RecordStatus.sync);\n }\n /**\n * 定位数据源\n * @param searchId\n */\n const locateData = (searchId) => {\n if (searchId) {\n menuDataSet.locate(menuDataSet.findIndex((menu) => menu.get('searchId').toString() === searchId.toString()));\n conditionDataSet.loadData(menuDataSet.current.get('conditionList'));\n if (filterMenuDS.current)\n filterMenuDS.current.set('filterName', searchId);\n conditionAssign();\n }\n else if (searchId === null) {\n handleQueryReset();\n }\n else {\n const defaultMenu = menuDataSet.findIndex((menu) => menu.get('defaultFlag'));\n if (defaultMenu !== -1) {\n menuDataSet.locate(defaultMenu);\n conditionDataSet.loadData(menuDataSet.current.get('conditionList'));\n if (filterMenuDS.current)\n filterMenuDS.current.set('filterName', menuDataSet.current.get('searchId'));\n conditionAssign();\n }\n else {\n if (filterMenuDS.current)\n filterMenuDS.current.set('filterName', undefined);\n queryDataSet.reset();\n queryDataSet.create({});\n }\n }\n };\n /**\n * 加载筛选数据并赋值查询\n * @param searchId\n */\n const loadData = async (searchId) => {\n const result = await menuDataSet.query();\n optionDs.loadData(result);\n conditionDataSet.loadData(menuDataSet.current.get('conditionList'));\n if (result && result.length) {\n locateData(searchId);\n }\n else {\n if (filterMenuDS.current)\n filterMenuDS.current.set('filterName', undefined);\n locateData();\n if (dataSet.props.autoQuery) {\n dataSet.query();\n }\n }\n };\n function handleChange(value) {\n locateData(value);\n }\n /**\n * 删除该条筛选\n * @param record 下拉数据源\n */\n async function handleDelete(record) {\n let searchId = record.get('searchId');\n if (menuDataSet.current) {\n const currentId = menuDataSet.current.get('searchId').toString();\n searchId = record.get('searchId').toString() === currentId ? undefined : currentId;\n }\n const delRecord = menuDataSet.find((menu) => menu.get('searchId').toString() === record.get('searchId').toString());\n await menuDataSet.delete(delRecord, `${$l('Table', 'whether_delete_filter')}:${record.get('searchName')}?`);\n loadData(searchId);\n }\n function getTitle(type) {\n switch (type) {\n case 'create':\n return $l('Table', 'save_filter');\n case 'edit':\n return $l('Table', 'filter_rename');\n default:\n return $l('Table', 'save_filter_as');\n }\n }\n function openModal(type, searchId) {\n if (searchId) {\n menuDataSet.locate(menuDataSet.findIndex((menu) => menu.get('searchId').toString() === searchId.toString()));\n conditionDataSet.loadData(menuDataSet.current.get('conditionList'));\n }\n Modal.open({\n key: modalKey,\n closable: true,\n title: getTitle(type),\n children: (React.createElement(ModalContent, { prefixCls: prefixCls, type: type, menuDataSet: menuDataSet, conditionDataSet: conditionDataSet, onLoadData: loadData, queryDataSet: queryDataSet, selectFields: selectFields })),\n okFirst: false,\n destroyOnClose: true,\n });\n }\n async function handleSave() {\n if (!filterMenuDS.current?.get('filterName')) {\n menuDataSet.create({});\n openModal('create');\n }\n else {\n const conditionData = Object.entries(queryDataSet.current.toData());\n conditionDataSet.reset();\n map(conditionData, data => {\n const fieldObj = findFieldObj(queryDataSet, data);\n if (fieldObj?.name) {\n const currentRecord = conditionDataSet.find(record => record.get('fieldName') === fieldObj.name);\n if (currentRecord) {\n if (isEmpty(fieldObj.value) || (isObject(fieldObj.value) && isEnumEmpty(fieldObj.value))) {\n conditionDataSet.remove(currentRecord);\n }\n else {\n currentRecord.set('value', fieldObj.value);\n }\n }\n else if (isSelect(data)) {\n conditionDataSet.create({\n fieldName: fieldObj.name,\n value: fieldObj.value,\n });\n }\n }\n });\n const putData = [];\n map(selectFields, fieldName => {\n const value = queryDataSet.current.get(fieldName);\n const statusKey = getConfig('statusKey');\n const statusAdd = getConfig('status').add;\n const status = {};\n const toJSONFields = conditionDataSet.toJSONData().map(condition => condition.fieldName);\n status[statusKey] = statusAdd;\n if (!toJSONFields.includes(fieldName)) {\n putData.push({\n comparator: 'EQUAL',\n fieldName,\n value,\n ...status,\n });\n }\n });\n menuDataSet.current.set('conditionList', { ...conditionDataSet.toJSONData(), ...putData });\n const res = await menuDataSet.submit();\n if (res && res.success) {\n loadData(res.content ? res.content[0].searchId : undefined);\n }\n }\n }\n function handleEdit(record) {\n openModal('edit', record.get('searchId'));\n }\n function handleSaveOther() {\n menuDataSet.current.set('searchName', '');\n menuDataSet.current.getField('searchName').validator.reset();\n openModal('save');\n }\n useEffect(() => {\n loadData();\n }, []);\n /**\n * 默认设置\n * @param defaultFlag\n * @param record\n */\n const setDefaultFlag = async (defaultFlag, record) => {\n record.set('defaultFlag', defaultFlag);\n const currentRecord = menuDataSet.find((menu) => menu.get('searchId').toString() === record.get('searchId').toString());\n currentRecord.set('defaultFlag', defaultFlag);\n const res = await menuDataSet.submit();\n const result = await menuDataSet.query();\n optionDs.loadData(result);\n if ((res && res.failed) || !res) {\n record.reset();\n currentRecord.reset();\n }\n };\n /**\n * 渲染下拉选项\n * @param record\n * @param text\n */\n const optionRenderer = ({ record, text }) => {\n const isSelected = filterMenuDS.current.get('filterName')?.toString() === record.get('searchId')?.toString();\n const isDefault = record.get('defaultFlag') === 1;\n const menu = (React.createElement(Menu, { onClick: ({ key, domEvent }) => {\n domEvent.preventDefault();\n domEvent.stopPropagation();\n if (key === 'filter_default') {\n setDefaultFlag(record?.get('defaultFlag') ? 0 : 1, record);\n }\n else if (key === 'filter_rename') {\n handleEdit(record);\n }\n else {\n handleDelete(record);\n }\n } },\n React.createElement(Menu.Item, { key: 'filter_default' }, record?.get('defaultFlag') ? $l('Table', 'cancel_default') : $l('Table', 'set_default')),\n React.createElement(Menu.Item, { key: 'filter_rename' }, $l('Table', 'rename')),\n React.createElement(Menu.Item, { key: 'filter_delete' },\n React.createElement(\"span\", { style: { color: '#F13131' } }, $l('Table', 'delete_button')))));\n return (React.createElement(\"div\", { className: `${prefixCls}-filter-menu-option` },\n React.createElement(\"span\", { className: `${prefixCls}-filter-menu-option-content`, onMouseEnter: (e) => {\n const { currentTarget } = e;\n if (isOverflow(currentTarget)) {\n show(currentTarget, {\n title: text,\n });\n }\n }, \n // @ts-ignore\n onMouseLeave: hide },\n text,\n isDefault && React.createElement(Tag, null, $l('Table', 'default_flag'))),\n isSelected && React.createElement(\"div\", { className: `${prefixCls}-filter-menu-option-selected` },\n React.createElement(Icon, { type: \"check\" })),\n React.createElement(\"div\", { className: `${prefixCls}-filter-menu-option-icons` },\n React.createElement(Dropdown, { overlay: menu },\n React.createElement(\"span\", { style: { userSelect: 'none' } },\n React.createElement(Icon, { type: \"more_horiz\" }))))));\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(Select, { isFlat: true, placeholder: $l('Table', 'fast_filter'), className: `${prefixCls}-filterName-select`, dataSet: filterMenuDS, name: \"filterName\", dropdownMatchSelectWidth: false, dropdownMenuStyle: { width: '1.72rem' }, optionRenderer: optionRenderer, onChange: handleChange, notFoundContent: $l('Table', 'no_save_filter') }),\n conditionStatus === RecordStatus.update ? (React.createElement(Tag, { className: `${prefixCls}-filter-status` },\n React.createElement(\"span\", null, $l('Table', 'modified')))) : null,\n conditionStatus === RecordStatus.update && (React.createElement(\"div\", { className: `${prefixCls}-filter-buttons` },\n filterMenuDS.current?.get('filterName') && (React.createElement(Button, { onClick: handleSaveOther }, $l('Table', 'save_as'))),\n React.createElement(Button, { onClick: handleSave }, $l('Table', 'save_button')),\n React.createElement(Button, { onClick: handleQueryReset }, $l('Table', 'reset_button'))))));\n});\nQuickFilterMenu.displayName = 'QuickFilterMenu';\nexport default QuickFilterMenu;\n","import React from 'react';\nimport { StoreProvider } from './QuickFilterDataSet';\nimport QuickFilterMenu from './QuickFilterMenu';\nexport default props => (React.createElement(StoreProvider, Object.assign({}, props),\n React.createElement(QuickFilterMenu, null)));\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport 'choerodon-ui/lib/collapse/style';\nimport 'choerodon-ui/lib/grid/style';\nimport './index.less';\n// style dependencies\nimport '../../form/style';\nimport '../../output/style';\nimport '../../button/style';\nimport '../../radio/style';\nimport '../../check-box/style';\nimport '../../text-field/style';\nimport '../../color-picker/style';\nimport '../../currency/style';\nimport '../../number-field/style';\nimport '../../intl-field/style';\nimport '../../url-field/style';\nimport '../../email-field/style';\nimport '../../lov/style';\nimport '../../select/style';\nimport '../../select-box/style';\nimport '../../tree-select/style';\nimport '../../date-picker/style';\nimport '../../spin/style';\nimport '../../pagination/style';\nimport '../../modal-container/style';\nimport '../../tooltip/style';\nimport '../../validator/style';\nimport '../../switch/style';\nimport '../../menu/style';\n","import React, { isValidElement } from 'react';\nimport isString from 'lodash/isString';\nimport warning from 'choerodon-ui/lib/_util/warning';\nimport ObserverCheckBox from '../check-box/CheckBox';\nimport { FieldType, RecordStatus } from '../data-set/enum';\nimport ObserverSelect from '../select/Select';\nimport TreeSelect from '../tree-select/TreeSelect';\nimport Option from '../option/Option';\nimport Lov from '../lov/Lov';\nimport ObserverNumberField from '../number-field/NumberField';\nimport Currency from '../currency/Currency';\nimport DatePicker from '../date-picker/DatePicker';\nimport DateTimePicker from '../date-time-picker/DateTimePicker';\nimport TimePicker from '../time-picker/TimePicker';\nimport WeekPicker from '../week-picker/WeekPicker';\nimport MonthPicker from '../month-picker/MonthPicker';\nimport YearPicker from '../year-picker/YearPicker';\nimport ObserverTextField from '../text-field/TextField';\nimport { ColumnLock, TablePaginationPosition } from './enum';\nimport IntlField from '../intl-field/IntlField';\nimport UrlField from '../url-field/UrlField';\nimport EmailField from '../email-field/EmailField';\nimport ColorPicker from '../color-picker/ColorPicker';\nimport Output from '../output/Output';\nimport Attachment from '../attachment/Attachment';\nimport { CUSTOMIZED_KEY } from './TableStore';\nimport { $l } from '../locale-context';\nimport measureTextWidth from '../_util/measureTextWidth';\nimport { FuncType } from '../button/enum';\nexport function getEditorByField(field, isQueryField, isFlat) {\n const lookupCode = field.get('lookupCode');\n const lookupUrl = field.get('lookupUrl');\n const lovCode = field.get('lovCode');\n const multiLine = field.get('multiLine');\n const { type, name } = field;\n const flatProps = isFlat ? { isFlat, maxTagCount: 4, maxTagTextLength: 4 } : {};\n if (lookupCode ||\n isString(lookupUrl) ||\n (type !== FieldType.object && (lovCode || field.lookup || field.get('options')))) {\n if (field.get('parentField')) {\n return React.createElement(TreeSelect, Object.assign({}, flatProps));\n }\n return React.createElement(ObserverSelect, Object.assign({}, flatProps));\n }\n if (lovCode) {\n return React.createElement(Lov, Object.assign({}, flatProps));\n }\n if (multiLine) {\n return React.createElement(Output, null);\n }\n switch (type) {\n case FieldType.boolean:\n return isQueryField ? (React.createElement(ObserverSelect, Object.assign({ clearButton: true }, flatProps),\n React.createElement(Option, { value: true }, $l('Table', 'query_option_yes')),\n React.createElement(Option, { value: false }, $l('Table', 'query_option_no')))) : React.createElement(ObserverCheckBox, null);\n case FieldType.number:\n return React.createElement(ObserverNumberField, Object.assign({}, flatProps));\n case FieldType.currency:\n return React.createElement(Currency, { isFlat: isFlat });\n case FieldType.date:\n return React.createElement(DatePicker, { isFlat: isFlat });\n case FieldType.dateTime:\n return React.createElement(DateTimePicker, { isFlat: isFlat });\n case FieldType.time:\n return React.createElement(TimePicker, { isFlat: isFlat });\n case FieldType.week:\n return React.createElement(WeekPicker, { isFlat: isFlat });\n case FieldType.month:\n return React.createElement(MonthPicker, { isFlat: isFlat });\n case FieldType.year:\n return React.createElement(YearPicker, { isFlat: isFlat });\n case FieldType.intl:\n return React.createElement(IntlField, { isFlat: isFlat });\n case FieldType.email:\n return React.createElement(EmailField, { isFlat: isFlat });\n case FieldType.url:\n return React.createElement(UrlField, { isFlat: isFlat });\n case FieldType.color:\n return React.createElement(ColorPicker, { isFlat: isFlat });\n case FieldType.attachment:\n return React.createElement(Attachment, { viewMode: \"popup\", funcType: FuncType.link });\n case FieldType.string:\n return React.createElement(ObserverTextField, { isFlat: isFlat });\n default:\n warning(false, `Table auto editor: No editor exists on the field<${name}>'s type<${type}>, so use the TextField as default editor`);\n return React.createElement(ObserverTextField, { isFlat: isFlat });\n }\n}\nexport function getPlaceholderByField(field) {\n if (field) {\n const { type } = field;\n const lookupCode = field.get('lookupCode');\n const lookupUrl = field.get('lookupUrl');\n const lovCode = field.get('lovCode');\n if (lookupCode ||\n isString(lookupUrl) ||\n (type !== FieldType.object && (lovCode || field.lookup || field.get('options')))) {\n return undefined;\n }\n switch (type) {\n case FieldType.number:\n case FieldType.currency:\n case FieldType.string:\n case FieldType.intl:\n case FieldType.email:\n case FieldType.url:\n return $l('Table', 'please_enter');\n default:\n }\n }\n}\nexport function getEditorByColumnAndRecord(column, record) {\n const { name, editor } = column;\n if (record) {\n let cellEditor = editor;\n if (typeof editor === 'function') {\n cellEditor = editor(record, name);\n }\n if (cellEditor === true) {\n const field = record.getField(name);\n if (field) {\n if (!field.get('unique') ||\n field.get('multiple') ||\n field.get('range') ||\n record.status === RecordStatus.add) {\n return getEditorByField(field);\n }\n }\n }\n if (isValidElement(cellEditor)) {\n return cellEditor;\n }\n }\n if (isValidElement(editor)) {\n return editor;\n }\n}\nexport function isInCellEditor(element) {\n if (element) {\n return !!element.type.__IS_IN_CELL_EDITOR;\n }\n return false;\n}\nlet STICKY_SUPPORT;\nexport function isStickySupport() {\n if (STICKY_SUPPORT !== undefined) {\n return STICKY_SUPPORT;\n }\n if (typeof window !== 'undefined') {\n const vendorList = ['', '-webkit-', '-ms-', '-moz-', '-o-'];\n const stickyElement = document.createElement('div');\n STICKY_SUPPORT = vendorList.some((vendor) => {\n stickyElement.style.position = `${vendor}sticky`;\n if (stickyElement.style.position !== '') {\n return true;\n }\n return false;\n });\n return STICKY_SUPPORT;\n }\n return true;\n}\nexport function findCell(tableStore, name, lock, record) {\n const { node, dataSet, overflowX, currentEditRecord, prefixCls } = tableStore;\n const current = record || currentEditRecord || dataSet.current;\n if (name !== undefined && current && node.element) {\n const wrapperSelector = !isStickySupport() && overflowX && lock ? `.${prefixCls}-fixed-${lock === true ? ColumnLock.left : lock} ` : '';\n const selector = `${wrapperSelector}tr[data-index=\"${current.id}\"] td[data-index=\"${name}\"] span.${prefixCls}-cell-inner`;\n return node.element.querySelector(selector);\n }\n}\nexport function isCanEdictingRow(element) {\n const sibling = element;\n if (!sibling ||\n ('index' in sibling.dataset &&\n !sibling.getAttributeNodeNS('', 'disabled') &&\n (!document.defaultView || document.defaultView.getComputedStyle(sibling).display !== 'none'))) {\n return true;\n }\n return false;\n}\nexport function findIndexedSibling(element, direction) {\n const sibling = direction > 0 ? element.nextElementSibling : element.previousElementSibling;\n if (isCanEdictingRow(element)) {\n return sibling;\n }\n return findIndexedSibling(sibling, direction);\n}\nexport function isDisabledRow(record) {\n return record.isCached || record.status === RecordStatus.delete;\n}\nexport function isSelectedRow(record) {\n return record.isSelected;\n}\nexport function getHeader(column, dataSet, aggregation) {\n const { header, name, title } = column;\n if (typeof header === 'function') {\n return header(dataSet, name, title, aggregation);\n }\n if (title !== undefined) {\n return title;\n }\n if (header !== undefined) {\n return header;\n }\n const field = dataSet.getField(name);\n if (field) {\n return field.get('label');\n }\n}\nexport function getColumnKey({ name, key }) {\n return key || name;\n}\nexport function getColumnLock(lock) {\n if (lock === true) {\n return ColumnLock.left;\n }\n if (lock) {\n return lock;\n }\n return false;\n}\nexport function getPaginationPosition(pagination) {\n if (pagination) {\n const { position } = pagination;\n if (position) {\n return position;\n }\n }\n return TablePaginationPosition.bottom;\n}\nexport function getHeight(el) {\n return el.getBoundingClientRect().height;\n}\nexport function getTableHeaderRows(columns, currentRow = 0, rows = []) {\n rows[currentRow] = rows[currentRow] || [];\n columns.forEach(column => {\n const { hidden, rowSpan, colSpan, children } = column;\n if (!hidden) {\n if (rowSpan && rows.length < rowSpan) {\n while (rows.length < rowSpan) {\n rows.push([]);\n }\n }\n if (children) {\n getTableHeaderRows(children.columns, currentRow + rowSpan, rows);\n }\n if (colSpan !== 0) {\n rows[currentRow].push(column);\n }\n }\n });\n return rows;\n}\nexport function isDropresult(dropResult) {\n if (dropResult && dropResult.destination) {\n return ((typeof dropResult.source.index === 'number')\n && (typeof dropResult.destination === 'object')\n && (typeof dropResult.destination.index === 'number'));\n }\n return false;\n}\nexport function isDraggingStyle(style) {\n return style ? 'left' in style : false;\n}\nexport function getMaxClientWidth(element) {\n const { textContent, ownerDocument, clientWidth } = element;\n if (textContent && ownerDocument) {\n const { scrollWidth } = element;\n if (scrollWidth > clientWidth) {\n return scrollWidth;\n }\n const { defaultView } = ownerDocument;\n if (defaultView) {\n const computedStyle = defaultView.getComputedStyle(element);\n const { paddingLeft, paddingRight } = computedStyle;\n const pl = paddingLeft ? parseFloat(paddingLeft) : 0;\n const pr = paddingRight ? parseFloat(paddingRight) : 0;\n if (pl || pr) {\n const textWidth = measureTextWidth(textContent, computedStyle) + pl + pr;\n if (textWidth > clientWidth) {\n return textWidth;\n }\n }\n }\n }\n return clientWidth;\n}\nexport function onlyCustomizedColumn(tableStore) {\n const { rightLeafs } = tableStore.columnGroups;\n return rightLeafs.length === 0 || rightLeafs[0].key === CUSTOMIZED_KEY;\n}\n","import Tabs from 'choerodon-ui/lib/tabs';\nexport default Tabs;\n","import 'choerodon-ui/lib/tabs/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { action, observable } from 'mobx';\nimport isString from 'lodash/isString';\nimport PropTypes from 'prop-types';\nimport ReactResizeObserver from 'choerodon-ui/lib/_util/resizeObserver';\nimport { TextField } from '../text-field/TextField';\nimport { ResizeType } from './enum';\nimport calculateNodeHeight from './calculateNodeHeight';\nimport autobind from '../_util/autobind';\nfunction getResizeProp(resize) {\n switch (resize) {\n case ResizeType.both:\n return 'both';\n case ResizeType.vertical:\n return 'height';\n case ResizeType.horizontal:\n return 'width';\n default:\n return undefined;\n }\n}\nlet TextArea = class TextArea extends TextField {\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'resize',\n 'autoSize',\n 'onResize',\n ]);\n }\n getOtherProps() {\n const { resize = ResizeType.none, autoSize } = this.props;\n const otherProps = super.getOtherProps();\n const { style = {} } = otherProps;\n style.resize = resize;\n if (resize !== ResizeType.none) {\n style.transition = 'none';\n }\n if (autoSize) {\n const { minRows, maxRows } = autoSize;\n otherProps.rows = minRows;\n const { element } = this;\n if (element) {\n Object.assign(style, calculateNodeHeight(element, true, minRows, maxRows));\n }\n }\n otherProps.style = style;\n return otherProps;\n }\n handleResize(width, height, target) {\n const { onResize } = this.props;\n if (!this.resized) {\n const { element } = this;\n if (element && element.style.width) {\n this.resized = true;\n }\n }\n if (onResize) {\n onResize(width, height, target);\n }\n }\n renderWrapper() {\n const { resize = ResizeType.none } = this.props;\n const text = this.getTextNode();\n const resizable = resize !== ResizeType.none;\n const wrapperProps = this.getWrapperProps() || {};\n const elementProps = this.getOtherProps() || {};\n const lengthElement = this.renderLengthInfo();\n if (this.resized) {\n const { style: wrapperStyle } = wrapperProps;\n wrapperProps.style = {\n ...wrapperStyle,\n width: 'auto',\n };\n }\n const element = (React.createElement(\"textarea\", Object.assign({}, elementProps, { placeholder: this.hasFloatLabel ? undefined : this.getPlaceholders()[0], readOnly: !this.editable, value: isString(text) ? text : this.processValue(this.getValue()) })));\n return (React.createElement(\"div\", Object.assign({ key: \"wrapper\" }, wrapperProps),\n this.renderPlaceHolder(),\n React.createElement(\"label\", null,\n resizable ? (React.createElement(ReactResizeObserver, { onResize: this.handleResize, resizeProp: getResizeProp(resize) },\n element,\n lengthElement)) : React.createElement(React.Fragment, null,\n element,\n lengthElement),\n this.renderFloatLabel())));\n }\n handleEnterDown() {\n }\n};\nTextArea.displayName = 'TextArea';\nTextArea.propTypes = {\n cols: PropTypes.number,\n rows: PropTypes.number,\n resize: PropTypes.oneOf([\n ResizeType.vertical,\n ResizeType.horizontal,\n ResizeType.none,\n ResizeType.both,\n ]),\n autoSize: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n ...TextField.propTypes,\n};\nTextArea.defaultProps = {\n ...TextField.defaultProps,\n suffixCls: 'textarea',\n rows: 4,\n autoSize: false,\n};\n// eslint-disable-next-line camelcase\nTextArea.__PRO_TEXTAREA = true;\n__decorate([\n observable\n], TextArea.prototype, \"resized\", void 0);\n__decorate([\n autobind,\n action\n], TextArea.prototype, \"handleResize\", null);\nTextArea = __decorate([\n observer\n], TextArea);\nexport default TextArea;\n","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\nconst SIZING_STYLE = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\nconst computedStyleCache = {};\nlet hiddenTextarea;\nfunction calculateNodeStyling(node, useCache = false) {\n const nodeRef = (node.getAttribute('id') ||\n node.getAttribute('data-reactid') ||\n node.getAttribute('name'));\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n const style = window.getComputedStyle(node);\n const boxSizing = style.getPropertyValue('box-sizing') ||\n style.getPropertyValue('-moz-box-sizing') ||\n style.getPropertyValue('-webkit-box-sizing');\n const paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) +\n parseFloat(style.getPropertyValue('padding-top'));\n const borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) +\n parseFloat(style.getPropertyValue('border-top-width'));\n const sizingStyle = SIZING_STYLE.map(name => `${name}:${style.getPropertyValue(name)}`).join(';');\n const nodeInfo = {\n sizingStyle,\n paddingSize,\n borderSize,\n boxSizing,\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateNodeHeight(uiTextNode, useCache = false, minRows = null, maxRows = null) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n }\n else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n const { paddingSize, borderSize, boxSizing, sizingStyle } = calculateNodeStyling(uiTextNode, useCache);\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n let minHeight = Number.MIN_SAFE_INTEGER;\n let maxHeight = Number.MAX_SAFE_INTEGER;\n let height = hiddenTextarea.scrollHeight;\n let overflowY;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n }\n else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n // Remove scroll bar flash when autosize without maxRows\n if (!maxRows) {\n overflowY = 'hidden';\n }\n return { height, minHeight, maxHeight, overflowY };\n}\n","export var ResizeType;\n(function (ResizeType) {\n ResizeType[\"both\"] = \"both\";\n ResizeType[\"vertical\"] = \"vertical\";\n ResizeType[\"horizontal\"] = \"horizontal\";\n ResizeType[\"none\"] = \"none\";\n})(ResizeType || (ResizeType = {}));\n","import TextArea from './TextArea';\nexport default TextArea;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../field/style';\n","import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nconst RenderedText = ({ prefixCls, children, onContentChange, hidden, className, isFlat, rangeTarget }) => {\n const renderedValueRef = useRef(null);\n const [content, setContent] = useState(null);\n const selfPrefixCls = `${prefixCls}-rendered-value`;\n const style = useMemo(() => isFlat ? {\n width: 'auto',\n maxWidth: 'none',\n } : undefined, [isFlat]);\n useLayoutEffect(() => {\n if (onContentChange) {\n const { current } = renderedValueRef;\n if (current) {\n const { textContent } = current;\n if (textContent !== null && textContent !== content) {\n setContent(textContent);\n onContentChange(textContent, current.scrollWidth, rangeTarget);\n }\n }\n }\n }, [onContentChange, renderedValueRef, content, children, rangeTarget]);\n return (React.createElement(\"span\", { key: \"renderedText\", className: classNames(selfPrefixCls, className), hidden: hidden, style: style },\n React.createElement(\"span\", { className: `${selfPrefixCls}-inner`, ref: renderedValueRef }, children)));\n};\nRenderedText.displayName = 'RenderedText';\nexport default RenderedText;\n","import { __decorate } from \"tslib\";\nimport React, { Children, cloneElement, createElement, isValidElement, } from 'react';\nimport omit from 'lodash/omit';\nimport defer from 'lodash/defer';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nimport isNil from 'lodash/isNil';\nimport noop from 'lodash/noop';\nimport debounce from 'lodash/debounce';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { action, computed, observable, runInAction, toJS } from 'mobx';\nimport { observer } from 'mobx-react';\nimport KeyCode from 'choerodon-ui/lib/_util/KeyCode';\nimport { pxToRem, toPx } from 'choerodon-ui/lib/_util/UnitConvertor';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { WaitType } from '../core/enum';\nimport { FormField } from '../field/FormField';\nimport autobind from '../_util/autobind';\nimport isEmpty from '../_util/isEmpty';\nimport isIE from '../_util/isIE';\nimport Icon from '../icon';\nimport { preventDefault, stopPropagation } from '../_util/EventManager';\nimport measureTextWidth from '../_util/measureTextWidth';\nimport Animate from '../animate';\nimport Tooltip from '../tooltip/Tooltip';\nimport { GroupItemCategory, ValueChangeAction } from './enum';\nimport { ShowHelp } from '../field/enum';\nimport { FieldFormat } from '../data-set/enum';\nimport { LabelLayout } from '../form/interface';\nimport { getProperty } from '../form/utils';\nimport RenderedText from './RenderedText';\nimport isReactChildren from '../_util/isReactChildren';\nimport TextFieldGroup from './TextFieldGroup';\nimport { findFirstFocusableElement } from '../_util/focusable';\nimport { hide, show } from '../tooltip/singleton';\nlet PLACEHOLDER_SUPPORT;\nconst defaultWrap = node => node;\nexport function isPlaceHolderSupport() {\n if (PLACEHOLDER_SUPPORT !== undefined) {\n return PLACEHOLDER_SUPPORT;\n }\n if (typeof window !== 'undefined') {\n return (PLACEHOLDER_SUPPORT = 'placeholder' in document.createElement('input'));\n }\n return true;\n}\nexport class TextField extends FormField {\n constructor(props, context) {\n super(props, context);\n this.type = 'text';\n this.handleChangeWait = this.getHandleChange(props);\n }\n get clearButton() {\n const { clearButton } = this.props;\n return clearButton && !this.readOnly && !this.disabled;\n }\n /**\n * 是否显示长度信息\n */\n get showLengthInfo() {\n if ('showLengthInfo' in this.props) {\n return this.props.showLengthInfo;\n }\n return getConfig('showLengthInfo');\n }\n handleRenderedValueChange(text, width, rangeTarget) {\n switch (rangeTarget) {\n case 0: {\n this.renderedStartText = {\n text,\n width,\n };\n break;\n }\n case 1: {\n this.renderedEndText = {\n text,\n width,\n };\n break;\n }\n default: {\n this.renderedText = {\n text,\n width,\n };\n }\n }\n }\n clearRenderedText(rangeTarget) {\n switch (rangeTarget) {\n case 0: {\n if (this.renderedStartText) {\n runInAction(() => {\n this.renderedStartText = undefined;\n });\n }\n break;\n }\n case 1: {\n if (this.renderedEndText) {\n runInAction(() => {\n this.renderedEndText = undefined;\n });\n }\n break;\n }\n default: {\n if (this.renderedText) {\n runInAction(() => {\n this.renderedText = undefined;\n });\n }\n }\n }\n }\n componentWillReceiveProps(nextProps, nextContext) {\n super.componentWillReceiveProps(nextProps, nextContext);\n const { wait, waitType } = this.props;\n if (wait !== nextProps.wait || waitType !== nextProps.waitType) {\n this.handleChangeWait = this.getHandleChange(nextProps);\n }\n }\n componentWillUnmount() {\n super.componentWillUnmount();\n this.handleChangeWait.cancel();\n }\n saveTagContainer(node) {\n this.tagContainer = node;\n }\n saveAddonAfterRef(node) {\n this.addonAfterRef = node;\n }\n saveAddonBeforeRef(node) {\n this.addonBeforeRef = node;\n }\n getEditorTextInfo(rangeTarget) {\n const { isFlat } = this.props;\n const [startPlaceHolder, endPlaceHolder = startPlaceHolder] = rangeTarget === undefined && this.hasFloatLabel ? [] : this.getPlaceholders();\n if (rangeTarget === undefined) {\n const { text } = this;\n if (text !== undefined) {\n return {\n text,\n width: isFlat ? measureTextWidth(text) : 0,\n };\n }\n const { renderedText } = this;\n if (renderedText) {\n if (renderedText.text) {\n return renderedText;\n }\n }\n else {\n const unRenderedText = this.getTextNode(this.getValue());\n const processedText = isNumber(unRenderedText) ? String(unRenderedText) : unRenderedText;\n if (isString(processedText) && processedText.length) {\n return {\n text: processedText,\n width: isFlat ? measureTextWidth(processedText) : 0,\n };\n }\n }\n if (startPlaceHolder) {\n return {\n text: '',\n width: isFlat ? measureTextWidth(startPlaceHolder) : 0,\n placeholder: startPlaceHolder,\n };\n }\n return {\n text: '',\n width: 0,\n };\n }\n const [startValue, endValue] = this.processRangeValue(this.isEditableLike() ? undefined : this.rangeValue);\n if (rangeTarget === 0) {\n const { renderedStartText } = this;\n if (renderedStartText) {\n if (renderedStartText.text) {\n return renderedStartText;\n }\n }\n else {\n const unRenderedStartText = this.getTextByValue(startValue);\n const startText = isNumber(unRenderedStartText) ? String(unRenderedStartText) : unRenderedStartText;\n if (isString(startText) && startText.length) {\n return {\n text: startText,\n width: isFlat ? measureTextWidth(startText) : 0,\n };\n }\n }\n if (startPlaceHolder) {\n return {\n text: '',\n width: isFlat ? measureTextWidth(startPlaceHolder) : 0,\n placeholder: startPlaceHolder,\n };\n }\n }\n if (rangeTarget === 1) {\n const { renderedEndText } = this;\n if (renderedEndText) {\n if (renderedEndText.text) {\n return renderedEndText;\n }\n }\n else {\n const unRenderedEndText = this.getTextByValue(endValue);\n const endText = isNumber(unRenderedEndText) ? String(unRenderedEndText) : unRenderedEndText;\n if (isString(endText) && endText.length) {\n return {\n text: endText,\n width: isFlat ? measureTextWidth(endText) : 0,\n };\n }\n }\n if (endPlaceHolder) {\n return {\n text: '',\n width: isFlat ? measureTextWidth(endPlaceHolder) : 0,\n placeholder: endPlaceHolder,\n };\n }\n }\n return {\n text: '',\n width: 0,\n };\n }\n isRenderEmpty() {\n if (!this.multiple) {\n return this.range ? isEmpty(this.getEditorTextInfo(0).text) && isEmpty(this.getEditorTextInfo(1).text) : isEmpty(this.getEditorTextInfo().text);\n }\n return true;\n }\n isEmpty() {\n return (this.isEditableLike() || isEmpty(this.text)) && super.isEmpty() && this.isRenderEmpty();\n }\n getOtherProps() {\n const otherProps = omit(super.getOtherProps(), [\n 'prefix',\n 'suffix',\n 'clearButton',\n 'addonBefore',\n 'addonAfter',\n 'addonBeforeStyle',\n 'addonAfterStyle',\n 'restrict',\n 'placeholder',\n 'placeHolder',\n 'maxLengths',\n 'autoComplete',\n 'valueChangeAction',\n 'wait',\n 'waitType',\n 'groupClassName',\n 'showLengthInfo',\n 'border',\n ]);\n otherProps.type = this.type;\n otherProps.maxLength = this.getProp('maxLength');\n otherProps.onKeyDown = this.handleKeyDown;\n otherProps.autoComplete = this.props.autoComplete || getConfig('textFieldAutoComplete') || 'off';\n return otherProps;\n }\n forceBlur(e) {\n const { addonBefore, addonAfter, _inTable } = this.props;\n if (!_inTable || (!addonBefore && !addonAfter)) {\n super.forceBlur(e);\n }\n }\n handleAddonBeforeKeyDown(e) {\n const { _inTable, onKeyDown } = this.props;\n if (_inTable && onKeyDown && e.keyCode === KeyCode.TAB && e.shiftKey) {\n onKeyDown(e);\n }\n }\n handleAddonAfterKeyDown(e) {\n const { _inTable, onKeyDown } = this.props;\n if (_inTable && onKeyDown && e.keyCode === KeyCode.TAB && !e.shiftKey) {\n onKeyDown(e);\n }\n }\n handleHelpMouseEnter(e) {\n show(e.currentTarget, {\n title: this.getProp('help'),\n popupClassName: `${getConfig('proPrefixCls')}-tooltip-popup-help`,\n theme: getTooltipTheme('help'),\n });\n }\n handleHelpMouseLeave() {\n hide();\n }\n getValidatorProps() {\n const pattern = this.getProp('pattern');\n const maxLength = this.getProp('maxLength');\n const minLength = this.getProp('minLength');\n return {\n ...super.getValidatorProps(),\n pattern,\n maxLength,\n minLength,\n };\n }\n getWrapperClassNames(...args) {\n const { prefixCls, multiple, range, props: { border } } = this;\n const suffix = this.getSuffix();\n const prefix = this.getPrefix();\n return super.getWrapperClassNames({\n [`${prefixCls}-suffix-button`]: isValidElement(suffix),\n [`${prefixCls}-multiple`]: multiple,\n [`${prefixCls}-range`]: range,\n [`${prefixCls}-border`]: border,\n [`${prefixCls}-prefix-button`]: isValidElement(prefix),\n }, ...args);\n }\n renderWrapper() {\n return this.renderGroup();\n }\n renderInputElement() {\n const { addonBefore, addonAfter, isFlat } = this.props;\n const renderedValue = this.renderRenderedValue(undefined, { isFlat });\n const input = this.getWrappedEditor(renderedValue);\n const button = this.getInnerSpanButton();\n const suffix = this.getSuffix();\n const prefix = this.getPrefix();\n const otherPrevNode = this.getOtherPrevNode();\n const otherNextNode = this.getOtherNextNode();\n const placeholderDiv = renderedValue ? undefined : this.renderPlaceHolder();\n const floatLabel = this.renderFloatLabel();\n const multipleHolder = this.renderMultipleHolder();\n const wrapperProps = this.getWrapperProps();\n // 修复设置宽度导致拥有addon出现宽度超出\n if (addonAfter || addonBefore) {\n wrapperProps.style = omit(wrapperProps.style, 'width');\n }\n // 修复ie下出现多层model导致的输入框遮盖问题\n // fixed the input would shadow each other in ie brower\n const ZIndexOfIEProps = isIE() ? { style: { zIndex: 'auto' } } : {};\n const element = (React.createElement(\"span\", Object.assign({ key: \"element\" }, wrapperProps),\n multipleHolder,\n otherPrevNode,\n placeholderDiv,\n renderedValue,\n React.createElement(\"label\", Object.assign({}, ZIndexOfIEProps, { onMouseDown: this.handleMouseDown }),\n prefix,\n input,\n floatLabel,\n suffix,\n button)));\n if (otherNextNode) {\n return (React.createElement(React.Fragment, null,\n element,\n otherNextNode));\n }\n return element;\n }\n renderGroup() {\n const { prefixCls, props: { addonBefore, addonAfter, addonBeforeStyle, addonAfterStyle, showHelp, groupClassName, _inTable, onBlur, tabIndex }, } = this;\n const inputElement = this.renderInputElement();\n const help = showHelp === ShowHelp.tooltip ? this.renderTooltipHelp() : null;\n if (!addonBefore && !addonAfter && !help) {\n return inputElement;\n }\n const classString = classNames(`${prefixCls}-group`, groupClassName, {\n [`${prefixCls}-float-label-group`]: this.hasFloatLabel,\n });\n return (React.createElement(TextFieldGroup, { key: \"wrapper\", prefixCls: prefixCls, onBlur: _inTable && (addonBefore || addonAfter) ? onBlur : undefined },\n React.createElement(\"div\", { className: classString },\n this.wrapGroupItem(addonBefore, GroupItemCategory.before, {\n style: addonBeforeStyle,\n ref: this.saveAddonBeforeRef,\n onKeyDown: this.handleAddonBeforeKeyDown,\n }, { tabIndex }),\n this.wrapGroupItem(inputElement, GroupItemCategory.input),\n this.wrapGroupItem(help, GroupItemCategory.help),\n this.wrapGroupItem(addonAfter, GroupItemCategory.after, {\n style: addonAfterStyle,\n ref: this.saveAddonAfterRef,\n onKeyDown: this.handleAddonAfterKeyDown,\n }, { tabIndex }))));\n }\n renderTooltipHelp() {\n const help = this.getProp('help');\n if (help) {\n return (React.createElement(Icon, { type: \"help\", onMouseEnter: this.handleHelpMouseEnter, onMouseLeave: this.handleHelpMouseLeave }));\n }\n }\n renderLengthInfo(maxLength, inputLength) {\n const { prefixCls } = this;\n return maxLength && maxLength > 0 ? (React.createElement(\"div\", { key: \"length-info\", className: `${prefixCls}-length-info` }, `${inputLength}/${maxLength}`)) : null;\n }\n // 处理 form 中的 labelLayout 为 placeholder 情况避免以前 placeholder 和 label 无法区分彼此。\n getPlaceholders() {\n const { dataSet, record, props, labelLayout } = this;\n const placeholderOrigin = this.getProp('placeholder');\n const label = getProperty(props, 'label', dataSet, record);\n let placeholder = placeholderOrigin;\n if (labelLayout === LabelLayout.placeholder) {\n placeholder = label && !this.isFocused ? label : placeholderOrigin || label;\n }\n const holders = [];\n return placeholder ? holders.concat(toJS(placeholder)) : holders;\n }\n getLabel() {\n const [placeholder, endPlaceHolder] = this.getPlaceholders();\n if (this.rangeTarget === 1 && !isNil(endPlaceHolder) && !this.isFocused && this.isEmpty()) {\n return endPlaceHolder;\n }\n if (placeholder && (this.rangeTarget === 0 || !this.range) && !this.isFocused && this.isEmpty()) {\n return placeholder;\n }\n return toJS(this.getProp('label'));\n }\n wrapGroupItem(node, category, props, childrenProps) {\n if (!node) {\n return null;\n }\n const { prefixCls } = this;\n const children = childrenProps ? Children.map(node, (child) => {\n if (isValidElement(child) && !isString(child.type)) {\n return cloneElement(child, childrenProps);\n }\n return child;\n }) : node;\n return React.createElement(\"div\", Object.assign({ className: `${prefixCls}-group-${category}` }, props), children);\n }\n setRangeTarget(target) {\n if (this.text !== undefined) {\n this.prepareSetValue(this.text);\n this.setText();\n }\n super.setRangeTarget(target);\n defer(() => this.isFocused && this.select());\n }\n renderRangeEditor(props) {\n const { isFlat } = this.props;\n const { prefixCls, rangeTarget, isFocused, editable } = this;\n const [startValue = '', endValue = ''] = this.processRangeValue(this.isEditableLike() ? undefined : this.rangeValue);\n const startRenderedValue = this.renderRenderedValue(startValue, {\n key: 'startRenderedText',\n className: `${prefixCls}-range-start-rendered-value`,\n rangeTarget: 0,\n isFlat,\n });\n const startStyle = {};\n const endStyle = {};\n const endRenderedValue = this.renderRenderedValue(endValue, {\n key: 'endRenderedText',\n className: `${prefixCls}-range-end-rendered-value`,\n rangeTarget: 1,\n isFlat,\n });\n const { text: startText, placeholder: startPlaceholder, width: startWidth } = this.getEditorTextInfo(0);\n const { text: endText, placeholder: endPlaceholder, width: endWidth } = this.getEditorTextInfo(1);\n const editorStyle = {};\n if (rangeTarget === 1) {\n editorStyle.right = 0;\n }\n else {\n editorStyle.left = 0;\n }\n if (!editable) {\n editorStyle.textIndent = -1000;\n editorStyle.color = 'transparent';\n }\n // 筛选条默认宽度处理\n if (isFlat) {\n startStyle.width = startWidth + 4;\n startStyle.boxSizing = 'content-box';\n endStyle.width = endWidth + 4;\n endStyle.boxSizing = 'content-box';\n }\n if (startRenderedValue && (!editable || !isFocused)) {\n startStyle.textIndent = -1000;\n startStyle.color = 'transparent';\n }\n if (endRenderedValue && (!editable || !isFocused)) {\n endStyle.textIndent = -1000;\n endStyle.color = 'transparent';\n }\n return (React.createElement(\"span\", { key: \"text\", className: `${prefixCls}-range-text` },\n startRenderedValue,\n endRenderedValue,\n !this.disabled && (React.createElement(\"input\", Object.assign({}, props, { className: `${prefixCls}-range-input`, key: \"text\", value: rangeTarget === undefined || !this.isFocused\n ? ''\n : this.text === undefined\n ? rangeTarget === 0\n ? startText\n : endText\n : this.text, placeholder: !editable || rangeTarget === undefined || !this.isFocused\n ? ''\n : rangeTarget === 0\n ? startPlaceholder\n : endPlaceholder, readOnly: !editable, style: editorStyle }))),\n React.createElement(\"input\", { tabIndex: -1, className: `${prefixCls}-range-start`, onChange: noop, onMouseDown: this.handleRangeStart, value: editable && rangeTarget === 0 && isFocused ? '' : startText, placeholder: editable && rangeTarget === 0 && isFocused ? '' : startPlaceholder, disabled: props.disabled === undefined ? false : props.disabled, style: startStyle, readOnly: true }),\n React.createElement(\"span\", { className: `${prefixCls}-range-split` }, (!isFlat || startPlaceholder || endPlaceholder || !this.isEmpty()) && '~'),\n React.createElement(\"input\", { tabIndex: -1, className: `${prefixCls}-range-end`, onChange: noop, onMouseDown: this.handleRangeEnd, value: editable && rangeTarget === 1 && isFocused ? '' : endText, placeholder: editable && rangeTarget === 1 && isFocused ? '' : endPlaceholder, disabled: props.disabled === undefined ? false : props.disabled, style: endStyle, readOnly: true })));\n }\n renderMultipleEditor(props) {\n const { style } = this.props;\n const { text } = this;\n const editorStyle = {};\n if (!this.editable) {\n editorStyle.position = 'absolute';\n editorStyle.left = 0;\n editorStyle.top = 0;\n editorStyle.zIndex = -1;\n props.readOnly = true;\n }\n else if (text) {\n editorStyle.width = pxToRem(measureTextWidth(text, style));\n }\n return (React.createElement(\"li\", { key: \"text\" },\n React.createElement(\"input\", Object.assign({}, props, { value: text || '', style: editorStyle }))));\n }\n getWrappedEditor(renderedValue) {\n return this.getEditor(defaultWrap, renderedValue);\n }\n getClassName(...props) {\n const { prefixCls, format } = this;\n return super.getClassName({\n [`${prefixCls}-${format}`]: [\n FieldFormat.uppercase,\n FieldFormat.lowercase,\n FieldFormat.capitalize,\n ].includes(format),\n }, ...props);\n }\n /**\n * 处理 flat 多选tooltip text\n */\n getMultipleText() {\n const values = this.getValues();\n const repeats = new Map();\n const texts = values.map((v) => {\n const key = this.getValueKey(v);\n const repeat = repeats.get(key) || 0;\n const text = this.processText(this.processValue(v));\n repeats.set(key, repeat + 1);\n if (!isNil(text)) {\n return text;\n }\n return undefined;\n });\n return texts.join('、');\n }\n getEditor(wrap, renderedValue) {\n const { prefixCls, multiple, range, props: { style, isFlat }, } = this;\n const { onFocus, onBlur, onMouseEnter, onMouseLeave, ...otherProps } = this.getOtherProps();\n if (multiple) {\n const { height } = (style || {});\n const { record } = this;\n const tags = (React.createElement(Animate, { component: \"ul\", componentProps: {\n ref: this.saveTagContainer,\n onScroll: stopPropagation,\n style: height && height !== 'auto' ? { height: pxToRem(toPx(height) - 2) } : undefined,\n }, transitionName: !record || record === this.lastAnimationRecord ? 'zoom' : '', exclusive: true, onEnd: this.handleTagAnimateEnd, onEnter: this.handleTagAnimateEnter },\n this.renderMultipleValues(),\n range\n ? this.renderRangeEditor(otherProps)\n : this.renderMultipleEditor({\n ...otherProps,\n className: `${prefixCls}-multiple-input`,\n })));\n this.lastAnimationRecord = record;\n return wrap(React.createElement(\"div\", { key: \"text\", className: otherProps.className, onFocus: onFocus, onBlur: onBlur, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, isFlat ? (React.createElement(Tooltip, { title: this.getMultipleText() }, tags)) : tags));\n }\n if (range) {\n return wrap(React.createElement(\"span\", { key: \"text\", className: otherProps.className, onFocus: onFocus, onBlur: onBlur, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, this.renderRangeEditor(otherProps)));\n }\n const editorTextInfo = this.getEditorTextInfo();\n if (renderedValue && (!this.editable || !this.isFocused)) {\n otherProps.style = {\n ...otherProps.style,\n textIndent: -1000,\n color: 'transparent',\n };\n }\n // 筛选条默认宽度处理\n if (isFlat) {\n otherProps.style = {\n ...otherProps.style,\n width: editorTextInfo.width + 4,\n boxSizing: 'content-box',\n };\n }\n const childNodes = [\n React.createElement(\"input\", Object.assign({ key: \"text\" }, otherProps, { onFocus: onFocus, onBlur: onBlur, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, placeholder: editorTextInfo.placeholder, value: editorTextInfo.text, readOnly: !this.editable })),\n ];\n if (this.showLengthInfo) {\n const inputLength = editorTextInfo.text.length;\n const maxLength = this.getProp('maxLength');\n const lengthElement = this.renderLengthInfo(maxLength, inputLength);\n // 存在长度信息,计算paddingRight\n if (lengthElement) {\n this.lengthInfoWidth = measureTextWidth(`${inputLength} / ${maxLength}`);\n const paddingRight = this.lengthInfoWidth + 21;\n otherProps.style = {\n ...otherProps.style,\n paddingRight,\n };\n }\n childNodes.push(lengthElement);\n }\n return wrap(React.createElement(React.Fragment, null, childNodes));\n }\n getSuffix() {\n const { suffix = this.getDefaultSuffix() } = this.props;\n if (suffix) {\n return this.wrapperSuffix(suffix);\n }\n }\n getDefaultSuffix() {\n return undefined;\n }\n wrapperSuffix(children, props) {\n const { prefixCls, clearButton } = this;\n if (isValidElement(children)) {\n const { type } = children;\n const { onClick, ...otherProps } = children.props;\n if (onClick) {\n children = createElement(type, otherProps);\n props = {\n onClick,\n ...props,\n };\n }\n }\n const classString = classNames(`${prefixCls}-suffix`, {\n [`${prefixCls}-allow-clear`]: clearButton && !props?.onClick,\n });\n return (React.createElement(\"div\", Object.assign({ className: classString, style: { right: this.lengthInfoWidth }, onMouseDown: preventDefault }, props), children));\n }\n getPrefix() {\n const { prefix } = this.props;\n if (prefix) {\n return this.wrapperPrefix(prefix);\n }\n }\n wrapperPrefix(children) {\n const { prefixCls } = this;\n return React.createElement(\"div\", { className: `${prefixCls}-prefix` }, children);\n }\n renderMultipleHolder() {\n const { name, multiple, props: { isFlat } } = this;\n let width = 'auto';\n if (isFlat) {\n const hasValue = !this.isEmpty();\n const placeholder = this.hasFloatLabel ? undefined : this.getPlaceholders()[0];\n width = hasValue ? 'auto' : measureTextWidth(placeholder || '') + 22;\n }\n if (multiple) {\n return (React.createElement(\"input\", { key: \"value\", className: `${this.prefixCls}-multiple-value`, value: this.toValueString(this.getValue()) || '', name: name, onChange: noop, style: { width: isFlat ? width : 'auto' } }));\n }\n }\n getOtherPrevNode() {\n return undefined;\n }\n getOtherNextNode() {\n return undefined;\n }\n renderPlaceHolder() {\n if ((this.multiple || !isPlaceHolderSupport()) && !this.hasFloatLabel && !this.range) {\n return this.getPlaceHolderNode();\n }\n }\n renderRenderedValue(value, props) {\n const { prefixCls, range, multiple } = this;\n const { rangeTarget } = props;\n const noRangeValue = rangeTarget === undefined;\n if ((!range && !multiple) || !noRangeValue) {\n const hidden = this.editable && this.isFocused;\n if (!hidden || isReactChildren(this.processValue(noRangeValue ? this.getValue() : value))) {\n const text = this.processRenderer(noRangeValue ? this.getValue() : value);\n if (isReactChildren(text)) {\n return (React.createElement(RenderedText, Object.assign({ key: \"renderedText\", prefixCls: prefixCls, onContentChange: this.handleRenderedValueChange, hidden: hidden }, props), toJS(text)));\n }\n }\n }\n this.clearRenderedText(rangeTarget);\n }\n getPlaceHolderNode() {\n const { prefixCls } = this;\n const [placeholder] = this.getPlaceholders();\n if (placeholder) {\n return React.createElement(\"div\", { className: `${prefixCls}-placeholder` }, placeholder);\n }\n }\n getInnerSpanButton() {\n const { clearButton, prefixCls, } = this;\n if (clearButton) {\n return this.wrapperInnerSpanButton(React.createElement(Icon, { type: \"close\", onClick: this.handleClearButtonClick, onMouseDown: this.handleInnerButtonMouseDown }), {\n className: `${prefixCls}-clear-button`,\n style: { right: this.lengthInfoWidth },\n });\n }\n }\n wrapperInnerSpanButton(children, props = {}) {\n const { prefixCls } = this;\n const { className, ...otherProps } = props;\n return (React.createElement(\"div\", Object.assign({ key: \"inner-button\" }, otherProps, { className: classNames(`${prefixCls}-inner-button`, className) }), children));\n }\n removeLastValue() {\n const values = this.getValues();\n const value = values.pop();\n this.setValue(values);\n this.afterRemoveValue(value, -1);\n }\n handleTagAnimateEnd() {\n }\n handleTagAnimateEnter() {\n const { tagContainer } = this;\n const { style } = this.props;\n if (tagContainer && style && style.height) {\n if (tagContainer.scrollTo) {\n tagContainer.scrollTo(0, tagContainer.getBoundingClientRect().height);\n }\n else {\n tagContainer.scrollTop = tagContainer.getBoundingClientRect().height;\n }\n }\n }\n handleRangeStart(event) {\n // 进行切换的时候默认不会收起 popup 因为点击start的时候也会触发 trigger 的 handleClick\n // 导致在设置了 isClickToHide 的情况下回收起\n // handleRangeEnd 同理\n if (this.rangeTarget === 1 && this.isFocused) {\n event.preventDefault();\n }\n this.setRangeTarget(0);\n }\n handleRangeEnd(event) {\n if (this.rangeTarget === 0 && this.isFocused) {\n event.preventDefault();\n }\n this.setRangeTarget(1);\n }\n handleKeyDown(e) {\n if (!this.disabled && !this.readOnly) {\n if (e.keyCode === KeyCode.TAB) {\n const { _inTable } = this.props;\n if (_inTable) {\n if (e.shiftKey) {\n const { addonBeforeRef } = this;\n if (addonBeforeRef) {\n const focusableElement = findFirstFocusableElement(addonBeforeRef);\n if (focusableElement) {\n focusableElement.focus();\n e.preventDefault();\n }\n }\n }\n else {\n const { addonAfterRef } = this;\n if (addonAfterRef) {\n const focusableElement = findFirstFocusableElement(addonAfterRef);\n if (focusableElement) {\n focusableElement.focus();\n e.preventDefault();\n }\n }\n }\n }\n const { range } = this;\n if (range) {\n if (e.shiftKey) {\n if (this.rangeTarget === 1) {\n this.setRangeTarget(0);\n e.preventDefault();\n }\n }\n else if (this.rangeTarget === 0) {\n this.setRangeTarget(1);\n e.preventDefault();\n }\n }\n }\n if (this.multiple) {\n if (!this.text) {\n switch (e.keyCode) {\n case KeyCode.DELETE:\n this.clear();\n break;\n case KeyCode.BACKSPACE:\n this.removeLastValue();\n break;\n default:\n }\n }\n }\n else {\n const { clearButton } = this.props;\n if (clearButton && !this.editable) {\n switch (e.keyCode) {\n case KeyCode.DELETE:\n case KeyCode.BACKSPACE:\n this.clear();\n break;\n default:\n }\n }\n }\n }\n else if (isIE()) {\n /**\n * 修复ie出现点击backSpace的页面回到上一页问题\n */\n if (e.keyCode === KeyCode.BACKSPACE) {\n e.preventDefault();\n }\n }\n super.handleKeyDown(e);\n }\n handleMouseDown(e) {\n if (e.target !== this.element) {\n if (!this.disabled) {\n e.preventDefault();\n }\n if (!this.isFocused) {\n this.focus();\n }\n }\n }\n handleClearButtonClick(e) {\n e.preventDefault();\n this.setRangeTarget(0);\n this.clear();\n }\n handleFocus(e) {\n super.handleFocus(e);\n defer(() => this.isFocused && this.select());\n }\n handleBlur(e) {\n if (!e.isDefaultPrevented()) {\n if (this.editable || this.isEditableLike()) {\n this.syncValueOnBlur(e.target.value);\n }\n else if (!this.getValues().length) {\n this.setValue(null);\n }\n }\n super.handleBlur(e);\n }\n handleInnerButtonMouseDown(e) {\n if (!this.isFocus) {\n e.stopPropagation();\n }\n }\n setValue(value) {\n super.setValue(value);\n this.setText(undefined);\n }\n getTextNode(value) {\n return this.text === undefined || this.isEditableLike() ? super.getTextNode(value) : this.text;\n }\n setText(text) {\n this.text = text;\n }\n select() {\n const { element } = this;\n if (element && this.editable) {\n element.select();\n }\n }\n getHandleChange(props) {\n const { wait, waitType } = props;\n if (wait && waitType) {\n const options = { leading: true, trailing: true };\n if (waitType === WaitType.throttle) {\n options.trailing = false;\n options.maxWait = wait;\n }\n else if (waitType === WaitType.debounce) {\n options.leading = false;\n }\n return debounce(this.prepareSetValue, wait, options);\n }\n return debounce(this.prepareSetValue, 0);\n }\n handleChange(e) {\n const { target, type, target: { value }, } = e;\n const { valueChangeAction } = this.props;\n if (type === 'compositionend') {\n this.lock = false;\n }\n if (!this.lock) {\n const restricted = this.restrictInput(value);\n if (restricted !== value) {\n const selectionEnd = target.selectionEnd + restricted.length - value.length;\n target.value = restricted;\n target.setSelectionRange(selectionEnd, selectionEnd);\n }\n this.setText(restricted);\n if (valueChangeAction === ValueChangeAction.input) {\n this.handleChangeWait(restricted);\n }\n }\n else {\n this.setText(value);\n if (valueChangeAction === ValueChangeAction.input) {\n this.handleChangeWait(value);\n }\n }\n }\n restrictInput(value) {\n const { restrict } = this.props;\n if (restrict) {\n const pattern = restrict instanceof RegExp ? restrict : new RegExp(`[^${restrict}]+`, 'g');\n return value.replace(pattern, '');\n }\n return value;\n }\n toValueString(value) {\n if (isArray(value)) {\n return value.join(',');\n }\n return value;\n }\n}\nTextField.displayName = 'TextField';\nTextField.propTypes = {\n /**\n * 占位词\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n /**\n * 最小长度\n */\n minLength: PropTypes.number,\n /**\n * 最大长度\n */\n maxLength: PropTypes.number,\n /**\n * 正则校验\n */\n pattern: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n /**\n * 自动完成\n */\n autoComplete: PropTypes.string,\n /**\n * 前缀\n */\n prefix: PropTypes.node,\n /**\n * 后缀\n */\n suffix: PropTypes.node,\n /**\n * 是否显示清除按钮\n */\n clearButton: PropTypes.bool,\n /**\n * 前置标签\n */\n addonBefore: PropTypes.node,\n /**\n * 前置标签样式\n */\n addonBeforeStyle: PropTypes.object,\n /**\n * 后置标签\n */\n addonAfter: PropTypes.node,\n /**\n * 后置标签样式\n */\n addonAfterStyle: PropTypes.object,\n /**\n * 限制可输入的字符\n */\n restrict: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n /**\n * 是否是筛选条 flat 模式\n */\n isFlat: PropTypes.bool,\n /**\n * 触发值变更的动作, default: blur\n */\n valueChangeAction: PropTypes.oneOf([ValueChangeAction.input, ValueChangeAction.blur]),\n /**\n * 值变更间隔时间,只有在valueChangeAction为input时起作用\n */\n wait: PropTypes.number,\n /**\n * 值变更间隔类型,可选值:throttle | debounce\n * @default throttle\n */\n waitType: PropTypes.oneOf([WaitType.throttle, WaitType.debounce]),\n groupClassName: PropTypes.string,\n showLengthInfo: PropTypes.bool,\n border: PropTypes.bool,\n ...FormField.propTypes,\n};\nTextField.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'input',\n clearButton: false,\n multiple: false,\n border: true,\n valueChangeAction: ValueChangeAction.blur,\n waitType: WaitType.debounce,\n};\n__decorate([\n observable\n], TextField.prototype, \"text\", void 0);\n__decorate([\n observable\n], TextField.prototype, \"renderedText\", void 0);\n__decorate([\n observable\n], TextField.prototype, \"renderedStartText\", void 0);\n__decorate([\n observable\n], TextField.prototype, \"renderedEndText\", void 0);\n__decorate([\n computed\n], TextField.prototype, \"showLengthInfo\", null);\n__decorate([\n autobind,\n action\n], TextField.prototype, \"handleRenderedValueChange\", null);\n__decorate([\n autobind\n], TextField.prototype, \"saveTagContainer\", null);\n__decorate([\n autobind\n], TextField.prototype, \"saveAddonAfterRef\", null);\n__decorate([\n autobind\n], TextField.prototype, \"saveAddonBeforeRef\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleAddonBeforeKeyDown\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleAddonAfterKeyDown\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleHelpMouseEnter\", null);\n__decorate([\n autobind\n], TextField.prototype, \"getEditor\", null);\n__decorate([\n action\n], TextField.prototype, \"removeLastValue\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleTagAnimateEnter\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleRangeStart\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleRangeEnd\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleKeyDown\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleMouseDown\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleClearButtonClick\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleFocus\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleBlur\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleInnerButtonMouseDown\", null);\n__decorate([\n action\n], TextField.prototype, \"setValue\", null);\n__decorate([\n action\n], TextField.prototype, \"setText\", null);\n__decorate([\n autobind\n], TextField.prototype, \"handleChange\", null);\nlet ObserverTextField = class ObserverTextField extends TextField {\n};\nObserverTextField.defaultProps = TextField.defaultProps;\nObserverTextField = __decorate([\n observer\n], ObserverTextField);\nexport default ObserverTextField;\n","import React, { useEffect, useRef } from 'react';\nconst TextFieldGroup = ({ prefixCls, onBlur, children, ...otherProps }) => {\n const ref = useRef(null);\n useEffect(() => {\n const { current } = ref;\n if (current && onBlur) {\n const handleMousedown = (e) => {\n const { target } = e;\n if (!e.defaultPrevented && !current.contains(target)) {\n onBlur(e);\n }\n };\n document.addEventListener('mousedown', handleMousedown, false);\n return () => {\n document.removeEventListener('mousedown', handleMousedown, false);\n };\n }\n }, [onBlur, ref]);\n return (React.createElement(\"div\", Object.assign({ ref: ref, className: `${prefixCls}-group-wrapper` }, otherProps), children));\n};\nTextFieldGroup.displayName = 'TextFieldGroup';\nexport default TextFieldGroup;\n","export var GroupItemCategory;\n(function (GroupItemCategory) {\n GroupItemCategory[\"before\"] = \"before\";\n GroupItemCategory[\"after\"] = \"after\";\n GroupItemCategory[\"help\"] = \"help\";\n GroupItemCategory[\"input\"] = \"input\";\n})(GroupItemCategory || (GroupItemCategory = {}));\nexport var ValueChangeAction;\n(function (ValueChangeAction) {\n ValueChangeAction[\"blur\"] = \"blur\";\n ValueChangeAction[\"input\"] = \"input\";\n})(ValueChangeAction || (ValueChangeAction = {}));\n","import ObserverTextField from './TextField';\nexport default ObserverTextField;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../field/style';\n","import DatePicker from '../date-picker/DatePicker';\nimport { ViewMode } from '../date-picker/enum';\nexport default class TimePicker extends DatePicker {\n getWrapperClassNames() {\n const { prefixCls } = this;\n return super.getWrapperClassNames(`${prefixCls}-time-picker-wrapper`);\n }\n getLimitWithType(limit, _minOrMax) {\n return limit;\n }\n}\nTimePicker.displayName = 'TimePicker';\nTimePicker.defaultProps = {\n ...DatePicker.defaultProps,\n mode: ViewMode.time,\n};\n","import TimePicker from './TimePicker';\nexport default TimePicker;\n","// style dependencies\nimport '../../date-picker/style';\n","import { __decorate } from \"tslib\";\nimport React, { Children, Component, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport isNil from 'lodash/isNil';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { TooltipPlacement, TooltipTheme } from 'choerodon-ui/lib/tooltip';\nimport Trigger from 'choerodon-ui/lib/trigger/Trigger';\nimport { Action } from 'choerodon-ui/lib/trigger/enum';\nimport getPlacements from './placements';\nimport autobind from '../_util/autobind';\nexport { TooltipPlacement, TooltipTheme };\nconst splitObject = (obj, keys) => {\n const picked = {};\n const ommitted = { ...obj };\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete ommitted[key];\n }\n });\n return { picked, ommitted };\n};\n/**\n * Fix the tooltip won't hide when child element is button\n * @param element ReactElement\n */\nfunction getDisabledCompatableChildren(element) {\n const elementType = element.type;\n const { props } = element;\n if (elementType === 'button' && props.disabled) {\n const { style, block, className } = props;\n const { picked, ommitted } = splitObject(style, [\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'float',\n 'display',\n 'zIndex',\n ]);\n const spanStyle = {\n display: 'inline-block',\n ...picked,\n cursor: 'not-allowed',\n width: block ? '100%' : null,\n };\n const buttonStyle = {\n ...ommitted,\n pointerEvents: 'none',\n };\n const child = React.cloneElement(element, {\n style: buttonStyle,\n className: null,\n });\n return (React.createElement(\"span\", { style: spanStyle, className: className }, child));\n }\n return element;\n}\nconst PopupContent = (props) => {\n const { content, prefixCls, theme, translate: { x, y } } = props;\n const arrowCls = `${prefixCls}-popup-arrow`;\n const contentCls = `${prefixCls}-popup-inner`;\n const arrowStyle = x || y ? { marginLeft: -x, marginTop: -y } : undefined;\n return (React.createElement(\"div\", null,\n React.createElement(\"div\", { className: `${arrowCls} ${arrowCls}-${theme}`, style: arrowStyle }),\n React.createElement(\"div\", { className: `${contentCls} ${contentCls}-${theme}` }, content)));\n};\nexport default class Tooltip extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n translate: { x: 0, y: 0 },\n };\n }\n get prefixCls() {\n const { suffixCls, prefixCls } = this.props;\n return getProPrefixCls(suffixCls, prefixCls);\n }\n get placements() {\n const { builtinPlacements, arrowPointAtCenter, autoAdjustOverflow } = this.props;\n return (builtinPlacements ||\n getPlacements({\n arrowPointAtCenter,\n verticalArrowShift: 8,\n autoAdjustOverflow,\n }));\n }\n getContent(...props) {\n const { title, overlay } = this.props;\n if (typeof overlay === 'function') {\n return overlay(...props);\n }\n if (overlay) {\n return overlay;\n }\n if (typeof title === 'function') {\n return title(...props);\n }\n return title;\n }\n handlePopupAlign(_source, _align, _target, translate) {\n const { translate: { x, y } } = this.state;\n if (x !== translate.x || y !== translate.y) {\n this.setState({\n translate,\n });\n }\n }\n renderPopupContent(...props) {\n const { translate } = this.state;\n const { theme = getTooltipTheme() } = this.props;\n const content = this.getContent(...props);\n if (content) {\n return (React.createElement(PopupContent, { content: content, theme: theme, prefixCls: this.prefixCls, translate: translate }));\n }\n }\n render() {\n const { prefixCls, props: { children, placement, onHiddenChange, onHiddenBeforeChange, trigger, defaultHidden, hidden, getRootDomNode, ...restProps }, } = this;\n // 修复特殊情况为0,以及 undefined 出现的报错情况\n const child = Children.count(children) ? Children.map(children, node => (!isNil(node) && (isValidElement(node) ? getDisabledCompatableChildren(node) : React.createElement(\"span\", { key: `text-${node}` }, node)))) : null;\n const hasHiddenProp = 'hidden' in this.props;\n if (hasHiddenProp) {\n restProps.popupHidden = hidden;\n }\n delete restProps.theme;\n return !isNil(child) || (getRootDomNode && hasHiddenProp) ? (React.createElement(Trigger, Object.assign({ prefixCls: prefixCls, action: trigger, builtinPlacements: this.placements, popupPlacement: placement, popupContent: this.renderPopupContent, onPopupHiddenBeforeChange: onHiddenBeforeChange, onPopupHiddenChange: onHiddenChange, onPopupAlign: this.handlePopupAlign, defaultPopupHidden: defaultHidden, getRootDomNode: getRootDomNode }, restProps), child)) : child;\n }\n}\nTooltip.displayName = 'Tooltip';\nTooltip.propTypes = {\n title: PropTypes.any,\n arrowPointAtCenter: PropTypes.bool,\n autoAdjustOverflow: PropTypes.bool,\n defaultHidden: PropTypes.bool,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n placement: PropTypes.oneOf([\n 'top',\n 'topLeft',\n 'topRight',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'left',\n 'leftTop',\n 'leftBottom',\n 'right',\n 'rightTop',\n 'rightBottom',\n ]),\n trigger: PropTypes.arrayOf(PropTypes.oneOf([Action.click, Action.hover, Action.contextMenu, Action.focus])),\n hidden: PropTypes.bool,\n onHiddenChange: PropTypes.func,\n suffixCls: PropTypes.string,\n transitionName: PropTypes.string,\n theme: PropTypes.oneOf(['light', 'dark']),\n};\nTooltip.defaultProps = {\n suffixCls: 'tooltip',\n placement: 'top',\n transitionName: 'zoom-big-fast',\n mouseEnterDelay: 100,\n mouseLeaveDelay: 100,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true,\n defaultHidden: true,\n trigger: [Action.hover],\n};\n__decorate([\n autobind\n], Tooltip.prototype, \"handlePopupAlign\", null);\n__decorate([\n autobind\n], Tooltip.prototype, \"renderPopupContent\", null);\n","import Tooltip from './Tooltip';\nimport { hide, show } from './singleton';\nTooltip.show = show;\nTooltip.hide = hide;\nexport default Tooltip;\n","import rcPlacements from 'choerodon-ui/lib/rc-components/tooltip/placements';\nimport getPlacements, { AdjustOverflow, getOverflowOptions, PlacementsConfig } from 'choerodon-ui/lib/tooltip/placements';\nexport { rcPlacements, AdjustOverflow, PlacementsConfig, getOverflowOptions, getPlacements as default, };\n","import React, { createRef, forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react';\nimport { render } from 'react-dom';\nimport { getTooltipTheme } from 'choerodon-ui/lib/_util/TooltipUtils';\nimport { getProPrefixCls } from 'choerodon-ui/lib/configure';\nimport { getGlobalPopupContainer } from 'choerodon-ui/lib/trigger/Popup';\nimport Tooltip from './Tooltip';\nimport TaskRunner from '../_util/TaskRunner';\nexport const suffixCls = 'singleton-tooltip';\nconst manager = {};\nconst TooltipContainer = forwardRef((_, ref) => {\n const task = useMemo(() => new TaskRunner(), []);\n const [tooltipProps, setTooltipProps] = useState();\n const open = useCallback((target, args, duration = 100) => {\n task.cancel();\n task.delay(duration, () => {\n setTooltipProps({\n theme: getTooltipTheme(),\n ...args,\n hidden: false,\n getRootDomNode: () => target,\n });\n });\n return task;\n }, [task]);\n const close = useCallback((duration = 100) => {\n task.cancel();\n task.delay(duration, () => {\n setTooltipProps((preState) => ({\n ...preState,\n hidden: true,\n }));\n });\n return task;\n }, [task]);\n const handlePopupMouseEnter = useCallback(() => {\n task.cancel();\n }, [task]);\n const handlePopupMouseLeave = useCallback(() => {\n close();\n }, [close]);\n useImperativeHandle(ref, () => ({\n open,\n close,\n }), [open, close]);\n return (React.createElement(Tooltip, Object.assign({}, tooltipProps, { onPopupMouseEnter: handlePopupMouseEnter, onPopupMouseLeave: handlePopupMouseLeave })));\n});\nfunction getRoot() {\n let { root } = manager;\n if (typeof window !== 'undefined') {\n const popupContainer = getGlobalPopupContainer();\n const doc = window.document;\n if (root) {\n if (!root.parentNode) {\n popupContainer.appendChild(root);\n }\n }\n else {\n root = doc.createElement('div');\n root.className = `${getProPrefixCls(suffixCls)}-container`;\n popupContainer.appendChild(root);\n manager.root = root;\n }\n }\n return root;\n}\nasync function getContainer() {\n const { container } = manager;\n if (container) {\n return container;\n }\n return new Promise(resolve => {\n const root = getRoot();\n if (root) {\n const ref = createRef();\n manager.container = ref;\n render(React.createElement(TooltipContainer, { ref: ref }), root, () => resolve(ref));\n }\n });\n}\nexport async function show(target, props, duration) {\n const container = await getContainer();\n const { current } = container;\n if (current) {\n return current.open(target, props, duration);\n }\n}\nexport async function hide(duration) {\n const container = await getContainer();\n const { current } = container;\n if (current) {\n return current.close(duration);\n }\n}\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\n// style dependencies\nimport 'choerodon-ui/lib/trigger/style';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { action, observable, runInAction } from 'mobx';\nimport { Select } from '../select/Select';\nimport Option from '../option/Option';\nimport OptGroup from '../option/OptGroup';\nimport TransferList from './TransferList';\nimport TransferOperation from './TransferOperation';\nimport autobind from '../_util/autobind';\nimport isSameLike from '../_util/isSameLike';\nlet Transfer = class Transfer extends Select {\n constructor(props, context) {\n super(props, context);\n runInAction(() => {\n this.sourceSelected = [];\n this.targetSelected = [];\n });\n }\n sourceFilter(record, index, array) {\n const { valueField, props: { optionsFilter }, } = this;\n if (optionsFilter && !optionsFilter(record, index, array)) {\n return false;\n }\n const values = this.getValues();\n if (values.length) {\n return values.every(v => !isSameLike(record.get(valueField), v));\n }\n return true;\n }\n targetFilter(record, index, array) {\n const { valueField, props: { optionsFilter }, } = this;\n if (optionsFilter && !optionsFilter(record, index, array)) {\n return false;\n }\n const values = this.getValues();\n if (values.length) {\n return values.some(v => isSameLike(record.get(valueField), v));\n }\n return false;\n }\n handleMenuClick({ item: { props: { value }, }, }) {\n if (this.multiple) {\n this.selectRecord(value, this.sourceSelected);\n }\n else {\n this.prepareSetValue(this.processRecordToObject(value));\n }\n }\n handleTargetMenuClick({ item: { props: { value }, }, }) {\n if (this.multiple) {\n this.selectRecord(value, this.targetSelected);\n }\n else {\n this.removeValue(value);\n }\n }\n handleMoveToLeft() {\n const { valueField } = this;\n this.removeValues(this.targetSelected.map(record => record.get(valueField)));\n this.targetSelected = [];\n }\n handleMoveToRight() {\n const { valueField } = this;\n this.prepareSetValue(...this.sourceSelected.map(record => record.get(valueField)));\n this.sourceSelected = [];\n }\n handleSourceSelectAllChange(selected) {\n this.sourceSelected = selected;\n }\n handleTargetSelectAllChange(selected) {\n this.targetSelected = selected;\n }\n selectRecord(value, selected) {\n const index = selected.indexOf(value);\n if (index !== -1) {\n selected.splice(index, 1);\n }\n else {\n selected.push(value);\n }\n }\n renderWrapper() {\n const { disabled, prefixCls, targetSelected, sourceSelected, multiple, props: { titles = [] }, } = this;\n return (React.createElement(\"span\", { key: \"wrapper\", className: `${prefixCls}-wrapper` },\n React.createElement(TransferList, Object.assign({}, this.props, { options: this.options, selected: sourceSelected, header: titles[0], onSelectAll: this.handleSourceSelectAllChange, onSelect: this.handleMenuClick, optionsFilter: this.sourceFilter })),\n React.createElement(TransferOperation, { className: `${prefixCls}-operation`, leftActive: !(!targetSelected.length || disabled), rightActive: !(!sourceSelected.length || disabled), moveToLeft: this.handleMoveToLeft, moveToRight: this.handleMoveToRight, multiple: multiple }),\n React.createElement(TransferList, Object.assign({}, this.props, { options: this.options, selected: targetSelected, header: titles[1], onSelectAll: this.handleTargetSelectAllChange, onSelect: this.handleTargetMenuClick, optionsFilter: this.targetFilter }))));\n }\n};\nTransfer.displayName = 'Transfer';\nTransfer.propTypes = {\n ...Select.propTypes,\n titles: PropTypes.arrayOf(PropTypes.node),\n};\nTransfer.defaultProps = {\n ...Select.defaultProps,\n suffixCls: 'transfer',\n multiple: true,\n};\nTransfer.Option = Option;\nTransfer.OptGroup = OptGroup;\n__decorate([\n observable\n], Transfer.prototype, \"sourceSelected\", void 0);\n__decorate([\n observable\n], Transfer.prototype, \"targetSelected\", void 0);\n__decorate([\n autobind\n], Transfer.prototype, \"sourceFilter\", null);\n__decorate([\n autobind\n], Transfer.prototype, \"targetFilter\", null);\n__decorate([\n autobind\n], Transfer.prototype, \"handleMenuClick\", null);\n__decorate([\n autobind\n], Transfer.prototype, \"handleTargetMenuClick\", null);\n__decorate([\n autobind,\n action\n], Transfer.prototype, \"handleMoveToLeft\", null);\n__decorate([\n autobind,\n action\n], Transfer.prototype, \"handleMoveToRight\", null);\n__decorate([\n autobind,\n action\n], Transfer.prototype, \"handleSourceSelectAllChange\", null);\n__decorate([\n autobind,\n action\n], Transfer.prototype, \"handleTargetSelectAllChange\", null);\n__decorate([\n action\n], Transfer.prototype, \"selectRecord\", null);\nTransfer = __decorate([\n observer\n], Transfer);\nexport default Transfer;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport ObserverCheckBox from '../check-box/CheckBox';\nimport { $l } from '../locale-context';\nimport ObserverTextField from '../text-field/TextField';\nimport Icon from '../icon';\nimport { getItemKey, Select } from '../select/Select';\nimport autobind from '../_util/autobind';\nimport { stopPropagation } from '../_util/EventManager';\nimport ViewComponent from '../core/ViewComponent';\nlet TransferList = class TransferList extends Select {\n get popup() {\n return true;\n }\n get header() {\n const { prefixCls, multiple, observableProps: { header }, } = this;\n if (multiple || header) {\n return (React.createElement(\"div\", { className: `${prefixCls}-header` },\n this.getHeaderSelected(),\n header && React.createElement(\"span\", { className: `${prefixCls}-header-title` }, header)));\n }\n return undefined;\n }\n get footer() {\n const { prefixCls, filteredOptions, observableProps: { footer }, } = this;\n if (footer) {\n return React.createElement(\"div\", { className: `${prefixCls}-footer` }, footer(filteredOptions));\n }\n return undefined;\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'autoComplete',\n 'footer',\n 'header',\n 'selected',\n 'onSelect',\n 'onSelectAll',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n delete otherProps.ref;\n delete otherProps.type;\n delete otherProps.onChange;\n delete otherProps.onKeyDown;\n return otherProps;\n }\n getObservableProps(props, context) {\n return {\n ...super.getObservableProps(props, context),\n header: props.header,\n footer: props.footer,\n };\n }\n getMenuPrefixCls() {\n return `${this.prefixCls}-content`;\n }\n handleSelectAllChange(value) {\n const { onSelectAll } = this.props;\n if (onSelectAll) {\n onSelectAll(value ? this.filteredOptions : []);\n }\n }\n handleClear() {\n this.setText(undefined);\n }\n getHeaderSelected() {\n const { filteredOptions: { length }, multiple, prefixCls, props: { selected: { length: selectedLength }, }, } = this;\n const selectedText = selectedLength ? `${selectedLength}/` : '';\n if (multiple) {\n return (React.createElement(ObserverCheckBox, { disabled: this.disabled, onChange: this.handleSelectAllChange, onFocus: stopPropagation, checked: !!length && length === selectedLength, indeterminate: !!selectedLength && length !== selectedLength },\n React.createElement(\"span\", { className: `${prefixCls}-header-selected` }, `${selectedText}${length}${$l('Transfer', 'items')}`)));\n }\n }\n getSearchField() {\n const { prefixCls } = this;\n return (React.createElement(\"div\", { className: `${prefixCls}-body-search-wrapper` },\n React.createElement(ObserverTextField, { ref: this.elementReference, onInput: this.handleChange, onClear: this.handleClear, onKeyDown: this.handleKeyDown, prefix: React.createElement(Icon, { type: \"search\" }), clearButton: true })));\n }\n renderBody() {\n const { prefixCls, searchable, textField, valueField, props: { selected, onSelect }, } = this;\n const searchField = searchable && this.getSearchField();\n const classString = classNames(`${prefixCls}-body`, {\n [`${prefixCls}-body-with-search`]: searchable,\n });\n const selectedKeys = selected.map(record => getItemKey(record, record.get(textField), record.get(valueField)));\n return (React.createElement(\"div\", { className: classString },\n searchField,\n React.createElement(\"div\", { className: `${prefixCls}-content-wrapper`, onFocus: searchable ? stopPropagation : undefined }, this.getMenu({ selectedKeys, onClick: onSelect, focusable: !this.searchable }))));\n }\n getClassName() {\n const { prefixCls, header, footer } = this;\n return super.getClassName({\n [`${prefixCls}-with-header`]: header,\n [`${prefixCls}-with-footer`]: footer,\n });\n }\n removeLastValue() {\n }\n handleBlur(e) {\n ViewComponent.prototype.handleBlur.call(this, e);\n }\n render() {\n const { header, footer } = this;\n return (React.createElement(\"div\", Object.assign({}, this.getOtherProps()),\n header,\n this.renderBody(),\n footer));\n }\n};\n__decorate([\n computed\n], TransferList.prototype, \"header\", null);\n__decorate([\n computed\n], TransferList.prototype, \"footer\", null);\n__decorate([\n autobind\n], TransferList.prototype, \"handleSelectAllChange\", null);\n__decorate([\n autobind\n], TransferList.prototype, \"handleClear\", null);\n__decorate([\n autobind\n], TransferList.prototype, \"handleBlur\", null);\nTransferList = __decorate([\n observer\n], TransferList);\nexport default TransferList;\n","import React from 'react';\nimport noop from 'lodash/noop';\nimport Button from '../button';\nimport { Size } from '../core/enum';\nimport { ButtonColor } from '../button/enum';\nexport default function TransferOperation(props) {\n const { moveToLeft = noop, moveToRight = noop, leftActive, rightActive, className, multiple, } = props;\n if (multiple) {\n return (React.createElement(\"div\", { className: className },\n React.createElement(Button, { color: ButtonColor.primary, size: Size.small, disabled: !leftActive, onClick: moveToLeft, icon: \"navigate_before\" }),\n React.createElement(Button, { color: ButtonColor.primary, size: Size.small, disabled: !rightActive, onClick: moveToRight, icon: \"navigate_next\" })));\n }\n return null;\n}\n","import Transfer from './Transfer';\nexport default Transfer;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport 'choerodon-ui/lib/menu/style';\nimport 'choerodon-ui/lib/checkbox/style';\nimport '../../check-box/style';\nimport '../../text-field/style';\nimport '../../button/style';\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\n/* eslint-disable react/prefer-stateless-function,react/no-unused-prop-types */\nexport default class TreeNode extends Component {\n}\nTreeNode.propTypes = {\n /**\n * 选项值\n */\n value: PropTypes.any,\n /**\n * 显示值\n */\n title: PropTypes.any,\n};\nTreeNode.__PRO_TREE_SELECT_NODE = true;\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { action, computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Tree from 'choerodon-ui/lib/tree';\nimport TreeNode from './TreeNode';\nimport { DISABLED_FIELD, isSearchTextEmpty, MORE_KEY, Select } from '../select/Select';\nimport normalizeTreeNodes from './normalizeTreeNodes';\nimport autobind from '../_util/autobind';\nimport isIE from '../_util/isIE';\nimport { defaultRenderer } from '../tree';\nimport { getTreeNodes } from '../tree/util';\nimport { preventDefault } from '../_util/EventManager';\nimport { CheckedStrategy } from '../data-set/enum';\nlet TreeSelect = class TreeSelect extends Select {\n get parentField() {\n return this.getProp('parentField') || 'parentValue';\n }\n get idField() {\n return this.getProp('idField') || this.valueField;\n }\n get options() {\n const { field, textField, valueField, idField, parentField, multiple, observableProps: { children, options }, } = this;\n return (options ||\n (field && field.options) ||\n normalizeTreeNodes({\n textField,\n valueField,\n disabledField: DISABLED_FIELD,\n parentField,\n idField,\n multiple,\n children,\n }));\n }\n get treeData() {\n return this.optionsWithCombo.filter(r => !r.parent);\n }\n get selectedKeys() {\n const { idField } = this;\n return this.options.reduce((array, r) => this.isSelected(r) ? array.concat(String(r.get(idField))) : array, []);\n }\n handleSearch(text) {\n if (!isSearchTextEmpty(text)) {\n const { options } = this;\n const { idField } = options.props;\n this.expandedKeys = options.map((r) => String(r.get(idField)));\n }\n }\n handleExpand(keys) {\n this.expandedKeys = keys;\n }\n get multiple() {\n return !!this.getProp('multiple') || !!this.props.treeCheckable;\n }\n handleTreeSelect(_e, { node }) {\n const { record, disabled, key } = node;\n if (key === MORE_KEY) {\n const { options } = this;\n options.queryMore(options.currentPage + 1);\n }\n else if (!disabled) {\n const { multiple } = this;\n if (multiple) {\n if (this.isSelected(record)) {\n this.unChoose(record);\n }\n else {\n this.choose(record);\n }\n }\n else {\n this.choose(record);\n }\n }\n }\n handleTreeCheck(_e, { node }) {\n const { record, disabled, key } = node;\n const { valueField } = this;\n if (key === MORE_KEY) {\n const { options } = this;\n options.queryMore(options.currentPage + 1);\n }\n else if (!disabled) {\n const { multiple } = this;\n if (multiple) {\n const records = record.treeReduce((array, r) => this.isSelected(r) ? array : array.concat(r), []);\n const parents = [];\n record.parents.every((parent, index) => {\n const { children } = parent;\n if (children && children.every(child => {\n return (index === 0 ? records.includes(child) : parents.includes(child)) || this.isSelected(child);\n })) {\n parents.push(parent);\n return true;\n }\n return false;\n });\n const showCheckedStrategy = this.getProp('showCheckedStrategy');\n if (showCheckedStrategy === CheckedStrategy.SHOW_ALL) {\n if (this.isSelected(record)) {\n const unChooseRecords = record.treeReduce((array, r) => this.isSelected(r) ? array.concat(r) : array, []);\n const unChooseParents = record.parents.filter(parent => this.isSelected(parent));\n this.unChoose(unChooseRecords.concat(unChooseParents));\n }\n else {\n this.choose(records.concat(parents));\n }\n }\n else if (showCheckedStrategy === CheckedStrategy.SHOW_PARENT) {\n if (this.isSelected(record) || record.parents.some(parent => this.isSelected(parent))) {\n const selectedRecords = this.options.filter(option => {\n if (key === option.get(valueField) || (option.children && option.children.includes(record))) {\n return false;\n }\n return !!((option.parent && option.children && record.parent && (option.parents.some(parent => this.isSelected(parent)) || this.isSelected(option)))\n ||\n (!option.children && option.parent.children.includes(record) && option.parents.some(parent => this.isSelected(parent)))\n ||\n (!option.children && option.parents.every(parent => !this.isSelected(parent)) && this.isSelected(option)));\n });\n this.setValue(selectedRecords.map(this.processRecordToObject, this));\n }\n else {\n const preSelected = this.options.filter(option => this.isSelected(option)).concat(record, parents);\n const selectedRecords = preSelected.filter((child) => {\n return !(child.parent && preSelected.includes(child.parent));\n });\n this.setValue(selectedRecords.map(this.processRecordToObject, this));\n }\n }\n else if (showCheckedStrategy === 'SHOW_CHILD') {\n if (!record.parent) {\n if (this.options.every(option => (!option.children && this.isSelected(option)) || !!option.children)) {\n this.unChooseAll();\n }\n else {\n this.choose(records.filter(childRecord => !childRecord.children));\n }\n }\n if (this.isSelected(record) && !record.children) {\n this.unChoose(record);\n }\n else if (!this.isSelected(record) && record.children && record.parent) {\n if (record.children.every(child => this.isSelected(child))) {\n this.unChoose(record.children);\n }\n else {\n this.choose(records.filter(chooseRecord => !chooseRecord.children));\n }\n }\n else {\n this.choose(records.filter(chooseRecord => !chooseRecord.children));\n }\n }\n }\n else {\n this.choose(record);\n }\n }\n }\n handleTreeNode(e) {\n const { onOption } = this.props;\n const props = onOption(e) || {};\n props.className = classNames(props.className, `${this.getMenuPrefixCls()}-item`);\n return props;\n }\n handleLoadData(event) {\n const { loadData } = this.props;\n const dataSet = this.options;\n const promises = [];\n if (dataSet) {\n const { record } = event.props;\n promises.push(dataSet.queryMoreChild(record));\n }\n if (loadData) {\n promises.push(loadData(event));\n }\n return Promise.all(promises);\n }\n renderSelectAll() {\n }\n getMenu(menuProps = {}) {\n const { options, } = this;\n const menuPrefixCls = this.getMenuPrefixCls();\n const { disabled: menuDisabled, textField, selectedKeys, expandedKeys, multiple, text, props: { dropdownMenuStyle, optionRenderer = defaultRenderer, optionsFilter, treeDefaultExpandAll, treeDefaultExpandedKeys, treeCheckable, async, loadData, }, } = this;\n /**\n * fixed when ie the scroll width would cover the item width\n */\n const IeMenuStyle = !this.dropdownMatchSelectWidth && isIE() ? { padding: '.08rem' } : {};\n const treeData = getTreeNodes(options, this.treeData, optionRenderer, \n // @ts-ignore\n this.handleTreeNode, async || !!loadData, textField, optionsFilter, this.matchRecordBySearch, text);\n if (!treeData || !treeData.length) {\n return (React.createElement(\"div\", { className: menuPrefixCls },\n React.createElement(\"div\", { className: `${menuPrefixCls}-item ${menuPrefixCls}-item-disabled` }, this.loading ? ' ' : this.getNotFoundContent())));\n }\n if (options.paging && options.currentPage < options.totalPage) {\n treeData.push({\n key: MORE_KEY,\n eventKey: MORE_KEY,\n title: this.getPagingOptionContent(),\n className: `${menuPrefixCls}-item ${menuPrefixCls}-item-more`,\n isLeaf: true,\n });\n }\n const props = {};\n if (expandedKeys) {\n props.expandedKeys = expandedKeys.slice();\n }\n return (React.createElement(Tree, Object.assign({ ref: this.saveMenu, ripple: true, disabled: menuDisabled, onMouseDown: preventDefault, onSelect: treeCheckable ? this.handleTreeCheck : this.handleTreeSelect, onCheck: this.handleTreeCheck, onExpand: this.handleExpand, style: { ...IeMenuStyle, ...dropdownMenuStyle }, selectable: true, focusable: false, treeData: treeData, defaultExpandAll: treeDefaultExpandAll, defaultExpandedKeys: treeDefaultExpandedKeys, selectedKeys: selectedKeys, checkedKeys: selectedKeys, checkable: treeCheckable, className: menuPrefixCls, multiple: multiple, loadData: async ? this.handleLoadData : loadData }, props, menuProps)));\n }\n};\nTreeSelect.displayName = 'TreeSelect';\nTreeSelect.propTypes = {\n treeCheckable: PropTypes.bool,\n showCheckedStrategy: PropTypes.string,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n ...Select.propTypes,\n};\nTreeSelect.defaultProps = {\n ...Select.defaultProps,\n suffixCls: 'tree-select',\n dropdownMatchSelectWidth: false,\n showCheckedStrategy: 'SHOW_ALL',\n reverse: false,\n};\nTreeSelect.TreeNode = TreeNode;\n__decorate([\n observable\n], TreeSelect.prototype, \"expandedKeys\", void 0);\n__decorate([\n computed\n], TreeSelect.prototype, \"parentField\", null);\n__decorate([\n computed\n], TreeSelect.prototype, \"idField\", null);\n__decorate([\n computed\n], TreeSelect.prototype, \"options\", null);\n__decorate([\n computed\n], TreeSelect.prototype, \"treeData\", null);\n__decorate([\n computed\n], TreeSelect.prototype, \"selectedKeys\", null);\n__decorate([\n action\n], TreeSelect.prototype, \"handleSearch\", null);\n__decorate([\n autobind,\n action\n], TreeSelect.prototype, \"handleExpand\", null);\n__decorate([\n computed\n], TreeSelect.prototype, \"multiple\", null);\n__decorate([\n autobind\n], TreeSelect.prototype, \"handleTreeSelect\", null);\n__decorate([\n autobind\n], TreeSelect.prototype, \"handleTreeCheck\", null);\n__decorate([\n autobind\n], TreeSelect.prototype, \"handleTreeNode\", null);\n__decorate([\n autobind\n], TreeSelect.prototype, \"handleLoadData\", null);\n__decorate([\n autobind\n], TreeSelect.prototype, \"getMenu\", null);\nTreeSelect = __decorate([\n observer\n], TreeSelect);\nexport default TreeSelect;\n","import ThreeSelect from './TreeSelect';\nexport default ThreeSelect;\n","import { Children, isValidElement } from 'react';\nimport DataSet from '../data-set/DataSet';\nimport { DataSetSelection, FieldType } from '../data-set/enum';\nfunction getOptionsFromChildren(elements, data, fields, textField, valueField, parentField, idField, disabledField, parent) {\n if (elements) {\n Children.forEach(elements, child => {\n if (isValidElement(child)) {\n const { type } = child;\n if (type.__PRO_TREE_SELECT_NODE) {\n const props = child.props;\n const { value, title, children, disabled, ...__treeNodeProps } = props;\n data.push({\n [textField]: title,\n [valueField]: value,\n [disabledField]: disabled,\n [parentField]: parent,\n __treeNodeProps,\n });\n if (idField !== valueField) {\n data[idField] = props[idField] || value;\n }\n getOptionsFromChildren(children, data, fields, textField, valueField, parentField, idField, disabledField, props[idField] || value);\n }\n }\n });\n }\n}\nexport default function normalizeTreeNodes({ textField, valueField, disabledField, parentField, idField, multiple, children, }) {\n const data = [];\n const fields = [\n {\n name: textField,\n type: FieldType.reactNode,\n },\n {\n name: valueField,\n },\n {\n name: disabledField,\n type: FieldType.boolean,\n },\n ];\n if (children) {\n getOptionsFromChildren(children, data, fields, textField, valueField, parentField, idField, disabledField);\n }\n return new DataSet({\n data,\n fields,\n paging: false,\n selection: multiple ? DataSetSelection.multiple : DataSetSelection.single,\n autoLocateFirst: false,\n parentField,\n idField,\n });\n}\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../select/style';\nimport '../../ripple/style';\nimport 'choerodon-ui/lib/tree/style';\n","import { __decorate } from \"tslib\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { action, computed, observable, runInAction } from 'mobx';\nimport noop from 'lodash/noop';\nimport xor from 'lodash/xor';\nimport C7NTree, { TreeNode, } from 'choerodon-ui/lib/tree';\nimport autobind from '../_util/autobind';\nimport { getKey, getTreeNodes } from './util';\nimport { BooleanValue, DataSetSelection } from '../data-set/enum';\nimport Spin from '../spin';\nexport function defaultRenderer({ text }) {\n return text;\n}\nfunction defaultNodeCover() {\n return {};\n}\nconst keyPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\nlet Tree = class Tree extends Component {\n constructor(props, context) {\n super(props, context);\n runInAction(() => {\n this.stateCheckedKeys = [];\n this.stateExpandedKeys = [];\n this.stateLoadedKeys = [];\n });\n }\n componentWillMount() {\n this.handleDataSetLoad();\n this.processDataSetListener(true);\n }\n componentWillReceiveProps(nextProps) {\n const { defaultExpandAll, defaultSelectedKeys, defaultExpandedKeys, defaultCheckedKeys } = this.props;\n if (defaultExpandAll !== nextProps.defaultExpandAll ||\n defaultExpandedKeys !== nextProps.defaultExpandedKeys ||\n defaultCheckedKeys !== nextProps.defaultCheckKeys ||\n defaultSelectedKeys !== nextProps.defaultSelectedKeys) {\n this.processDataSetListener(false);\n this.processDataSetListener(true);\n }\n }\n componentWillUnmount() {\n this.processDataSetListener(false);\n }\n processDataSetListener(flag) {\n const { dataSet } = this.props;\n if (dataSet) {\n const handler = flag ? dataSet.addEventListener : dataSet.removeEventListener;\n handler.call(dataSet, 'load', this.handleDataSetLoad);\n }\n }\n handleDataSetLoad() {\n this.initDefaultExpandedRows();\n this.initDefaultCheckRows();\n this.initDefaultSelectRows();\n this.initDefaultLoadedRows();\n }\n initDefaultExpandedRows() {\n const { props: { defaultExpandAll, dataSet, defaultExpandedKeys, }, } = this;\n this.stateExpandedKeys = this.dealDefaultCheckExpand(dataSet, defaultExpandedKeys, defaultExpandAll);\n }\n initDefaultCheckRows() {\n const { props: { dataSet, defaultCheckedKeys, }, } = this;\n this.stateCheckedKeys = this.dealDefaultCheckExpand(dataSet, defaultCheckedKeys);\n }\n initDefaultLoadedRows() {\n this.stateLoadedKeys = [];\n }\n initDefaultSelectRows() {\n const { props: { dataSet, defaultSelectedKeys, }, } = this;\n if (dataSet && (defaultSelectedKeys)) {\n const { idField } = dataSet.props;\n defaultSelectedKeys.map(selectKey => {\n const found = dataSet.find(record => selectKey === String(idField ? record.get(idField) : record.id));\n if (found) {\n dataSet.select(found);\n }\n return null;\n });\n }\n }\n /**\n * 处理tree的props expand check的默认事件\n * @param dataSet\n * @param defaultAll\n * @param defaultKeys\n */\n dealDefaultCheckExpand(dataSet, defaultKeys, defaultAll) {\n let defaultStateKeys = [];\n if (dataSet) {\n const { idField, expandField } = dataSet.props;\n if (defaultAll && !expandField) {\n defaultStateKeys = dataSet.reduce((array, record) => {\n if (record.children) {\n array.push(getKey(record, idField));\n }\n return array;\n }, []);\n }\n else if (defaultKeys && !expandField) {\n defaultStateKeys = dataSet.reduce((array, record) => {\n defaultKeys.map((key) => {\n if (getKey(record, idField) === key) {\n array.push(key);\n }\n return null;\n });\n return array;\n }, []);\n }\n }\n return defaultStateKeys;\n }\n get expandedKeys() {\n const { dataSet } = this.props;\n if (dataSet) {\n const { expandField, idField } = dataSet.props;\n if (expandField) {\n const keys = [];\n dataSet.forEach(record => {\n if (record.isExpanded) {\n keys.push(getKey(record, idField));\n }\n });\n return keys;\n }\n }\n return this.stateExpandedKeys;\n }\n get checkedKeys() {\n const { dataSet, selectable, checkable } = this.props;\n if (dataSet) {\n const { checkField, idField } = dataSet.props;\n if (checkField) {\n const keys = [];\n dataSet.forEach(record => {\n const field = record.getField(checkField);\n const key = getKey(record, idField);\n if (record.get(checkField) === (field ? field.get(BooleanValue.trueValue) : true)) {\n keys.push(key);\n if (checkable && record.selectable && !record.isSelected && selectable === false) {\n record.isSelected = true;\n }\n }\n });\n return keys;\n }\n }\n return this.stateCheckedKeys;\n }\n get selectedKeys() {\n const { dataSet } = this.props;\n if (dataSet) {\n const { idField } = dataSet.props;\n return dataSet.selected.map(record => getKey(record, idField));\n }\n return [];\n }\n setExpand(eventObj) {\n const { dataSet } = this.props;\n if (dataSet) {\n const { expandField, idField } = dataSet.props;\n if (expandField) {\n const { node, expanded } = eventObj;\n const { eventKey } = node;\n const found = dataSet.find(record => eventKey === getKey(record, idField));\n if (found) {\n found.isExpanded = !!expanded;\n return false;\n }\n }\n }\n return true;\n }\n setCheck(eventObj) {\n const { dataSet } = this.props;\n if (dataSet) {\n const { checkField, idField } = dataSet.props;\n if (checkField) {\n const { node, checked } = eventObj;\n const { eventKey } = node;\n const found = dataSet.find(record => eventKey === String(idField ? record.get(idField) : record.id));\n if (found) {\n const field = found.getField(checkField);\n found.set(checkField, field\n ? checked\n ? field.get(BooleanValue.trueValue)\n : field.get(BooleanValue.falseValue)\n : checked);\n return false;\n }\n }\n }\n return true;\n }\n handleExpand(expandedKeys, eventObj) {\n if (this.setExpand(eventObj)) {\n runInAction(() => {\n this.stateExpandedKeys = expandedKeys;\n });\n }\n const { onExpand = noop } = this.props;\n onExpand(expandedKeys, eventObj);\n }\n handleCheck(checkedKeys, eventObj, oldCheckedKeys) {\n const { dataSet, selectable } = this.props;\n if (this.setCheck(eventObj)) {\n runInAction(() => {\n this.stateCheckedKeys = checkedKeys;\n });\n }\n if (dataSet && selectable === false) {\n const { idField } = dataSet.props;\n const diffKeys = xor(oldCheckedKeys, checkedKeys);\n dataSet.forEach(record => {\n diffKeys.forEach((key) => {\n if (getKey(record, idField) === key) {\n if (!record.isSelected) {\n dataSet.select(record);\n }\n else {\n dataSet.unSelect(record);\n }\n }\n });\n });\n }\n const { onCheck = noop } = this.props;\n onCheck(checkedKeys, eventObj, oldCheckedKeys);\n }\n handleSelect(selectedKeys, eventObj) {\n const { dataSet, onSelect = noop } = this.props;\n if (dataSet) {\n const { idField } = dataSet.props;\n const { node, selected } = eventObj;\n const { eventKey } = node;\n const found = dataSet.find(record => eventKey === String(idField ? record.get(idField) : record.id));\n if (found) {\n if (selected) {\n dataSet.select(found);\n }\n else {\n dataSet.unSelect(found);\n }\n }\n onSelect(selectedKeys, eventObj);\n }\n }\n handleLoadData(event) {\n const { dataSet, loadData, async } = this.props;\n const promises = [];\n if (async && dataSet) {\n const { record } = event.props;\n promises.push(dataSet.queryMoreChild(record));\n }\n if (loadData) {\n promises.push(loadData(event));\n }\n return Promise.all(promises).then(action(() => this.stateLoadedKeys.push(event.key)));\n }\n render() {\n const { dataSet, renderer = defaultRenderer, titleField, treeNodeRenderer, onTreeNode, loadData, async, selectable, ...otherProps } = this.props;\n if (dataSet) {\n const props = {};\n props.treeData = getTreeNodes(dataSet, dataSet.treeData, renderer, \n // @ts-ignore\n onTreeNode || treeNodeRenderer || defaultNodeCover, async || !!loadData, titleField) || [];\n // @ts-ignore\n props.onExpand = this.handleExpand;\n // @ts-ignore\n props.onCheck = this.handleCheck;\n // @ts-ignore\n props.onSelect = this.handleSelect;\n props.selectable = selectable;\n props.loadData = this.handleLoadData;\n props.expandedKeys = this.expandedKeys.slice();\n if (!('checkedKeys' in otherProps)) {\n props.checkedKeys = this.checkedKeys.slice();\n }\n if (!('multiple' in otherProps)) {\n props.multiple = dataSet.props.selection === DataSetSelection.multiple;\n }\n if (!('selectedKeys' in otherProps)) {\n props.selectedKeys = this.selectedKeys.slice();\n }\n if (!('loadedKeys' in otherProps)) {\n props.loadedKeys = this.stateLoadedKeys.slice();\n }\n return (React.createElement(Spin, { dataSet: dataSet },\n React.createElement(C7NTree, Object.assign({}, otherProps, props))));\n }\n return React.createElement(C7NTree, Object.assign({}, otherProps));\n }\n};\nTree.displayName = 'Tree<PRO>';\nTree.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array,\n showLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.arrayOf(keyPropType),\n expandedKeys: PropTypes.arrayOf(keyPropType),\n defaultCheckedKeys: PropTypes.arrayOf(keyPropType),\n checkedKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(keyPropType),\n PropTypes.object,\n ]),\n defaultSelectedKeys: PropTypes.arrayOf(keyPropType),\n selectedKeys: PropTypes.arrayOf(keyPropType),\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onExpand: PropTypes.func,\n onCheck: PropTypes.func,\n onSelect: PropTypes.func,\n onLoad: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.arrayOf(keyPropType),\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 motion: PropTypes.object,\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n};\nTree.TreeNode = TreeNode;\n__decorate([\n observable\n], Tree.prototype, \"stateCheckedKeys\", void 0);\n__decorate([\n observable\n], Tree.prototype, \"stateExpandedKeys\", void 0);\n__decorate([\n observable\n], Tree.prototype, \"stateLoadedKeys\", void 0);\n__decorate([\n autobind\n], Tree.prototype, \"handleDataSetLoad\", null);\n__decorate([\n action\n], Tree.prototype, \"initDefaultExpandedRows\", null);\n__decorate([\n action\n], Tree.prototype, \"initDefaultCheckRows\", null);\n__decorate([\n action\n], Tree.prototype, \"initDefaultLoadedRows\", null);\n__decorate([\n action\n], Tree.prototype, \"initDefaultSelectRows\", null);\n__decorate([\n computed\n], Tree.prototype, \"expandedKeys\", null);\n__decorate([\n computed\n], Tree.prototype, \"selectedKeys\", null);\n__decorate([\n autobind\n], Tree.prototype, \"handleExpand\", null);\n__decorate([\n autobind\n], Tree.prototype, \"handleCheck\", null);\n__decorate([\n autobind\n], Tree.prototype, \"handleSelect\", null);\n__decorate([\n autobind\n], Tree.prototype, \"handleLoadData\", null);\nTree = __decorate([\n observer\n], Tree);\nexport default Tree;\n","import 'choerodon-ui/lib/tree/style';\n// style dependencies\nimport 'choerodon-ui/lib/spin/style';\n","export function getKey(record, idField) {\n return String(idField ? record.get(idField) : record.key);\n}\nfunction getTreeNode(record, children, idField, text, treeNodeProps, async, filterText) {\n const key = getKey(record, idField);\n return ({\n title: text,\n isLeaf: async ? undefined : (filterText ? (!children || !children.length) : !record.children || !record.children.length),\n children,\n record,\n ...record.get('__treeNodeProps'),\n ...treeNodeProps,\n selectable: record.dataSet.selection ? record.selectable : false,\n eventKey: key,\n key,\n });\n}\nexport function getTreeNodes(dataSet, records, renderer, onTreeNode, async, titleField, optionsFilter, searchMatcher, filterText) {\n const { idField } = dataSet.props;\n if (records) {\n return records.reduce((array, record, index) => {\n if (record.status !== 'delete') {\n const children = record.children\n ? getTreeNodes(dataSet, record.children, renderer, onTreeNode, async, titleField, optionsFilter, searchMatcher, filterText)\n : null;\n if (!searchMatcher || !filterText || (children && children.length) || searchMatcher(record, filterText)) {\n if ((!optionsFilter || optionsFilter(record, index, records))) {\n const node = getTreeNode(record, children, idField, renderer({ dataSet, record, text: record.get(titleField) }), onTreeNode({ dataSet, record }), async, filterText);\n if (node) {\n array.push(node);\n }\n }\n else if (children) {\n array.push(...children);\n }\n }\n }\n return array;\n }, []);\n }\n return null;\n}\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport noop from 'lodash/noop';\nimport { action, observable, runInAction } from 'mobx';\nimport { PropTypes as MobxPropTypes } from 'mobx-react';\nimport Trigger from 'choerodon-ui/lib/trigger/Trigger';\nimport { TextField } from '../text-field/TextField';\nimport autobind from '../_util/autobind';\nimport Icon from '../icon';\nimport TaskRunner from '../_util/TaskRunner';\nimport BUILT_IN_PLACEMENTS from './placements';\nexport default class TriggerField extends TextField {\n constructor(props, context) {\n super(props, context);\n this.popupTask = new TaskRunner();\n runInAction(() => {\n this.statePopup = false;\n });\n }\n get popup() {\n return this.statePopup;\n }\n saveTrigger(node) {\n this.trigger = node;\n }\n isValidationMessageHidden(message) {\n return super.isValidationMessageHidden(message) || this.popup;\n }\n setPopup(statePopup) {\n if (statePopup !== this.statePopup) {\n this.statePopup = statePopup;\n const { onPopupHiddenChange = noop } = this.props;\n onPopupHiddenChange(!statePopup);\n }\n }\n getRootDomNode() {\n return findDOMNode(this);\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'popupContent',\n 'popupCls',\n 'popupStyle',\n 'popupPlacement',\n 'editable',\n 'trigger',\n 'triggerShowDelay',\n 'triggerHiddenDelay',\n 'onPopupHiddenChange',\n 'getPopupContainer',\n 'getPopupAlignTarget',\n 'extraFooterPlacement',\n 'renderExtraFooter',\n 'treeDefaultExpandedKeys',\n 'treeDefaultExpandAll',\n 'tabIntoPopupContent',\n 'viewMode',\n ]);\n }\n getPopupProps() {\n return {\n setValue: this.setValue.bind(this),\n setPopup: this.setPopup.bind(this),\n };\n }\n getPopupClassName(defaultClassName) {\n return defaultClassName;\n }\n renderPopupContent() {\n const { popupContent } = this.props;\n if (popupContent === undefined) {\n return this.getPopupContent();\n }\n if (popupContent instanceof Function) {\n return popupContent(this.getPopupProps());\n }\n return popupContent;\n }\n getWrappedEditor(renderedValue) {\n const { prefixCls, props: { popupCls, popupStyle, popupPlacement, hidden, trigger, triggerShowDelay, triggerHiddenDelay, getPopupContainer, tabIntoPopupContent, getPopupAlignTarget = this.getRootDomNode, }, } = this;\n return (React.createElement(Trigger, { ref: this.saveTrigger, action: this.readOnly || this.disabled ? [] : trigger, focusDelay: triggerShowDelay, blurDelay: triggerHiddenDelay, mouseEnterDelay: triggerShowDelay, mouseLeaveDelay: triggerHiddenDelay, prefixCls: prefixCls, popupCls: this.getPopupClassName(popupCls), popupStyle: popupStyle, popupContent: this.renderPopupContent, popupPlacement: popupPlacement, popupHidden: hidden || !this.popup, builtinPlacements: BUILT_IN_PLACEMENTS, onPopupAnimateAppear: this.handlePopupAnimateAppear, onPopupAnimateEnd: this.handlePopupAnimateEnd, onPopupHiddenChange: this.handlePopupHiddenChange, getPopupStyleFromAlign: this.getPopupStyleFromAlign, getRootDomNode: getPopupAlignTarget, getPopupContainer: getPopupContainer, tabIntoPopupContent: tabIntoPopupContent, childrenProps: renderedValue }, this.getEditor));\n }\n getWrapperClassNames(...args) {\n const { prefixCls } = this;\n return super.getWrapperClassNames(...args, {\n [`${prefixCls}-expand`]: this.popup,\n [`${prefixCls}-not-editable`]: !this.disabled && !this.editable,\n });\n }\n getDefaultSuffix() {\n const { prefixCls } = this;\n return React.createElement(Icon, { type: this.getTriggerIconFont(), className: `${prefixCls}-trigger` });\n }\n handleTagAnimateEnd() {\n this.forcePopupAlign();\n }\n handlePopupMouseDown(e) {\n e.preventDefault();\n const { onMouseDown = noop } = this.props;\n onMouseDown(e);\n }\n handlePopupHiddenChange(hidden) {\n this.setPopup(!hidden);\n }\n forcePositionChanged() {\n this.forcePopupAlign();\n }\n forcePopupAlign() {\n if (this.trigger) {\n this.trigger.forcePopupAlign();\n }\n }\n expand() {\n this.popupTask.cancel();\n if (!this.readOnly && !this.popup) {\n this.popupTask.delay(this.props.triggerShowDelay, () => {\n this.setPopup(true);\n });\n }\n }\n collapse() {\n this.popupTask.cancel();\n if (!this.readOnly && this.popup) {\n const { element } = this;\n // 如果当前焦点在popup中,将焦点换给输入框\n let triggerHiddenDelay = this.props.triggerHiddenDelay;\n if (this.isFocused && element !== document.activeElement) {\n element.focus();\n const { triggerShowDelay } = this.props;\n triggerHiddenDelay += triggerShowDelay;\n }\n this.popupTask.delay(triggerHiddenDelay, () => {\n this.setPopup(false);\n });\n }\n }\n}\nTriggerField.displayName = 'TriggerField';\nTriggerField.propTypes = {\n /**\n * 下拉框的自定义内容\n */\n popupContent: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * 下拉框的自定义样式名\n */\n popupCls: PropTypes.string,\n /**\n * 下拉框的内链样式\n */\n popupStyle: PropTypes.object,\n /**\n * 下拉框对齐方式\n */\n popupPlacement: PropTypes.string,\n /**\n * 触发下拉框的方式\n * 可选值:click | focus | hover | contextMenu\n */\n trigger: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.string),\n /**\n * 下拉框显示延迟\n * @defualt 150\n */\n triggerShowDelay: PropTypes.number,\n /**\n * 下拉框隐藏延迟\n * @defualt 50\n */\n triggerHiddenDelay: PropTypes.number,\n /**\n * 下拉框变化钩子\n */\n onPopupHiddenChange: PropTypes.func,\n /**\n * 定义浮层的容器,默认为 body\n */\n getPopupContainer: PropTypes.func,\n /**\n * 定义浮层对齐的目标,默认为组件最外层元素\n */\n getPopupAlignTarget: PropTypes.func,\n /**\n * 当popup中有可获取焦点对象时,是否按tab键时获取焦点\n */\n tabIntoPopupContent: PropTypes.bool,\n viewMode: PropTypes.oneOf(['none', 'popup', 'modal', 'list']),\n ...TextField.propTypes,\n};\nTriggerField.defaultProps = {\n ...TextField.defaultProps,\n suffixCls: 'trigger',\n clearButton: true,\n popupPlacement: 'bottomLeft',\n trigger: ['focus', 'click'],\n triggerShowDelay: 150,\n triggerHiddenDelay: 50,\n viewMode: 'popup',\n};\n__decorate([\n observable\n], TriggerField.prototype, \"statePopup\", void 0);\n__decorate([\n autobind\n], TriggerField.prototype, \"saveTrigger\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"isValidationMessageHidden\", null);\n__decorate([\n action\n], TriggerField.prototype, \"setPopup\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"getRootDomNode\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"renderPopupContent\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"handleTagAnimateEnd\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"handlePopupMouseDown\", null);\n__decorate([\n autobind\n], TriggerField.prototype, \"handlePopupHiddenChange\", null);\n","const BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n};\nexport default BUILT_IN_PLACEMENTS;\n","// extracted by mini-css-extract-plugin","// style dependencies\nimport 'choerodon-ui/lib/trigger/style';\nimport 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import 'choerodon-ui/lib/trigger/style';\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { action, observable, runInAction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport uniqBy from 'lodash/uniqBy';\nimport isEmpty from 'lodash/isEmpty';\nimport isPromise from 'is-promise';\nimport { T } from 'choerodon-ui/lib/upload/utils';\nimport Button from '../button/Button';\nimport { ButtonColor } from '../button/enum';\nimport autobind from '../_util/autobind';\nimport { FormField } from '../field/FormField';\nimport Icon from '../icon';\nimport message from '../message';\nimport Modal from '../modal';\nimport UploadList from './UploadList';\nimport Tooltip from '../tooltip/Tooltip';\nimport { $l } from '../locale-context';\nimport isIE from '../_util/isIE';\n/**\n * 把XMLHttpRequest对象的返回信息转化为字符串\n *\n * @param {XMLHttpRequest} xhr\n * @returns {string}\n * @memberof Upload\n */\nfunction getResponse(xhr) {\n const res = xhr.responseText || xhr.response;\n if (!res) {\n return res;\n }\n try {\n return JSON.parse(res).message;\n }\n catch (e) {\n return '';\n }\n}\nlet Upload = class Upload extends FormField {\n constructor(props, context) {\n super(props, context);\n this.saveNativeInputElement = elem => (this.nativeInputElement = elem);\n /**\n * 传递包装按钮的点击事件\n *\n */\n this.handleWrapperBtnClick = () => {\n this.nativeInputElement.click();\n };\n this.handleUploadBtnClick = () => {\n this.startUpload();\n };\n /**\n * 文件上传前的回调\n *\n * @param {UploadFile}\n * @param {UploadFile[]}\n * @memberof Upload\n */\n this.beforeUpload = (file, fileList) => {\n const { beforeUpload } = this.props;\n if (!beforeUpload) {\n return true;\n }\n const result = beforeUpload(file, fileList);\n if (result === false) {\n this.removeFileItem(file);\n return false;\n }\n if (isPromise(result)) {\n return result;\n }\n return true;\n };\n this.startUpload = () => {\n const fileList = [...this.fileList];\n if (fileList.length) {\n // <-- 当有文件时才上传\n this.uploadFiles(fileList);\n // this.nativeInputElement.value = '';\n }\n else {\n Modal.error($l('Upload', 'no_file'));\n }\n };\n this.handleRemove = (file) => {\n // this.removeFileItem(file);\n // this.upload.abort(file);\n file.status = 'removed';\n this.handleOnRemove(file);\n };\n runInAction(() => {\n this.fileList = props.uploadFileList || props.defaultFileList || [];\n });\n }\n componentWillReceiveProps(nextProps) {\n const { uploadFileList } = nextProps;\n if (uploadFileList !== this.fileList && uploadFileList !== undefined) {\n this.fileList = uniqBy(uploadFileList, (item) => item.uid);\n }\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'accept',\n 'action',\n 'data',\n 'header',\n 'multiple',\n 'uploadImmediately',\n 'fileListMaxLength',\n 'showPreviewImage',\n 'previewImageWidth',\n 'showUploadBtn',\n 'showUploadList',\n 'onRemoveFile',\n 'onUploadSuccess',\n 'onUploadError',\n 'onFileChange',\n 'beforeUpload',\n 'withCredentials',\n 'partialUpload',\n 'appendUpload',\n 'uploadFileList',\n ]);\n }\n getOtherProps() {\n const otherProps = super.getOtherProps();\n delete otherProps.ref;\n delete otherProps.onChange;\n return otherProps;\n }\n render() {\n const { prefixCls, props: { action: formAction, children, multiple, accept, name = 'file', // <-- convince ts\n uploadImmediately, showPreviewImage, previewImageWidth, showUploadBtn, showUploadList, extra, }, } = this;\n const uploadProps = {\n multiple,\n accept: accept ? accept.join(',') : undefined,\n action: formAction,\n name,\n type: 'file',\n ref: this.saveNativeInputElement,\n onChange: this.handleChange,\n ...this.getOtherProps(),\n };\n const inputWrapperBtn = [\n React.createElement(Button, { key: \"upload-btn\", onClick: this.handleWrapperBtnClick },\n React.createElement(Icon, { type: \"insert_drive_file\" }),\n React.createElement(\"span\", null, children || $l('Upload', 'file_selection'))),\n React.createElement(\"input\", Object.assign({ key: \"upload\" }, uploadProps, { hidden: true })),\n ];\n const uploadBtn = (React.createElement(Tooltip, { title: $l('Upload', 'click_to_upload'), placement: \"right\" },\n React.createElement(Button, { color: ButtonColor.primary, onClick: this.handleUploadBtnClick },\n React.createElement(Icon, { type: \"file_upload\" }))));\n /**\n * to solve the ie11 dispaly inline-block with the button cause unaligned\n */\n const IeStyle = isIE() ? { display: '-ms-inline-flexbox' } : {};\n return (React.createElement(\"div\", { className: `${prefixCls}`, style: IeStyle },\n React.createElement(\"div\", { className: \"flex-wrapper\" },\n React.createElement(\"div\", { className: `${prefixCls}-select` },\n inputWrapperBtn,\n !uploadImmediately && showUploadBtn ? uploadBtn : null),\n React.createElement(\"div\", null, extra)),\n showUploadList ? (React.createElement(UploadList, { previewImageWidth: previewImageWidth, showPreviewImage: showPreviewImage, items: [...this.fileList], remove: this.handleRemove })) : null));\n }\n /**\n * 处理<input type=\"file\">元素的change事件,\n * 主要是取出事件对象中的files对象并传递给uploadFiles方法\n *\n * @param {*} e <input>元素的change事件对象\n * @memberof Upload\n */\n handleChange(e) {\n if (e.target.value === '') {\n return;\n }\n const { appendUpload, defaultFileList, uploadFileList } = this.props;\n const fileList = e.target.files;\n const files = Array.from(fileList).slice(0);\n const tempFileList = appendUpload || defaultFileList || uploadFileList ? this.fileList.slice() : [];\n const fileBuffer = [];\n files.forEach((file, index) => {\n file.uid = this.getUid(index);\n file.url = URL.createObjectURL(file);\n const res = this.beforeUpload(file, files);\n if (!res) {\n return;\n }\n fileBuffer.push(file);\n });\n this.fileList = [...tempFileList, ...fileBuffer];\n const { uploadImmediately, onFileChange } = this.props;\n e.target.value = '';\n if (uploadImmediately) {\n if (!isEmpty(fileBuffer)) {\n this.uploadFiles(this.fileList);\n }\n }\n if (onFileChange) {\n onFileChange(this.fileList.slice());\n }\n }\n /**\n * 分别上传fileList中的每个文件对象\n *\n * @param {UploadFile[]} fileList 文件对象数组\n * @returns {void}\n * @memberof Upload\n */\n uploadFiles(fileList) {\n const { action: formAction, accept, fileListMaxLength = 0, // <-- convince ts\n partialUpload, } = this.props;\n if (!formAction) {\n Modal.error($l('Upload', 'upload_path_unset'));\n return;\n }\n if (!this.isAcceptFiles(fileList)) {\n Modal.error($l('Upload', 'not_acceptable_prompt') + accept.join(','));\n return;\n }\n if (fileListMaxLength !== 0 && this.fileList.length > fileListMaxLength) {\n Modal.error(`${$l('Upload', 'file_list_max_length')}: ${fileListMaxLength}`);\n return;\n }\n const files = partialUpload\n ? Array.from(fileList)\n .slice(0)\n .filter(item => !item.status || item.status !== 'success')\n : Array.from(fileList).slice(0);\n const that = this;\n if (!files.length) {\n message.info($l('Upload', 'been_uploaded'));\n }\n files.forEach((file, index) => {\n file.uid = this.getUid(index);\n setTimeout(() => {\n that.upload(file);\n }, 0);\n });\n }\n /**\n * 上传每个文件对象\n *\n * @param {*} file\n * @returns {void}\n * @memberof Upload\n */\n /* istanbul ignore next */\n upload(file) {\n const { data, action: formAction, headers, name: filename, withCredentials: xhrWithCredentials, } = this.props;\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n // 修改文件状态,方便UploadList判断是否展示进度条\n file.status = 'uploading';\n if (xhr.upload) {\n xhr.upload.onprogress = e => {\n let percent = 0;\n if (e.total > 0) {\n percent = (e.loaded / e.total) * 100;\n }\n this.handleProgress(percent, file);\n };\n }\n if (data) {\n const newData = typeof data === 'function' ? data(file) : data;\n Object.keys(newData).forEach(key => formData.append(key, newData[key]));\n }\n // TODO: `filename` default value needs better implementation\n formData.append(filename || 'file', file);\n const errorMsg = `cannot post ${formAction} ${xhr.status}`;\n if (xhrWithCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n xhr.open('post', formAction, true);\n xhr.onload = () => {\n // 以二开头的状态码都认为是成功,暂定?\n const isSuccessful = xhr.status.toString().startsWith('2');\n if (isSuccessful) {\n this.handleSuccess(xhr.status, xhr.response, file);\n }\n else {\n this.handleError(new Error(errorMsg), getResponse(xhr), xhr.response, file);\n }\n };\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n if (headers !== undefined) {\n Object.keys(headers).forEach(key => {\n if ({}.hasOwnProperty.call(headers, key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n });\n }\n xhr.send(formData);\n xhr.onerror = () => {\n this.handleError(new Error(errorMsg), getResponse(xhr), xhr.response, file);\n };\n xhr.ontimeout = () => {\n const timeoutMsg = `The request post for ${action} timed out`;\n this.handleError(new Error(timeoutMsg), getResponse(xhr), xhr.response, file);\n };\n }\n /**\n * 处理上传成功的函数,根据结果设置文件对象的状态,\n * 用于在UploadList中的展示\n *\n * @param {number} status HTTP状态码\n * @param {string} response 响应对象\n * @param {UploadFile} file 文件对象\n * @returns\n */\n handleSuccess(status, response, file) {\n const targetItem = this.getFileItem(file);\n if (targetItem) {\n const { onUploadSuccess } = this.props;\n targetItem.status = status === 200 ? 'success' : 'done';\n targetItem.response = response;\n if (onUploadSuccess) {\n onUploadSuccess(response, file);\n }\n this.forceUpdate();\n }\n }\n /**\n * 处理上传进度变化的函数,更新文件对象中的percent值,\n * 用于在UploadList中展示\n *\n * @param {number} percent 上传百分比\n * @param {UploadFile} file 文件对象\n * @returns\n */\n handleProgress(percent, file) {\n const { onUploadProgress } = this.props;\n const targetItem = this.getFileItem(file);\n if (targetItem) {\n targetItem.percent = percent;\n if (onUploadProgress) {\n onUploadProgress(percent, file);\n }\n this.forceUpdate();\n }\n }\n /**\n * 处理上传出错的函数,用于设置文件对象的status值,\n *\n * @param {Error} error 错误对象\n * @param {string} responseText 处理成字符串的响应对象\n * @param {UploadFile} file 文件对象\n * @returns\n */\n handleError(error, responseText, response, file) {\n const { onUploadError } = this.props;\n const targetItem = this.getFileItem(file);\n if (targetItem) {\n targetItem.status = 'error';\n targetItem.error = error;\n targetItem.response = responseText;\n if (onUploadError) {\n onUploadError(error, response, file);\n }\n this.forceUpdate();\n }\n }\n handleOnRemove(file) {\n const { onRemoveFile } = this.props;\n Promise.resolve(typeof onRemoveFile === 'function' ? onRemoveFile(file) : onRemoveFile).then(ret => {\n if (ret === false) {\n return;\n }\n this.removeFileItem(file);\n });\n }\n /**\n * 判断文件后缀名是否合格\n * this.props.accept值为falsy时返回true,否则正常判断\n *\n * @param {UploadFile[]} fileList 文件对象数组\n * @returns {boolean}\n * @memberof Upload\n */\n isAcceptFiles(fileList) {\n const { accept } = this.props;\n if (!accept) {\n return true;\n }\n const acceptTypes = accept.map(type => {\n type = type.replace(/\\./g, '\\\\.');\n type = type.replace(/\\*/g, '.*');\n return new RegExp(type);\n });\n return fileList.some(({ name, type }) => acceptTypes.some(acceptType => acceptType.test(name) || acceptType.test(type)));\n }\n /**\n * 使用日期获取一个uid\n *\n * @param {number} index 索引\n * @returns {string}\n * @memberof Upload\n */\n getUid(index) {\n const { prefixCls } = this;\n const now = new Date();\n return `${prefixCls}-${now}-${index}`;\n }\n /**\n * 从文件对象数组中获取一个文件对象的引用,\n * 首先尝试通过uid属性匹配文件对象,若失败则尝试name\n *\n * @param {UploadFile} file\n * @param {UploadFile[]} fileList 文件对象数组\n * @returns {UploadFile}\n * @memberof Upload\n */\n getFileItem(file) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return this.fileList.find(item => item[matchKey] === file[matchKey]);\n }\n /**\n * 从文件对象数组中移除一个文件对象,\n * 首先尝试通过uid属性匹配文件对象,若失败则尝试name\n *\n * @param {UploadFile} file\n * @param {UploadFile[]} fileList\n * @returns {UploadFile[]}\n * @memberof Upload\n */\n removeFileItem(file) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const index = this.fileList.findIndex(item => item[matchKey] === file[matchKey]);\n const { uploadFileList } = this.props;\n if (uploadFileList && uploadFileList.length) {\n uploadFileList.splice(index, 1);\n this.fileList.splice(index, 1);\n }\n else {\n this.fileList.splice(index, 1);\n }\n }\n};\nUpload.displayName = 'Upload';\nUpload.propTypes = {\n /**\n * 可接受的上传文件类型\n * 可选值: MIME类型字符串组成的数组\n */\n accept: PropTypes.arrayOf(PropTypes.string),\n /**\n * 上传文件路径\n */\n action: PropTypes.string,\n /**\n * 上传所需参数或者返回上传参数的方法\n * @default\n * {}\n */\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n /**\n * 设置上传的请求头部\n * @default\n * {}\n */\n headers: PropTypes.object,\n /**\n * 是否支持多选文件\n * @default\n * false\n */\n multiple: PropTypes.bool,\n uploadImmediately: PropTypes.bool,\n fileListMaxLength: PropTypes.number,\n showPreviewImage: PropTypes.bool,\n previewImageWidth: PropTypes.number,\n extra: PropTypes.any,\n onFileChange: PropTypes.func,\n beforeUpload: PropTypes.func,\n onRemoveFile: PropTypes.func,\n onUploadProgress: PropTypes.func,\n onUploadSuccess: PropTypes.func,\n onUploadError: PropTypes.func,\n showUploadBtn: PropTypes.bool,\n showUploadList: PropTypes.bool,\n uploadFileList: PropTypes.array,\n withCredentials: PropTypes.bool,\n appendUpload: PropTypes.bool,\n partialUpload: PropTypes.bool,\n ...FormField.propTypes,\n};\nUpload.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'upload',\n multiple: false,\n headers: {},\n data: {},\n action: '',\n name: 'file',\n withCredentials: false,\n appendUpload: false,\n partialUpload: true,\n uploadImmediately: true,\n fileListMaxLength: 0,\n showPreviewImage: true,\n previewImageWidth: 100,\n showUploadBtn: true,\n showUploadList: true,\n beforeUpload: T,\n onUploadSuccess: () => message.success($l('Upload', 'upload_success')),\n onUploadError: () => message.error($l('Upload', 'upload_failure')),\n};\n__decorate([\n observable\n], Upload.prototype, \"fileList\", void 0);\n__decorate([\n action\n], Upload.prototype, \"componentWillReceiveProps\", null);\n__decorate([\n autobind,\n action\n], Upload.prototype, \"handleChange\", null);\n__decorate([\n autobind,\n action\n], Upload.prototype, \"uploadFiles\", null);\n__decorate([\n autobind,\n action\n], Upload.prototype, \"upload\", null);\n__decorate([\n action\n], Upload.prototype, \"handleSuccess\", null);\n__decorate([\n action\n], Upload.prototype, \"handleProgress\", null);\n__decorate([\n action\n], Upload.prototype, \"handleError\", null);\n__decorate([\n action\n], Upload.prototype, \"handleRemove\", void 0);\n__decorate([\n action\n], Upload.prototype, \"removeFileItem\", null);\nUpload = __decorate([\n observer\n], Upload);\nexport default Upload;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { FormField } from '../field/FormField';\nimport Icon from '../icon';\nimport Progress from '../progress';\nimport { Size } from '../core/enum';\nexport default class UploadList extends FormField {\n render() {\n const { prefixCls, props: { items, remove, showPreviewImage, previewImageWidth, }, } = this;\n const list = items.map(file => {\n let previewImg;\n let progress;\n let removeIcon;\n const progressProps = {\n value: file.percent,\n size: Size.small,\n showInfo: false,\n };\n if (showPreviewImage && file.type.startsWith('image')) {\n // temporarily set img[width] to 100\n previewImg = React.createElement(\"img\", { width: previewImageWidth, alt: file.filename, src: file.url });\n }\n if (file.status === 'uploading') {\n progress = (React.createElement(\"div\", { className: `${prefixCls}-item-progress` },\n React.createElement(Progress, Object.assign({}, progressProps))));\n }\n else {\n const rmProps = {\n className: classnames(`${prefixCls}-item-icon`, {\n [`${prefixCls}-item-remove`]: true,\n }),\n type: 'close',\n onClick: () => {\n remove(file);\n },\n };\n removeIcon = React.createElement(Icon, Object.assign({}, rmProps));\n }\n const listProps = {\n className: classnames(`${prefixCls}-item`, {\n [`${prefixCls}-item-error`]: file.status === 'error',\n [`${prefixCls}-item-success`]: file.status === 'success',\n }),\n };\n return (React.createElement(\"div\", Object.assign({}, listProps, { key: file.uid }),\n previewImg,\n React.createElement(\"span\", { className: `${prefixCls}-item-name` }, file.name),\n progress,\n removeIcon));\n });\n const listWrapperCls = items.length ? `${prefixCls}` : `${prefixCls}-empty`;\n return (React.createElement(\"div\", { className: listWrapperCls }, list));\n }\n}\nUploadList.displayName = 'UploadList';\nUploadList.propTypes = {\n items: PropTypes.array,\n remove: PropTypes.func,\n ...FormField.propTypes,\n};\nUploadList.defaultProps = {\n ...FormField.defaultProps,\n suffixCls: 'upload-list',\n items: [],\n};\n","import Upload from './Upload';\nexport default Upload;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/lib/style/index.less';\nimport './index.less';\n","import { __decorate } from \"tslib\";\nimport { observer } from 'mobx-react';\nimport { TextField } from '../text-field/TextField';\nimport { $l } from '../locale-context';\nimport { FieldType } from '../data-set/enum';\nlet UrlField = class UrlField extends TextField {\n constructor() {\n super(...arguments);\n this.type = 'url';\n }\n get defaultValidationMessages() {\n const label = this.getProp('label');\n return {\n valueMissing: $l('UrlField', label ? 'value_missing' : 'value_missing_no_label', { label }),\n typeMismatch: $l('UrlField', 'type_mismatch'),\n };\n }\n getFieldType() {\n return FieldType.url;\n }\n};\nUrlField.displayName = 'UrlField';\nUrlField = __decorate([\n observer\n], UrlField);\nexport default UrlField;\n","import UrlField from './UrlField';\nexport default UrlField;\n","import '../../text-field/style';\n","import { useMemo } from 'react';\nimport { computed } from 'mobx';\nimport { useComputed as useMobxComputed } from 'mobx-react-lite';\nconst useComputed = useMobxComputed || ((func, inputs = []) => {\n return useMemo(() => computed(func), inputs).get();\n});\nexport default useComputed;\n","// empty file prevent babel-plugin-import error\nimport 'choerodon-ui/lib/style/index.less';\n","import { useModal } from '../modal-provider/ModalProvider';\nexport default useModal;\n","import '../../modal-provider/style';\n","export default class ValidationResult {\n constructor(props) {\n Object.assign(this, props);\n }\n}\n","import { __decorate } from \"tslib\";\nimport React from 'react';\nimport { action, computed, isArrayLike, observable, runInAction } from 'mobx';\nimport isString from 'lodash/isString';\nimport omitBy from 'lodash/omitBy';\nimport isUndefined from 'lodash/isUndefined';\nimport { getConfig } from 'choerodon-ui/lib/configure';\nimport Validity from './Validity';\nimport ValidationResult from './ValidationResult';\nimport validationRules from './rules';\nimport valueMissing from './rules/valueMissing';\nimport getReactNodeText from '../_util/getReactNodeText';\nimport { getIf } from '../data-set/utils';\nexport default class Validator {\n constructor(field, control) {\n runInAction(() => {\n this.field = field;\n this.control = control;\n });\n }\n get props() {\n const { control, field } = this;\n const controlProps = control && omitBy(control.getValidatorProps(), isUndefined);\n const fieldProps = field && field.getValidatorProps();\n return {\n ...fieldProps,\n ...controlProps,\n defaultValidationMessages: {\n ...(controlProps && controlProps.defaultValidationMessages),\n ...getConfig('defaultValidationMessages'),\n ...(fieldProps && fieldProps.defaultValidationMessages),\n },\n };\n }\n get uniqueRefFields() {\n const { name, unique, record } = this.props;\n if (record && isString(unique)) {\n return [...record.fields.values()].filter(field => field.name !== name &&\n field.get('unique') === unique &&\n !field.get('multiple') &&\n !field.get('range'));\n }\n return [];\n }\n // @computed\n // private get bindingFieldWithValidationResult(): Field | undefined {\n // const { name, record, type } = this.props;\n // if (record && name && type === FieldType.object) {\n // return findBindField(name, record.fields, field => !field.isValid());\n // }\n // return undefined;\n // }\n get uniqueRefValidationResult() {\n let validationResult;\n const { uniqueRefFields, innerValidationResults } = this;\n if (uniqueRefFields.length &&\n (!innerValidationResults || innerValidationResults.every(result => result.ruleName !== 'uniqueError'))) {\n uniqueRefFields.some(uniqueRefField => {\n const { validator } = uniqueRefField;\n if (validator) {\n const validatorInnerValidationResults = validator.innerValidationResults;\n validationResult = validatorInnerValidationResults && validatorInnerValidationResults.find(result => result.ruleName === 'uniqueError');\n }\n return !!validationResult;\n });\n }\n return validationResult;\n }\n get validationResults() {\n const { uniqueRefValidationResult } = this;\n if (uniqueRefValidationResult) {\n return [uniqueRefValidationResult];\n }\n const { innerValidationResults } = this;\n if (innerValidationResults && innerValidationResults.length) {\n return innerValidationResults;\n }\n // const { bindingFieldWithValidationResult } = this;\n // if (bindingFieldWithValidationResult) {\n // return bindingFieldWithValidationResult.getValidationErrorValues();\n // }\n return [];\n }\n get currentValidationResult() {\n const { validationResults } = this;\n return validationResults.length ? validationResults[0] : undefined;\n }\n get validity() {\n const { currentValidationResult } = this;\n return new Validity(currentValidationResult ? { [currentValidationResult.ruleName]: true } : undefined);\n }\n get injectionOptions() {\n const { currentValidationResult } = this;\n return (currentValidationResult && currentValidationResult.injectionOptions) || {};\n }\n get validationMessage() {\n const { currentValidationResult } = this;\n return currentValidationResult && currentValidationResult.validationMessage;\n }\n reset() {\n this.clearErrors();\n const { uniqueRefFields } = this;\n if (uniqueRefFields.length) {\n uniqueRefFields.forEach(uniqueRefField => {\n const { validator } = uniqueRefField;\n if (validator) {\n validator.clearErrors();\n }\n });\n }\n }\n async report(ret) {\n const { name, dataSet, record } = this.props;\n if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n const { validationMessage, value } = ret;\n const reportMessage = [\n 'validation:',\n isString(validationMessage)\n ? validationMessage\n : await getReactNodeText(React.createElement(\"span\", null, validationMessage)),\n ];\n if (dataSet) {\n const { name: dsName, id } = dataSet;\n if (dsName || id) {\n reportMessage.push(`\n[dataSet<${dsName || id}>]:`, dataSet);\n }\n else {\n reportMessage.push('\\n[dataSet]:', dataSet);\n }\n }\n if (record) {\n if (dataSet) {\n reportMessage.push(`\n[record<${dataSet.indexOf(record)}>]:`, record);\n }\n else {\n reportMessage.push(`\\n[record]:`, record);\n }\n reportMessage.push(`\n[field<${name}>]:`, record.getField(name));\n }\n else {\n reportMessage.push('[field]:', name);\n }\n reportMessage.push('\\n[value]:', value);\n console.warn(...reportMessage);\n }\n }\n clearErrors() {\n this.innerValidationResults = undefined;\n }\n addError(result) {\n const innerValidationResults = getIf(this, 'innerValidationResults', []);\n innerValidationResults.push(result);\n this.report(result);\n }\n async execute(rules, value) {\n const { props } = this;\n const method = rules.shift();\n if (method) {\n const results = await Promise.all(value.map(item => method(item, props)));\n results.forEach(result => {\n if (result instanceof ValidationResult) {\n this.addError(result);\n const index = value.indexOf(result.value);\n if (index !== -1) {\n value.splice(index, 1);\n }\n }\n });\n if (value.length) {\n await this.execute(rules, value);\n }\n }\n }\n async checkValidity(value = null) {\n const valueMiss = valueMissing(value, this.props);\n this.clearErrors();\n if (valueMiss !== true) {\n this.addError(valueMiss);\n }\n else {\n const { multiple } = this.props;\n await this.execute(validationRules.slice(), multiple && isArrayLike(value) ? value.slice() : [value]);\n }\n return this.validity.valid;\n }\n}\n__decorate([\n observable\n], Validator.prototype, \"field\", void 0);\n__decorate([\n observable\n], Validator.prototype, \"control\", void 0);\n__decorate([\n observable\n], Validator.prototype, \"innerValidationResults\", void 0);\n__decorate([\n computed\n], Validator.prototype, \"props\", null);\n__decorate([\n computed\n], Validator.prototype, \"uniqueRefValidationResult\", null);\n__decorate([\n computed\n], Validator.prototype, \"validity\", null);\n__decorate([\n action\n], Validator.prototype, \"reset\", null);\n__decorate([\n action\n], Validator.prototype, \"report\", null);\n__decorate([\n action\n], Validator.prototype, \"clearErrors\", null);\n__decorate([\n action\n], Validator.prototype, \"addError\", null);\n","import { __decorate } from \"tslib\";\nimport { action, computed, observable } from 'mobx';\nexport default class Validity {\n constructor(props) {\n this.init(props);\n }\n get valid() {\n return Object.keys(this)\n .filter(key => key !== 'valid')\n .every(key => !this[key]);\n }\n reset() {\n this.init();\n }\n init(props) {\n this.badInput = false;\n this.customError = false;\n this.patternMismatch = false;\n this.rangeOverflow = false;\n this.rangeUnderflow = false;\n this.stepMismatch = false;\n this.tooLong = false;\n this.tooShort = false;\n this.typeMismatch = false;\n this.valueMissing = false;\n this.uniqueError = false;\n if (props) {\n Object.assign(this, props);\n }\n }\n}\n__decorate([\n observable\n], Validity.prototype, \"badInput\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"customError\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"patternMismatch\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"rangeOverflow\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"rangeUnderflow\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"stepMismatch\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"tooLong\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"tooShort\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"typeMismatch\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"valueMissing\", void 0);\n__decorate([\n observable\n], Validity.prototype, \"uniqueError\", void 0);\n__decorate([\n computed\n], Validity.prototype, \"valid\", null);\n__decorate([\n action\n], Validity.prototype, \"init\", null);\n","import isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { FieldType } from '../../data-set/enum';\nimport { toRangeValue } from '../../field/utils';\nconst isBadInput = (value, range) => {\n if (range) {\n return toRangeValue(value, range).some(item => !isEmpty(item) && isNaN(item));\n }\n return !isEmpty(value) && isNaN(value);\n};\nexport default function badInput(value, props) {\n const { type, defaultValidationMessages, range } = props;\n if (type === FieldType.number && isBadInput(value, range)) {\n const ruleName = 'badInput';\n const { [ruleName]: validationMessage = $l('Validator', 'bad_input'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage,\n value,\n ruleName,\n });\n }\n return true;\n}\n","import isString from 'lodash/isString';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nexport default async function customError(value, props) {\n const { customValidator, name, record, form } = props;\n if (typeof customValidator === 'function') {\n const result = await customValidator(value, name, record || form);\n if (isString(result) || result === false) {\n return new ValidationResult({\n validationMessage: result || $l('Validator', 'unknown'),\n value,\n ruleName: 'customError',\n });\n }\n }\n return true;\n}\n","import badInput from './badInput';\nimport patternMismatch from './patternMismatch';\nimport rangeOverflow from './rangeOverflow';\nimport rangeUnderflow from './rangeUnderflow';\nimport stepMismatch from './stepMismatch';\nimport tooLong from './tooLong';\nimport tooShort from './tooShort';\nimport typeMismatch from './typeMismatch';\nimport customError from './customError';\nimport uniqueError from './uniqueError';\nconst validationRules = [\n badInput,\n patternMismatch,\n rangeOverflow,\n rangeUnderflow,\n stepMismatch,\n tooLong,\n tooShort,\n typeMismatch,\n customError,\n uniqueError,\n];\nexport default validationRules;\n","import isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nfunction generatePattern(pattern) {\n if (pattern instanceof RegExp) {\n return pattern;\n }\n const begin = pattern.startsWith('^') ? '' : '^';\n const end = pattern.endsWith('$') ? '' : '$';\n return new RegExp(`${begin}${pattern}${end}`);\n}\nexport default function patternMismatch(value, props) {\n const { pattern, defaultValidationMessages } = props;\n if (!isEmpty(value) && !!pattern && !generatePattern(pattern).test(value)) {\n const ruleName = 'patternMismatch';\n const { [ruleName]: validationMessage = $l('Validator', 'pattern_mismatch'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage,\n value,\n ruleName,\n });\n }\n return true;\n}\n","import { isMoment } from 'moment';\nimport isNil from 'lodash/isNil';\nimport isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nimport { toRangeValue } from '../../field/utils';\nconst isOverflow = (value, max, range) => {\n if (range) {\n return toRangeValue(value, range).some(item => !isEmpty(item) && Number(item) > Number(max));\n }\n return !isEmpty(value) && Number(value) > Number(max);\n};\nexport default function rangeOverflow(value, props) {\n const { max, label, format, defaultValidationMessages, range } = props;\n if (!isNil(max) && isOverflow(value, max, range)) {\n const injectionOptions = { max: isMoment(max) ? max.format(format) : max, label };\n const ruleName = 'rangeOverflow';\n const { [ruleName]: validationMessage = $l('Validator', 'range_overflow'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value,\n ruleName,\n });\n }\n return true;\n}\n","import { isMoment } from 'moment';\nimport isNil from 'lodash/isNil';\nimport isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nimport { toRangeValue } from '../../field/utils';\nconst isUnderflow = (value, min, range) => {\n if (range) {\n return toRangeValue(value, range).some(item => !isEmpty(item) && Number(item) < Number(min));\n }\n return !isEmpty(value) && Number(value) < Number(min);\n};\nexport default function rangeUnderflow(value, props) {\n const { min, label, format, defaultValidationMessages, range } = props;\n if (!isNil(min) && isUnderflow(value, min, range)) {\n const injectionOptions = { min: isMoment(min) ? min.format(format) : min, label };\n const ruleName = 'rangeUnderflow';\n const { [ruleName]: validationMessage = $l('Validator', 'range_underflow'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value,\n ruleName,\n });\n }\n return true;\n}\n","import { isMoment } from 'moment';\nimport isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { getNearStepValues } from '../../number-field/utils';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nimport { toRangeValue } from '../../field/utils';\nfunction isStepMismatch(value, step, min, max, range) {\n if (range) {\n let nearStepValues;\n toRangeValue(value, range).every(item => {\n if (!isEmpty(item)) {\n nearStepValues = getNearStepValues(isMoment(item) ? item : Number(item), step, min, max);\n }\n return !nearStepValues;\n });\n return nearStepValues;\n }\n if (!isEmpty(value)) {\n return getNearStepValues(isMoment(value) ? value : Number(value), step, min, max);\n }\n}\nexport default function stepMismatch(value, props) {\n const { step, min, max, defaultValidationMessages, range, format, nonStrictStep } = props;\n if (step !== undefined && nonStrictStep === false) {\n const nearStepValues = isStepMismatch(value, step, min, max, range);\n if (nearStepValues !== undefined) {\n const [before, after] = nearStepValues;\n const injectionOptions = {\n 0: isMoment(before) ? before.format(format) : before,\n 1: isMoment(after) ? after.format(format) : after,\n };\n const ruleName = nearStepValues.length === 2 ? 'stepMismatchBetween' : 'stepMismatch';\n const key = nearStepValues.length === 2 ? 'step_mismatch_between' : 'step_mismatch';\n const { [ruleName]: validationMessage = $l('Validator', key) } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value: isMoment(value) ? value.format(format) : value,\n ruleName,\n });\n }\n }\n return true;\n}\n","import isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nexport default function tooLong(value, props) {\n const { maxLength, defaultValidationMessages } = props;\n if (!isEmpty(value)) {\n const { length } = value.toString();\n if (!!maxLength && maxLength > 0 && length > maxLength) {\n const injectionOptions = { maxLength, length };\n const ruleName = 'tooLong';\n const { [ruleName]: validationMessage = $l('Validator', 'too_long'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value,\n ruleName,\n });\n }\n }\n return true;\n}\n","import isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nexport default function tooShort(value, props) {\n const { minLength, defaultValidationMessages } = props;\n if (!isEmpty(value)) {\n const { length } = value.toString();\n if (!!minLength && minLength > 0 && length < minLength) {\n const injectionOptions = { minLength, length };\n const ruleName = 'tooShort';\n const { [ruleName]: validationMessage = $l('Validator', 'too_short'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value,\n ruleName,\n });\n }\n }\n return true;\n}\n","import { isMoment } from 'moment';\nimport isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { FieldType } from '../../data-set/enum';\nimport { toRangeValue } from '../../field/utils';\n/* eslint-disable */\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))*$/;\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*)?$/;\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}$/;\nconst colorHexReg = /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/;\n/* eslint-enable */\nconst isNotDateIf = (value, range) => {\n if (range) {\n return toRangeValue(value, range).some(item => !isEmpty(item) && (isMoment(item) && !item.isValid()));\n }\n return isMoment(value) && !value.isValid();\n};\nconst isNotDate = (value, range) => {\n if (range) {\n return toRangeValue(value, range).some(item => !isEmpty(item) && (!isMoment(item) || !item.isValid()));\n }\n return !isMoment(value) || !value.isValid();\n};\nconst types = {\n [FieldType.email]: [value => !emailReg.test(value), 'EmailField'],\n [FieldType.url]: [value => !urlReg.test(value), 'UrlField'],\n [FieldType.color]: [\n value => !(colorRgbaReg.test(value) || colorHexReg.test(value)),\n 'ColorPicker',\n ],\n [FieldType.date]: [isNotDate, 'DatePicker'],\n [FieldType.dateTime]: [isNotDate, 'DatePicker'],\n [FieldType.week]: [isNotDate, 'DatePicker'],\n [FieldType.month]: [isNotDate, 'DatePicker'],\n [FieldType.year]: [isNotDate, 'DatePicker'],\n [FieldType.time]: [isNotDate, 'DatePicker'],\n [FieldType.auto]: [isNotDateIf, 'DatePicker'],\n};\nexport default function typeMismatch(value, props) {\n const { type, defaultValidationMessages, range } = props;\n if (!isEmpty(value) && type) {\n const validateType = types[type];\n if (validateType) {\n const [validate, component] = validateType;\n if (validate(value, range)) {\n const ruleName = 'typeMismatch';\n const { [ruleName]: validationMessage = $l(component, 'type_mismatch'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage,\n value,\n ruleName,\n });\n }\n }\n }\n return true;\n}\n","import isString from 'lodash/isString';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport isEmpty from '../../_util/isEmpty';\nimport { axiosConfigAdapter } from '../../data-set/utils';\nimport { FieldType } from '../../data-set/enum';\nexport default async function uniqueError(value, props) {\n const { dataSet, record, unique, name, multiple, range, defaultValidationMessages } = props;\n if (!isEmpty(value) && dataSet && record && unique && name && !multiple && !range) {\n const myField = record.getField(name);\n if (myField && myField.get('type') === FieldType.object) {\n value = value[myField.get('valueField')];\n if (isEmpty(value)) {\n return true;\n }\n }\n if (myField) {\n let { dirty } = myField;\n const fields = { [name]: value };\n if (isString(unique) &&\n [...record.fields.entries()].some(([fieldName, field]) => {\n if (fieldName !== name &&\n field &&\n field.get('unique') === unique &&\n !field.get('multiple') &&\n !field.get('range')) {\n const otherValue = record.get(fieldName);\n if (isEmpty(otherValue)) {\n return true;\n }\n if (!dirty && field.dirty) {\n dirty = true;\n }\n if (field && field.get('type') === FieldType.object) {\n const otherObjectValue = otherValue[field.get('valueField')];\n if (isEmpty(otherObjectValue)) {\n return true;\n }\n fields[fieldName] = otherObjectValue;\n }\n else {\n fields[fieldName] = otherValue;\n }\n }\n return false;\n })) {\n return true;\n }\n if (!dirty) {\n return true;\n }\n let invalid = dataSet.data.some(item => item !== record &&\n Object.keys(fields).every(field => {\n const dataSetField = record.getField(name);\n if (dataSetField && dataSetField.get('type') === FieldType.object) {\n const valueField = dataSetField.get('valueField');\n return fields[field] === item.get(field)[valueField];\n }\n return fields[field] === item.get(field);\n }));\n if (!invalid) {\n const newConfig = axiosConfigAdapter('validate', dataSet, { unique: [fields] });\n if (newConfig.url) {\n const results = await dataSet.axios(newConfig);\n invalid = [].concat(results).some(result => !result);\n }\n }\n if (invalid) {\n const ruleName = 'uniqueError';\n const { [ruleName]: validationMessage = $l('Validator', 'unique'), } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage,\n value,\n ruleName,\n });\n }\n }\n }\n return true;\n}\n","import { isArrayLike } from 'mobx';\nimport isEmpty from '../../_util/isEmpty';\nimport ValidationResult from '../ValidationResult';\nimport { $l } from '../../locale-context';\nimport { formatReactTemplate } from '../../formatter/formatReactTemplate';\nimport { FieldType } from '../../data-set/enum';\nimport { toRangeValue } from '../../field/utils';\nfunction isEmptyArray(value) {\n return isEmpty(value) || (isArrayLike(value) && (value.length === 0 || value.every(item => isEmptyArray(item))));\n}\nexport default function valueMissing(value, props) {\n const { required, label, multiple, range, defaultValidationMessages, type, attachmentCount } = props;\n if (required &&\n (isEmptyArray(value) ||\n (type === FieldType.attachment && !attachmentCount) ||\n (range && (multiple ? value.every(item => isEmptyArray(toRangeValue(item, range))) : isEmptyArray(toRangeValue(value, range)))))) {\n const injectionOptions = { label };\n const key = label ? 'value_missing' : 'value_missing_no_label';\n const ruleName = label ? 'valueMissing' : 'valueMissingNoLabel';\n const { [ruleName]: validationMessage = $l('Validator', key) } = defaultValidationMessages;\n return new ValidationResult({\n validationMessage: formatReactTemplate(validationMessage, injectionOptions),\n injectionOptions,\n value,\n ruleName,\n });\n }\n return true;\n}\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import DatePicker from '../date-picker/DatePicker';\nimport { ViewMode } from '../date-picker/enum';\nexport default class WeekPicker extends DatePicker {\n getWrapperClassNames() {\n const { prefixCls } = this;\n return super.getWrapperClassNames(`${prefixCls}-week-picker-wrapper`);\n }\n}\nWeekPicker.displayName = 'WeekPicker';\nWeekPicker.defaultProps = {\n ...DatePicker.defaultProps,\n mode: ViewMode.week,\n};\n","import WeekPicker from './WeekPicker';\nexport default WeekPicker;\n","// style dependencies\nimport '../../date-picker/style';\n","import DatePicker from '../date-picker/DatePicker';\nimport { ViewMode } from '../date-picker/enum';\nexport default class YearPicker extends DatePicker {\n getWrapperClassNames() {\n const { prefixCls } = this;\n return super.getWrapperClassNames(`${prefixCls}-year-picker-wrapper`);\n }\n}\nYearPicker.displayName = 'YearPicker';\nYearPicker.defaultProps = {\n ...DatePicker.defaultProps,\n mode: ViewMode.year,\n};\n","import YearPicker from './YearPicker';\nexport default YearPicker;\n","// style dependencies\nimport '../../date-picker/style';\n","import { __decorate } from \"tslib\";\nimport { action } from 'mobx';\nimport isObject from 'lodash/isObject';\nimport noop from 'lodash/noop';\nfunction on(el, eventName, handle, handles) {\n if (el.addEventListener) {\n const [fn, options] = handle;\n el.addEventListener(eventName, fn, options);\n }\n else {\n const delegates = [];\n handles.forEach(([, , delegateFn]) => {\n if (el.detachEvent) {\n el.detachEvent(`on${eventName}`, delegateFn);\n delegates.unshift(delegateFn);\n }\n });\n delegates.forEach(delegateFn => {\n if (el.attachEvent) {\n el.attachEvent(`on${eventName}`, delegateFn);\n }\n });\n }\n}\nfunction off(el, eventName, handle) {\n const [fn, options, delegateFn] = handle;\n if (el.removeEventListener) {\n el.removeEventListener(eventName, fn, options);\n }\n else if (el.detachEvent) {\n el.detachEvent(`on${eventName}`, delegateFn);\n }\n}\nfunction isEventListenerOptions(options) {\n return isObject(options);\n}\nfunction isAddEventListenerOptions(options) {\n return isEventListenerOptions(options) && ('once' in options || 'passive' in options);\n}\nfunction getCapture(options) {\n return isEventListenerOptions(options) ? options.capture || false : options;\n}\nfunction isSameHandler(handle, other) {\n const [handleFn, handleOption] = handle;\n const [otherFn, otherOption] = other;\n return handleFn === otherFn && getCapture(handleOption) === getCapture(otherOption);\n}\nfunction callHandler(events, handle, ...rest) {\n const [, options, delegateFn] = handle;\n if (isAddEventListenerOptions(options) && options.once) {\n const index = events.indexOf(handle);\n if (index !== -1) {\n events.splice(index, 1);\n }\n }\n return delegateFn(...rest);\n}\nfunction delegate(fn) {\n if ('handleEvent' in fn) {\n return (...rest) => fn.handleEvent(...rest);\n }\n return (...rest) => fn(...rest);\n}\nexport default class EventManager {\n constructor(el) {\n this.events = {};\n this.el = el;\n }\n addEventListener(eventName, fn, options = false) {\n eventName = eventName.toLowerCase();\n const events = this.events[eventName] || [];\n const index = events.findIndex((handle) => isSameHandler(handle, [fn, options, noop]));\n if (index === -1) {\n const newHandle = [fn, options, delegate(fn)];\n if (getCapture(options)) {\n const captureIndex = events.findIndex(([, handleOptions]) => !getCapture(handleOptions));\n if (captureIndex === -1) {\n events.push(newHandle);\n }\n else {\n events.splice(captureIndex, 0, newHandle);\n }\n }\n else {\n events.push(newHandle);\n }\n this.events[eventName] = events;\n const { el } = this;\n if (el) {\n on(el, eventName, newHandle, events);\n }\n }\n return this;\n }\n removeEventListener(eventName, fn, options = false) {\n eventName = eventName.toLowerCase();\n const events = this.events[eventName];\n if (events) {\n const { el } = this;\n if (fn) {\n const index = events.findIndex(handle => isSameHandler(handle, [fn, options, noop]));\n if (index !== -1) {\n if (el) {\n off(el, eventName, events[index]);\n }\n events.splice(index, 1);\n }\n }\n else {\n this.events[eventName] = el\n ? (this.events[eventName] || []).filter((handle) => {\n off(el, eventName, handle);\n return false;\n })\n : [];\n }\n }\n return this;\n }\n fireEventSync(eventName, ...rest) {\n const events = this.events[eventName.toLowerCase()];\n return events ? [...events].every(handle => callHandler(events, handle, ...rest) !== false) : true;\n }\n fireEvent(eventName, ...rest) {\n const events = this.events[eventName.toLowerCase()];\n return events\n ? Promise.all([...events].map((handle) => callHandler(events, handle, ...rest))).then(all => all.every(result => result !== false))\n : Promise.resolve(true);\n }\n clear() {\n if (this.el) {\n Object.keys(this.events).forEach(eventName => this.removeEventListener(eventName));\n }\n this.events = {};\n return this;\n }\n}\n__decorate([\n action\n], EventManager.prototype, \"fireEventSync\", null);\n__decorate([\n action\n], EventManager.prototype, \"fireEvent\", null);\nexport function preventDefault(e) {\n e.preventDefault();\n}\nexport function stopPropagation(e) {\n e.stopPropagation();\n}\nexport function stopEvent(e) {\n preventDefault(e);\n stopPropagation(e);\n}\n","export default class KeyCode {\n /*\n whether text and modified key is entered at the same time.\n */\n static isTextModifyingKeyEvent(e) {\n const keyCode = e.keyCode;\n if ((e.altKey && !e.ctrlKey) ||\n e.metaKey ||\n // Function keys don't generate text\n (keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12)) {\n return false;\n }\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n }\n /*\n whether character is entered.\n */\n static isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n // Safari sends zero key code for non-latin characters.\n if (keyCode === 0 &&\n typeof window !== 'undefined' &&\n window.navigator.userAgent.indexOf('WebKit') !== -1) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n}\n/**\n * MAC_ENTER\n */\nKeyCode.MAC_ENTER = 3;\n/**\n * BACKSPACE\n */\nKeyCode.BACKSPACE = 8;\n/**\n * TAB\n */\nKeyCode.TAB = 9;\n/**\n * NUMLOCK on FF/Safari Mac\n */\nKeyCode.NUM_CENTER = 12; // NUMLOCK on FF/Safari Mac\n/**\n * ENTER\n */\nKeyCode.ENTER = 13;\n/**\n * SHIFT\n */\nKeyCode.SHIFT = 16;\n/**\n * CTRL\n */\nKeyCode.CTRL = 17;\n/**\n * ALT\n */\nKeyCode.ALT = 18;\n/**\n * PAUSE\n */\nKeyCode.PAUSE = 19;\n/**\n * CAPS_LOCK\n */\nKeyCode.CAPS_LOCK = 20;\n/**\n * ESC\n */\nKeyCode.ESC = 27;\n/**\n * SPACE\n */\nKeyCode.SPACE = 32;\n/**\n * PAGE_UP\n */\nKeyCode.PAGE_UP = 33; // also NUM_NORTH_EAST\n/**\n * PAGE_DOWN\n */\nKeyCode.PAGE_DOWN = 34; // also NUM_SOUTH_EAST\n/**\n * END\n */\nKeyCode.END = 35; // also NUM_SOUTH_WEST\n/**\n * HOME\n */\nKeyCode.HOME = 36; // also NUM_NORTH_WEST\n/**\n * LEFT\n */\nKeyCode.LEFT = 37; // also NUM_WEST\n/**\n * UP\n */\nKeyCode.UP = 38; // also NUM_NORTH\n/**\n * RIGHT\n */\nKeyCode.RIGHT = 39; // also NUM_EAST\n/**\n * DOWN\n */\nKeyCode.DOWN = 40; // also NUM_SOUTH\n/**\n * PRINT_SCREEN\n */\nKeyCode.PRINT_SCREEN = 44;\n/**\n * INSERT\n */\nKeyCode.INSERT = 45; // also NUM_INSERT\n/**\n * DELETE\n */\nKeyCode.DELETE = 46; // also NUM_DELETE\n/**\n * ZERO\n */\nKeyCode.ZERO = 48;\n/**\n * ONE\n */\nKeyCode.ONE = 49;\n/**\n * TWO\n */\nKeyCode.TWO = 50;\n/**\n * THREE\n */\nKeyCode.THREE = 51;\n/**\n * FOUR\n */\nKeyCode.FOUR = 52;\n/**\n * FIVE\n */\nKeyCode.FIVE = 53;\n/**\n * SIX\n */\nKeyCode.SIX = 54;\n/**\n * SEVEN\n */\nKeyCode.SEVEN = 55;\n/**\n * EIGHT\n */\nKeyCode.EIGHT = 56;\n/**\n * NINE\n */\nKeyCode.NINE = 57;\n/**\n * QUESTION_MARK\n */\nKeyCode.QUESTION_MARK = 63; // needs localization\n/**\n * A\n */\nKeyCode.A = 65;\n/**\n * B\n */\nKeyCode.B = 66;\n/**\n * C\n */\nKeyCode.C = 67;\n/**\n * D\n */\nKeyCode.D = 68;\n/**\n * E\n */\nKeyCode.E = 69;\n/**\n * F\n */\nKeyCode.F = 70;\n/**\n * G\n */\nKeyCode.G = 71;\n/**\n * H\n */\nKeyCode.H = 72;\n/**\n * I\n */\nKeyCode.I = 73;\n/**\n * J\n */\nKeyCode.J = 74;\n/**\n * K\n */\nKeyCode.K = 75;\n/**\n * L\n */\nKeyCode.L = 76;\n/**\n * M\n */\nKeyCode.M = 77;\n/**\n * N\n */\nKeyCode.N = 78;\n/**\n * O\n */\nKeyCode.O = 79;\n/**\n * P\n */\nKeyCode.P = 80;\n/**\n * Q\n */\nKeyCode.Q = 81;\n/**\n * R\n */\nKeyCode.R = 82;\n/**\n * S\n */\nKeyCode.S = 83;\n/**\n * T\n */\nKeyCode.T = 84;\n/**\n * U\n */\nKeyCode.U = 85;\n/**\n * V\n */\nKeyCode.V = 86;\n/**\n * W\n */\nKeyCode.W = 87;\n/**\n * X\n */\nKeyCode.X = 88;\n/**\n * Y\n */\nKeyCode.Y = 89;\n/**\n * Z\n */\nKeyCode.Z = 90;\n/**\n * META\n */\nKeyCode.META = 91; // WIN_KEY_LEFT\n/**\n * WIN_KEY_RIGHT\n */\nKeyCode.WIN_KEY_RIGHT = 92;\n/**\n * CONTEXT_MENU\n */\nKeyCode.CONTEXT_MENU = 93;\n/**\n * NUM_ZERO\n */\nKeyCode.NUM_ZERO = 96;\n/**\n * NUM_ONE\n */\nKeyCode.NUM_ONE = 97;\n/**\n * NUM_TWO\n */\nKeyCode.NUM_TWO = 98;\n/**\n * NUM_THREE\n */\nKeyCode.NUM_THREE = 99;\n/**\n * NUM_FOUR\n */\nKeyCode.NUM_FOUR = 100;\n/**\n * NUM_FIVE\n */\nKeyCode.NUM_FIVE = 101;\n/**\n * NUM_SIX\n */\nKeyCode.NUM_SIX = 102;\n/**\n * NUM_SEVEN\n */\nKeyCode.NUM_SEVEN = 103;\n/**\n * NUM_EIGHT\n */\nKeyCode.NUM_EIGHT = 104;\n/**\n * NUM_NINE\n */\nKeyCode.NUM_NINE = 105;\n/**\n * NUM_MULTIPLY\n */\nKeyCode.NUM_MULTIPLY = 106;\n/**\n * NUM_PLUS\n */\nKeyCode.NUM_PLUS = 107;\n/**\n * NUM_MINUS\n */\nKeyCode.NUM_MINUS = 109;\n/**\n * NUM_PERIOD\n */\nKeyCode.NUM_PERIOD = 110;\n/**\n * NUM_DIVISION\n */\nKeyCode.NUM_DIVISION = 111;\n/**\n * F1\n */\nKeyCode.F1 = 112;\n/**\n * F2\n */\nKeyCode.F2 = 113;\n/**\n * F3\n */\nKeyCode.F3 = 114;\n/**\n * F4\n */\nKeyCode.F4 = 115;\n/**\n * F5\n */\nKeyCode.F5 = 116;\n/**\n * F6\n */\nKeyCode.F6 = 117;\n/**\n * F7\n */\nKeyCode.F7 = 118;\n/**\n * F8\n */\nKeyCode.F8 = 119;\n/**\n * F9\n */\nKeyCode.F9 = 120;\n/**\n * F10\n */\nKeyCode.F10 = 121;\n/**\n * F11\n */\nKeyCode.F11 = 122;\n/**\n * F12\n */\nKeyCode.F12 = 123;\n/**\n * NUMLOCK\n */\nKeyCode.NUMLOCK = 144;\n/**\n * SEMICOLON\n */\nKeyCode.SEMICOLON = 186; // needs localization\n/**\n * DASH\n */\nKeyCode.DASH = 189; // needs localization\n/**\n * EQUALS\n */\nKeyCode.EQUALS = 187; // needs localization\n/**\n * COMMA\n */\nKeyCode.COMMA = 188; // needs localization\n/**\n * PERIOD\n */\nKeyCode.PERIOD = 190; // needs localization\n/**\n * SLASH\n */\nKeyCode.SLASH = 191; // needs localization\n/**\n * APOSTROPHE\n */\nKeyCode.APOSTROPHE = 192; // needs localization\n/**\n * SINGLE_QUOTE\n */\nKeyCode.SINGLE_QUOTE = 222; // needs localization\n/**\n * OPEN_SQUARE_BRACKET\n */\nKeyCode.OPEN_SQUARE_BRACKET = 219; // needs localization\n/**\n * BACKSLASH\n */\nKeyCode.BACKSLASH = 220; // needs localization\n/**\n * CLOSE_SQUARE_BRACKET\n */\nKeyCode.CLOSE_SQUARE_BRACKET = 221; // needs localization\n/**\n * WIN_KEY\n */\nKeyCode.WIN_KEY = 224;\n/**\n * MAC_FF_META\n */\nKeyCode.MAC_FF_META = 224; // Firefox (Gecko) fires this for the meta key instead of 91\n/**\n * WIN_IME\n */\nKeyCode.WIN_IME = 229;\n","export default class TaskRunner {\n constructor(fn) {\n this.callbacks = [];\n this.isRunning = false;\n if (fn) {\n this.fn = fn;\n }\n }\n async delay(delay, fn, callback) {\n return this.start(true, delay, fn, callback);\n }\n async run(interval, fn, callback) {\n return this.start(false, interval, fn, callback);\n }\n async start(once, interval, fn, callback) {\n this.cancel();\n if (fn) {\n this.fn = fn;\n }\n if (typeof callback === 'function') {\n this.callbacks.push(callback);\n }\n if (this.fn) {\n this.isRunning = true;\n return new Promise(resolve => {\n this.id = setInterval(() => {\n if (once) {\n this.cancel();\n }\n resolve(this.fn());\n this.callbacks.forEach(cb => cb());\n this.callbacks = [];\n }, interval);\n });\n }\n return Promise.reject(new Error('no caller'));\n }\n cancel() {\n this.isRunning = false;\n if (this.id) {\n clearInterval(this.id);\n delete this.id;\n }\n return this;\n }\n}\n","import { getConfig } from '../configure';\nfunction getTooltipPolyfill(target) {\n switch (target) {\n case 'table-cell':\n return getConfig('tableColumnTooltip');\n case 'button':\n return getConfig('buttonTooltip');\n case 'select-option':\n return getConfig('selectOptionTooltip');\n case 'label':\n return getConfig('labelTooltip');\n default:\n }\n}\nexport function getTooltip(target) {\n const tooltip = getConfig('tooltip');\n if (typeof tooltip === 'function') {\n return tooltip(target);\n }\n return getTooltipPolyfill(target) || tooltip;\n}\nexport function getTooltipTheme(target) {\n const tooltipTheme = getConfig('tooltipTheme');\n if (typeof tooltipTheme === 'function') {\n return tooltipTheme(target);\n }\n if (target === 'validation') {\n const validationTooltipTheme = getConfig('validationTooltipTheme');\n if (validationTooltipTheme) {\n return validationTooltipTheme;\n }\n }\n return tooltipTheme;\n}\n","import isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\nimport cssUnitConverter from 'css-unit-converter';\nexport function pxToRem(num) {\n if (num !== undefined && num !== null) {\n if (num === 0) {\n return '0';\n }\n if (isNumber(num)) {\n return `${num / 100}rem`;\n }\n return num;\n }\n}\nconst builtInHeight = [\n 'auto',\n 'fit-content',\n 'max-content',\n 'min-content',\n 'inherit',\n 'initial',\n 'unset',\n 'revert',\n 'available',\n '-webkit-fit-content',\n '-moz-max-content',\n '-moz-min-content',\n '-moz-initial',\n];\nconst calcReg = /^calc\\(([^()]*)\\)$/;\nconst unitReg = /^(-?[\\d.]+)([^\\d.-]+)$/;\nexport function isCalcSize(num) {\n return num.match(calcReg);\n}\nexport function toPx(num) {\n if (num !== undefined && num !== null) {\n if (isNumber(num)) {\n return num;\n }\n if (isString(num) && !builtInHeight.includes(num) && !num.endsWith('%')) {\n const calcMatches = isCalcSize(num);\n if (calcMatches) {\n try {\n const list = calcMatches[1].split(' ');\n return list.slice(1).reduce((result, calc, index, array) => {\n if (index % 2 === 1) {\n /* eslint-disable-next-line no-eval */\n return eval(`${result}${array[index - 1]}${toPx(calc)}`);\n }\n return result;\n }, toPx(list[0]));\n }\n catch (e) {\n console.error(`Invalid property value in \"${num}\".`);\n return undefined;\n }\n }\n const unitMatches = num.match(unitReg);\n if (unitMatches) {\n const [, n, u] = unitMatches;\n if (n) {\n const number = Number(n);\n if (u && u !== 'px') {\n if (u === 'vh') {\n return document.documentElement.clientHeight * number / 100;\n }\n if (u === 'vw') {\n return document.documentElement.clientWidth * number / 100;\n }\n if (['rem', 'em'].includes(u)) {\n return number * 100;\n }\n try {\n return cssUnitConverter(number, u, 'px');\n }\n catch (e) {\n return undefined;\n }\n }\n return number;\n }\n }\n }\n }\n}\n","/* eslint-disable camelcase */\nimport addDOMEventListener from 'add-dom-event-listener';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb) {\n const callback = unstable_batchedUpdates\n ? function run(e) {\n unstable_batchedUpdates(cb, e);\n }\n : cb;\n return addDOMEventListener(target, eventType, callback);\n}\n","export default function createChains(newProps, oldProps) {\n const chains = {};\n Object.keys(newProps).forEach((key) => {\n const value = newProps[key];\n const oldValue = oldProps[key];\n if (typeof value === 'function' && typeof oldValue === 'function') {\n chains[key] = (...args) => {\n value(...args);\n return oldValue(...args);\n };\n }\n });\n return {\n ...newProps,\n ...chains,\n };\n}\n","export var Size;\n(function (Size) {\n Size[\"default\"] = \"default\";\n Size[\"small\"] = \"small\";\n Size[\"large\"] = \"large\";\n})(Size || (Size = {}));\n","let animation;\nfunction isCssAnimationSupported() {\n if (animation !== undefined) {\n return animation;\n }\n const domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');\n const elm = document.createElement('div');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n if (animation !== undefined) {\n for (let i = 0; i < domPrefixes.length; i++) {\n if (elm.style[`${domPrefixes[i]}AnimationName`] !== undefined) {\n animation = true;\n break;\n }\n }\n }\n animation = animation || false;\n return animation;\n}\nexport default isCssAnimationSupported;\n","let flexSupported;\nexport default function isFlexSupported() {\n if (flexSupported !== undefined) {\n return flexSupported;\n }\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n const { documentElement } = window.document;\n flexSupported = 'flex' in documentElement.style ||\n 'webkitFlex' in documentElement.style ||\n 'Flex' in documentElement.style ||\n 'msFlex' in documentElement.style;\n return flexSupported;\n }\n return false;\n}\n","let scrollbarWidth;\nlet rootFontSize = 100;\nfunction getRootFontSize() {\n if (typeof window !== 'undefined' && document.defaultView) {\n const { fontSize } = document.defaultView.getComputedStyle(document.documentElement);\n if (fontSize !== null) {\n return parseFloat(fontSize);\n }\n }\n return 100;\n}\nexport default function measureScrollbar(direction = 'vertical') {\n if (typeof window === 'undefined') {\n return 0;\n }\n const fontSize = getRootFontSize();\n if (scrollbarWidth && fontSize === rootFontSize) {\n return scrollbarWidth;\n }\n rootFontSize = fontSize;\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'position: absolute;width: 50px;height: 50px;top: -9999px; overflow: scroll';\n document.body.appendChild(scrollDiv);\n let size = 0;\n if (direction === 'vertical') {\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n }\n else if (direction === 'horizontal') {\n size = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n }\n document.body.removeChild(scrollDiv);\n scrollbarWidth = size / fontSize * 100;\n return scrollbarWidth;\n}\n","export const matchMediaPolifill = (mediaQuery) => {\n // console.warn('`matchMedia` is not supported!');\n return {\n media: mediaQuery,\n matches: false,\n addListener() { },\n removeListener() { },\n };\n};\n","import cssAnimation from 'css-animation';\nimport raf from 'raf';\nfunction animate(node, show, done) {\n let height;\n let requestAnimationFrameId;\n return cssAnimation(node, 'c7n-motion-collapse', {\n start() {\n if (!show) {\n node.style.height = `${node.offsetHeight}px`;\n node.style.opacity = '1';\n }\n else {\n height = node.offsetHeight;\n node.style.height = '0px';\n node.style.opacity = '0';\n }\n },\n active() {\n if (requestAnimationFrameId) {\n raf.cancel(requestAnimationFrameId);\n }\n requestAnimationFrameId = raf(() => {\n node.style.height = `${show ? height : 0}px`;\n node.style.opacity = show ? '1' : '0';\n });\n },\n end() {\n if (requestAnimationFrameId) {\n raf.cancel(requestAnimationFrameId);\n }\n node.style.height = '';\n node.style.opacity = '';\n done();\n },\n });\n}\nconst animation = {\n enter(node, done) {\n return animate(node, true, done);\n },\n leave(node, done) {\n return animate(node, false, done);\n },\n appear(node, done) {\n return animate(node, true, done);\n },\n};\nexport default animation;\n","import * as React from 'react';\nexport const { isValidElement } = React;\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element))\n return replacement;\n return React.cloneElement(element, typeof props === 'function' ? props() : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}\n","import { PureComponent } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport ResizeObserver from 'resize-observer-polyfill';\nclass ReactResizeObserver extends PureComponent {\n constructor() {\n super(...arguments);\n this.resizeObserver = null;\n this.width = 0;\n this.height = 0;\n this.onResize = (entries) => {\n const { onResize, resizeProp, boxSize } = this.props;\n const entry = entries[0];\n const { target, contentRect, } = entry;\n const { borderBoxSize } = entry;\n const borderBox = borderBoxSize && borderBoxSize[0];\n const isBorderBox = boxSize === 'borderBox';\n const { width, height } = (() => {\n if (isBorderBox) {\n if (borderBox) {\n return { width: borderBox.inlineSize, height: borderBox.blockSize };\n }\n return target.getBoundingClientRect();\n }\n return contentRect;\n })();\n const fixedWidth = Math.floor(width);\n const fixedHeight = Math.floor(height);\n if ((this.width !== fixedWidth && ['width', 'both'].includes(resizeProp)) ||\n (this.height !== fixedHeight && ['height', 'both'].includes(resizeProp))) {\n this.width = fixedWidth;\n this.height = fixedHeight;\n if (onResize) {\n onResize(fixedWidth, fixedHeight, target);\n }\n }\n };\n }\n componentDidMount() {\n this.onComponentUpdated();\n }\n componentDidUpdate() {\n this.onComponentUpdated();\n }\n componentWillUnmount() {\n this.destroyObserver();\n }\n onComponentUpdated() {\n const { disabled } = this.props;\n const element = findDOMNode(this);\n if (!this.resizeObserver && !disabled && element) {\n // Add resize observer\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n const { onResize, immediately } = this.props;\n if (immediately && onResize) {\n onResize(element.offsetWidth, element.offsetHeight, element);\n }\n }\n else if (disabled) {\n // Remove resize observer\n this.destroyObserver();\n }\n }\n destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n render() {\n const { children = null } = this.props;\n return children;\n }\n}\nReactResizeObserver.defaultProps = {\n resizeProp: 'both',\n boxSize: 'borderBox',\n};\nexport default ReactResizeObserver;\n","import warning from 'warning';\nconst warned = {};\nexport default (valid, message) => {\n if (!valid && !warned[message]) {\n warning(false, message);\n warned[message] = true;\n }\n};\n","import { cloneElement, Component, isValidElement } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport noop from 'lodash/noop';\nimport { getDocument } from 'choerodon-ui/pro/lib/_util/DocumentUtils';\nimport domAlign from './domAlign';\nimport EventManager from '../_util/EventManager';\nimport TaskRunner from '../_util/TaskRunner';\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nfunction isChildrenFunction(fn) {\n return typeof fn === 'function';\n}\nexport default class Align extends Component {\n constructor() {\n super(...arguments);\n this.saveSourceRef = (node) => {\n this.source = node;\n const { childrenRef } = this.props;\n if (childrenRef) {\n childrenRef(node);\n }\n };\n }\n forceAlign() {\n const { hidden, onAlign = noop, target = () => getDocument(window).body, align } = this.props;\n if (!hidden) {\n const { source = findDOMNode(this) } = this;\n const ref = target();\n const result = domAlign(source, ref, align);\n const translate = {\n x: 0,\n y: 0,\n };\n const { points, overflow: { adjustX, adjustY } } = result;\n if (source && ref && (adjustX || adjustY) && (points.includes('bc') || points.includes('tc'))) {\n const r1 = source.getBoundingClientRect();\n const r2 = ref.getBoundingClientRect();\n if (adjustX) {\n translate.x = r1.left + r1.width / 2 - r2.left - r2.width / 2;\n }\n if (adjustY) {\n translate.y = r1.top + r1.height / 2 - r2.top - r2.height / 2;\n }\n }\n onAlign(source, result, ref, translate);\n }\n }\n componentDidMount() {\n const { hidden, monitorWindowResize } = this.props;\n this.forceAlign();\n if (!hidden && monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n }\n componentDidUpdate(prevProps) {\n const { hidden, align, target = () => window, monitorWindowResize } = this.props;\n const { hidden: preHidden, align: preAlign, target: preTarget } = prevProps;\n let reAlign = false;\n if (!hidden) {\n if (preHidden || preAlign !== align) {\n reAlign = true;\n }\n else {\n const lastTarget = preTarget();\n const currentTarget = target();\n if (isWindow(lastTarget) && isWindow(currentTarget)) {\n reAlign = false;\n }\n else if (lastTarget !== currentTarget) {\n reAlign = true;\n }\n }\n }\n if (reAlign) {\n this.forceAlign();\n }\n if (monitorWindowResize && !hidden) {\n this.startMonitorWindowResize();\n }\n else {\n this.stopMonitorWindowResize();\n }\n }\n componentWillUnmount() {\n this.stopMonitorWindowResize();\n }\n startMonitorWindowResize() {\n const { monitorBufferTime } = this.props;\n if (!this.resizeHandler) {\n this.resizeHandler = new EventManager(window);\n this.bufferMonitor = new TaskRunner();\n this.resizeHandler.addEventListener('resize', this.bufferMonitor.delay.bind(this.bufferMonitor, monitorBufferTime, this.forceAlign.bind(this)));\n }\n }\n stopMonitorWindowResize() {\n if (this.resizeHandler) {\n if (this.bufferMonitor) {\n this.bufferMonitor.cancel();\n }\n this.resizeHandler.clear();\n this.resizeHandler = null;\n }\n }\n render() {\n const { props } = this;\n const { childrenProps, children } = props;\n const node = isChildrenFunction(children) ? children(this.saveSourceRef) : children;\n if (childrenProps && isValidElement(node)) {\n const newProps = {};\n Object.keys(childrenProps).forEach(prop => {\n if ({}.hasOwnProperty.call(childrenProps, prop)) {\n newProps[prop] = props[childrenProps[prop]];\n }\n });\n return cloneElement(node, newProps);\n }\n return node;\n }\n}\nAlign.displayName = 'Align';\nAlign.propTypes = {\n childrenProps: PropTypes.object,\n childrenRef: PropTypes.func,\n align: PropTypes.object.isRequired,\n target: PropTypes.func,\n onAlign: PropTypes.func,\n monitorBufferTime: PropTypes.number,\n monitorWindowResize: PropTypes.bool,\n hidden: PropTypes.bool,\n children: PropTypes.any,\n};\nAlign.defaultProps = {\n monitorBufferTime: 50,\n monitorWindowResize: false,\n hidden: true,\n};\n","import { getDocument, getMousePosition } from 'choerodon-ui/pro/lib/_util/DocumentUtils';\nimport { pxToRem } from '../_util/UnitConvertor';\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right);\n}\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom);\n}\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left);\n}\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top);\n}\nfunction getVisibleRectForElement() {\n const body = getDocument(window).body;\n return {\n top: 0,\n right: body.clientWidth,\n bottom: body.clientHeight,\n left: 0,\n };\n}\nfunction getRegion(node) {\n const rect = node.getBoundingClientRect();\n const { ownerDocument } = node;\n const defaultView = ownerDocument ? ownerDocument.defaultView : null;\n const position = defaultView ? getMousePosition(rect.left, rect.top, defaultView, true) : { x: rect.left, y: rect.top };\n return {\n top: position.y,\n left: position.x,\n width: rect.width,\n height: rect.height,\n };\n}\nfunction isOutOfVisibleRect(target) {\n const visibleRect = getVisibleRectForElement();\n const targetRegion = getRegion(target);\n return (!visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom);\n}\nfunction flip(points, reg, map) {\n return points.map(p => p.replace(reg, m => map[m]));\n}\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n let x = region.left;\n let y = region.top;\n if (V === 'c') {\n y += h / 2;\n }\n else if (V === 'b') {\n y += h;\n }\n if (H === 'c') {\n x += w / 2;\n }\n else if (H === 'r') {\n x += w;\n }\n return {\n left: x,\n top: y,\n };\n}\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: elRegion.left - diff[0] + offset[0] - targetOffset[0],\n top: elRegion.top - diff[1] + offset[1] - targetOffset[1],\n };\n}\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = { ...elFuturePos };\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n return Object.assign(pos, size);\n}\n// function isFixedPosition(node: HTMLElement): boolean {\n// const { offsetParent, ownerDocument } = node;\n// if (\n// ownerDocument &&\n// offsetParent === ownerDocument.body &&\n// ownerDocument.defaultView &&\n// ownerDocument.defaultView.getComputedStyle(node).position !== 'fixed'\n// ) {\n// return false;\n// }\n// if (offsetParent) {\n// return isFixedPosition(offsetParent as HTMLElement);\n// }\n// return true;\n// }\nexport default function (el, refNode, align) {\n let points = align.points;\n let offset = (align.offset || [0, 0]).slice();\n let targetOffset = (align.targetOffset || [0, 0]).slice();\n const overflow = align.overflow || {};\n const target = align.target || refNode;\n const source = align.source || el;\n const newOverflowCfg = {};\n let fail = 0;\n const visibleRect = getVisibleRectForElement();\n const elRegion = getRegion(source);\n const refNodeRegion = getRegion(target);\n let elFuturePos = getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset);\n let newElRegion = Object.assign(elRegion, elFuturePos);\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(target);\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTargetNotOutOfVisible) {\n if (overflow.adjustX) {\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n if (overflow.adjustY) {\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n const _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n const _newOffset = flipOffset(offset, 1);\n const _newTargetOffset = flipOffset(targetOffset, 1);\n const _newElFuturePos = getElFuturePos(elRegion, refNodeRegion, _newPoints, _newOffset, _newTargetOffset);\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n }\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset);\n Object.assign(newElRegion, elFuturePos);\n }\n newOverflowCfg.adjustX = overflow.adjustX && isFailX(elFuturePos, elRegion, visibleRect);\n newOverflowCfg.adjustY = overflow.adjustY && isFailY(elFuturePos, elRegion, visibleRect);\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n const { width, height } = newElRegion;\n if (width !== elRegion.width) {\n source.style.width = width ? pxToRem(width) : '0';\n }\n if (height !== elRegion.height) {\n source.style.height = height ? pxToRem(height) : '0';\n }\n // const isTargetFixed = isFixedPosition(target);\n const { offsetParent } = source;\n if (offsetParent) {\n const { left, top } = offsetParent.getBoundingClientRect();\n newElRegion.left -= left;\n newElRegion.top -= top;\n }\n Object.assign(source.style, {\n left: pxToRem(newElRegion.left),\n top: pxToRem(newElRegion.top),\n });\n // if (isTargetFixed) {\n // source.style.position = 'fixed';\n // } else {\n // source.style.position = '';\n // }\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n","import Align from './Align';\nexport default Align;\n","import { cloneElement, PureComponent, createElement, isValidElement, } from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport noop from 'lodash/noop';\nimport { findChildInChildrenByKey, findShownChildInChildrenByKey, isSameChildren, mergeChildren, toArrayChildren, } from './ChildrenUtils';\nimport AnimateChild from './AnimateChild';\nimport animUtil from './util';\nconst defaultKey = `animate_${Date.now()}`;\nfunction getChildrenFromProps(props) {\n const { children } = props;\n if (isValidElement(children)) {\n if (!children.key) {\n return cloneElement(children, {\n key: defaultKey,\n });\n }\n }\n return children;\n}\nexport default class Animate extends PureComponent {\n constructor() {\n super(...arguments);\n this.currentlyAnimatingKeys = {};\n this.keysToEnter = [];\n this.keysToLeave = [];\n this.state = {\n children: toArrayChildren(getChildrenFromProps(this.props)),\n };\n this.childrenRefs = {};\n this.performEnter = (key) => {\n const childRef = this.childrenRefs[key];\n if (childRef) {\n this.currentlyAnimatingKeys[key] = true;\n childRef.componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));\n }\n };\n this.performAppear = (key) => {\n const childRef = this.childrenRefs[key];\n if (childRef) {\n this.currentlyAnimatingKeys[key] = true;\n childRef.componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));\n }\n };\n this.handleDoneAdding = (key, type, childRef) => {\n const { props } = this;\n const { exclusive, onAppear = noop, onEnd = noop, onEnter = noop } = props;\n delete this.currentlyAnimatingKeys[key];\n if (exclusive && props !== this.nextProps) {\n return;\n }\n if (!this.isValidChildByKey(toArrayChildren(getChildrenFromProps(props)), key)) {\n this.performLeave(key);\n }\n else if (type === 'appear') {\n if (animUtil.allowAppearCallback(props)) {\n onAppear(key, childRef);\n onEnd(key, true, childRef);\n }\n }\n else if (animUtil.allowEnterCallback(props)) {\n onEnter(key, childRef);\n onEnd(key, true, childRef);\n }\n };\n this.performLeave = (key) => {\n const childRef = this.childrenRefs[key];\n if (childRef) {\n this.currentlyAnimatingKeys[key] = true;\n childRef.componentWillLeave(this.handleDoneLeaving.bind(this, key));\n }\n };\n this.handleDoneLeaving = (key, childRef) => {\n const { props, state: { children }, } = this;\n const { exclusive, onEnd = noop, onLeave = noop, hiddenProp } = props;\n delete this.currentlyAnimatingKeys[key];\n if (exclusive && props !== this.nextProps) {\n return;\n }\n const currentChildren = toArrayChildren(getChildrenFromProps(props));\n if (this.isValidChildByKey(currentChildren, key)) {\n this.performEnter(key);\n }\n else {\n const end = () => {\n if (animUtil.allowLeaveCallback(props)) {\n onLeave(key, childRef);\n onEnd(key, false, childRef);\n }\n };\n if (!isSameChildren(children, currentChildren, hiddenProp)) {\n this.setState({\n children: currentChildren,\n }, end);\n }\n else {\n end();\n }\n }\n };\n }\n componentDidMount() {\n const { hiddenProp } = this.props;\n let { children } = this.state;\n if (hiddenProp) {\n children = children.filter(child => !child.props[hiddenProp]);\n }\n children.forEach(child => {\n if (child && child.key) {\n this.performAppear(child.key);\n }\n });\n }\n componentWillReceiveProps(nextProps) {\n this.nextProps = nextProps;\n const nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\n const { exclusive, hiddenProp } = this.props;\n const { children } = this.state;\n const currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n if (exclusive) {\n Object.keys(currentlyAnimatingKeys).forEach(key => this.stop(key));\n }\n const currentChildren = exclusive\n ? toArrayChildren(getChildrenFromProps(this.props))\n : children;\n let newChildren = [];\n if (hiddenProp) {\n nextChildren.forEach(nextChild => {\n if (nextChild) {\n let newChild;\n const currentChild = findChildInChildrenByKey(currentChildren, nextChild.key);\n if (nextChild.props[hiddenProp] && currentChild && !currentChild.props[hiddenProp]) {\n newChild = cloneElement(nextChild, { [hiddenProp]: false });\n }\n else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n }\n });\n newChildren = mergeChildren(currentChildren, newChildren);\n }\n else {\n newChildren = mergeChildren(currentChildren, nextChildren);\n }\n this.setState({\n children: newChildren,\n });\n nextChildren.forEach(child => {\n const key = child && child.key;\n if (key) {\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n const hasPrev = child && findChildInChildrenByKey(currentChildren, key);\n if (hiddenProp) {\n const showInNext = !child.props[hiddenProp];\n if (hasPrev) {\n const showInNow = findShownChildInChildrenByKey(currentChildren, key, hiddenProp);\n if (!showInNow && showInNext) {\n this.keysToEnter.push(key);\n }\n }\n else if (showInNext) {\n this.keysToEnter.push(key);\n }\n }\n else if (!hasPrev) {\n this.keysToEnter.push(key);\n }\n }\n });\n currentChildren.forEach(child => {\n const key = child && child.key;\n if (key) {\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n const hasNext = child && findChildInChildrenByKey(nextChildren, key);\n if (hiddenProp) {\n const showInNow = !child.props[hiddenProp];\n if (hasNext) {\n const showInNext = findShownChildInChildrenByKey(nextChildren, key, hiddenProp);\n if (!showInNext && showInNow) {\n this.keysToLeave.push(key);\n }\n }\n else if (showInNow) {\n this.keysToLeave.push(key);\n }\n }\n else if (!hasNext) {\n this.keysToLeave.push(key);\n }\n }\n });\n }\n componentDidUpdate() {\n const keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n const keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n isValidChildByKey(currentChildren, key) {\n const { hiddenProp } = this.props;\n if (hiddenProp) {\n return !!findShownChildInChildrenByKey(currentChildren, key, hiddenProp);\n }\n return !!findChildInChildrenByKey(currentChildren, key);\n }\n stop(key) {\n delete this.currentlyAnimatingKeys[key];\n const component = this.childrenRefs[key];\n if (component) {\n component.stop();\n }\n }\n render() {\n const { props } = this;\n this.nextProps = props;\n const { animation, transitionName, transitionEnter, transitionAppear, transitionLeave, component: Cmp, componentProps, ...otherProps } = props;\n const { children: stateChildren } = this.state;\n let children = [];\n if (stateChildren) {\n children = stateChildren.map(child => {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for animate children');\n }\n return createElement(AnimateChild, {\n key: child.key,\n ref: node => {\n if (child.key) {\n this.childrenRefs[child.key] = node;\n }\n },\n animation,\n transitionName,\n transitionEnter,\n transitionAppear,\n transitionLeave,\n }, child);\n });\n }\n if (Cmp) {\n const passedProps = omit(otherProps, [\n 'exclusive',\n 'onEnd',\n 'onEnter',\n 'onLeave',\n 'onAppear',\n 'hiddenProp',\n ]);\n return createElement(Cmp, {\n ...passedProps,\n ...componentProps,\n }, children);\n }\n return children[0] || null;\n }\n}\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n hiddenProp: PropTypes.string,\n};\nAnimate.defaultProps = {\n component: 'span',\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n};\n","import { cloneElement, isValidElement, PureComponent } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport isEqual from 'lodash/isEqual';\nimport omit from 'lodash/omit';\nimport PropTypes from 'prop-types';\nimport cssAnimate, { isCssAnimationSupported } from 'css-animation';\nimport animUtil from './util';\nconst transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave',\n};\nexport default class AnimateChild extends PureComponent {\n componentWillUnmount() {\n this.stop();\n }\n componentWillEnter(done) {\n if (animUtil.isEnterSupported(this.props)) {\n this.transition('enter', done);\n }\n else {\n done(this);\n }\n }\n componentWillAppear(done) {\n if (animUtil.isAppearSupported(this.props)) {\n this.transition('appear', done);\n }\n else {\n done(this);\n }\n }\n componentWillLeave(done) {\n if (animUtil.isLeaveSupported(this.props)) {\n this.transition('leave', done);\n }\n else {\n done(this);\n }\n }\n transition(animationType, finishCallback) {\n const node = findDOMNode(this);\n if (node) {\n const { props } = this;\n const { transitionName, animation = {} } = props;\n const nameIsObj = typeof transitionName === 'object';\n this.stop();\n const end = () => {\n this.stopper = null;\n finishCallback(this);\n };\n if ((isCssAnimationSupported || !animation[animationType]) &&\n transitionName &&\n props[transitionMap[animationType]]) {\n const name = nameIsObj\n ? transitionName[animationType]\n : `${transitionName}-${animationType}`;\n let activeName = `${name}-active`;\n if (nameIsObj && transitionName[`${animationType}Active`]) {\n activeName = transitionName[`${animationType}Active`];\n }\n this.stopper = cssAnimate(node, {\n name,\n active: activeName,\n }, end);\n }\n else {\n this.stopper = animation[animationType](node, end);\n }\n }\n }\n stop() {\n const { stopper } = this;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n }\n getStyle(style) {\n if (isEqual(style, this.style)) {\n return this.style;\n }\n this.style = style;\n return style;\n }\n render() {\n const { children, ...otherProps } = this.props;\n if (isValidElement(children)) {\n const props = omit(otherProps, [\n 'animation',\n 'transitionName',\n 'transitionEnter',\n 'transitionAppear',\n 'transitionLeave',\n ]);\n const { style } = children.props;\n return cloneElement(children, { ...props, style: this.getStyle({ ...props.style, ...style }) });\n }\n return children;\n }\n}\nAnimateChild.displayName = 'AnimateChild';\nAnimateChild.propTypes = {\n children: PropTypes.any,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n};\n","import { Children, isValidElement } from 'react';\nexport function toArrayChildren(children) {\n const ret = [];\n Children.forEach(children, child => {\n if (isValidElement(child)) {\n ret.push(child);\n }\n });\n return ret;\n}\nexport function findChildInChildrenByKey(children, key) {\n if (children) {\n return children.find(child => child && child.key === key);\n }\n}\nexport function findShownChildInChildrenByKey(children, key, hiddenProp) {\n let ret;\n if (children) {\n children.forEach(child => {\n if (child && child.key === key && !child.props[hiddenProp]) {\n if (ret) {\n throw new Error('two child with same key for animate children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n// export function findHiddenChildInChildrenByKey(children, key, showProp):boolean {\n// let found = false;\n// if (children) {\n// children.forEach(function (child) {\n// if (found) {\n// return;\n// }\n// found = child && child.key === key && !child.props[showProp];\n// });\n// }\n// return found;\n// }\nexport function isSameChildren(c1, c2, hiddenProp) {\n let same = c1.length === c2.length;\n if (same) {\n c1.forEach((child, index) => {\n const child2 = c2[index];\n if (child && child2) {\n if ((child && !child2) || (!child && child2)) {\n same = false;\n }\n else if (child.key !== child2.key) {\n same = false;\n }\n else if (hiddenProp && child.props[hiddenProp] !== child2.props[hiddenProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\nexport function mergeChildren(prev, next) {\n let ret = [];\n const nextChildrenPending = {};\n let pendingChildren = [];\n prev.forEach(child => {\n if (child && child.key && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n }\n else {\n pendingChildren.push(child);\n }\n });\n next.forEach(child => {\n if (child && child.key && {}.hasOwnProperty.call(nextChildrenPending, child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n return ret.concat(pendingChildren);\n}\n","import Animate from './Animate';\nexport default Animate;\n","// empty file prevent babel-plugin-import error\nimport '../../style/index.less';\n","export default {\n isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || (props.animation && props.animation.appear);\n },\n isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || (props.animation && props.animation.enter);\n },\n isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || (props.animation && props.animation.leave);\n },\n allowAppearCallback(props) {\n return props.transitionAppear || (props.animation && props.animation.appear);\n },\n allowEnterCallback(props) {\n return props.transitionEnter || (props.animation && props.animation.enter);\n },\n allowLeaveCallback(props) {\n return props.transitionLeave || (props.animation && props.animation.leave);\n },\n};\n","import React, { Component, createElement } from 'react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport { getPrefixCls } from '../configure';\nfunction getNumberArray(num) {\n return num\n ? num\n .toString()\n .split('')\n .reverse()\n .map(i => Number(i))\n : [];\n}\nexport default class ScrollNumber extends Component {\n constructor(props) {\n super(props);\n this.renderCurrentNumber = (num, i) => {\n const position = this.getPositionByNum(num, i);\n const { animateStarted } = this.state;\n const removeTransition = animateStarted || getNumberArray(this.lastCount)[i] === undefined;\n return createElement('span', {\n className: `${this.getPrefixCls()}-only`,\n style: {\n transition: removeTransition && 'none',\n msTransform: `translateY(${-position * 100}%)`,\n WebkitTransform: `translateY(${-position * 100}%)`,\n transform: `translateY(${-position * 100}%)`,\n },\n key: i,\n }, this.renderNumberList(position));\n };\n this.state = {\n animateStarted: true,\n count: props.count,\n };\n }\n getPositionByNum(num, i) {\n const { animateStarted, count } = this.state;\n if (animateStarted) {\n return 10 + num;\n }\n const currentDigit = getNumberArray(count)[i];\n const lastDigit = getNumberArray(this.lastCount)[i];\n // 同方向则在同一侧切换数字\n if (count > this.lastCount) {\n if (currentDigit >= lastDigit) {\n return 10 + num;\n }\n return 20 + num;\n }\n if (currentDigit <= lastDigit) {\n return 10 + num;\n }\n return num;\n }\n componentWillReceiveProps(nextProps) {\n if ('count' in nextProps) {\n const { count } = this.state;\n if (count === nextProps.count) {\n return;\n }\n this.lastCount = count;\n // 复原数字初始位置\n this.setState({\n animateStarted: true,\n }, () => {\n // 等待数字位置复原完毕\n // 开始设置完整的数字\n setTimeout(() => {\n this.setState({\n animateStarted: false,\n count: nextProps.count,\n }, () => {\n const { onAnimated } = this.props;\n if (onAnimated) {\n onAnimated();\n }\n });\n }, 5);\n });\n }\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('scroll-number', prefixCls);\n }\n renderNumberList(position) {\n const childrenToReturn = [];\n for (let i = 0; i < 30; i++) {\n const currentClassName = position === i ? 'current' : '';\n childrenToReturn.push(React.createElement(\"p\", { key: i.toString(), className: currentClassName }, i % 10));\n }\n return childrenToReturn;\n }\n renderNumberElement() {\n const state = this.state;\n if (!state.count || isNaN(state.count)) {\n return state.count;\n }\n return getNumberArray(state.count)\n .map(this.renderCurrentNumber)\n .reverse();\n }\n render() {\n const { className, style, component = 'sup' } = this.props;\n const restProps = omit(this.props, ['count', 'onAnimated', 'component', 'prefixCls']);\n const newProps = {\n ...restProps,\n className: classNames(this.getPrefixCls(), className),\n };\n if (style && style.borderColor) {\n newProps.style.boxShadow = `0 0 0 1px ${style.borderColor} inset`;\n }\n return createElement(component, newProps, this.renderNumberElement());\n }\n}\nScrollNumber.displayName = 'ScrollNumber';\nScrollNumber.defaultProps = {\n count: null,\n onAnimated() { },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ScrollNumber from './ScrollNumber';\nimport Animate from '../animate';\nimport { getPrefixCls } from '../configure';\nexport { ScrollNumberProps } from './ScrollNumber';\nexport default function Badge(props) {\n const { count, showZero, prefixCls: customizePrefixCls, scrollNumberPrefixCls, overflowCount, className, style, children, dot, status, text, offset, ...restProps } = props;\n const prefixCls = getPrefixCls('badge', customizePrefixCls);\n let displayCount = count > overflowCount ? `${overflowCount}+` : count;\n const isZero = displayCount === '0' || displayCount === 0;\n const isDot = (dot && !isZero) || status;\n // dot mode don't need count\n if (isDot) {\n displayCount = '';\n }\n const isEmpty = displayCount === null || displayCount === undefined || displayCount === '';\n const hidden = (isEmpty || (isZero && !showZero)) && !isDot;\n const statusCls = classNames({\n [`${prefixCls}-status-dot`]: !!status,\n [`${prefixCls}-status-${status}`]: !!status,\n });\n const scrollNumberCls = classNames({\n [`${prefixCls}-dot`]: isDot,\n [`${prefixCls}-count`]: !isDot,\n [`${prefixCls}-multiple-words`]: !isDot && count && count.toString && count.toString().length > 1,\n [`${prefixCls}-status-${status}`]: !!status,\n });\n const badgeCls = classNames(className, prefixCls, {\n [`${prefixCls}-status`]: !!status,\n [`${prefixCls}-not-a-wrapper`]: !children,\n });\n const styleWithOffset = offset\n ? {\n marginTop: offset[0],\n marginLeft: offset[1],\n ...style,\n }\n : style;\n // <Badge status=\"success\" />\n if (!children && status) {\n return (React.createElement(\"span\", { className: badgeCls, style: styleWithOffset },\n React.createElement(\"span\", { className: statusCls }),\n React.createElement(\"span\", { className: `${prefixCls}-status-text` }, text)));\n }\n const scrollNumber = hidden ? null : (React.createElement(ScrollNumber, { prefixCls: getPrefixCls('scroll-number', scrollNumberPrefixCls), hidden: hidden, className: scrollNumberCls, count: displayCount, title: count, style: styleWithOffset }));\n const statusText = hidden || !text ? null : React.createElement(\"span\", { className: `${prefixCls}-status-text` }, text);\n return (React.createElement(\"span\", Object.assign({}, restProps, { className: badgeCls }),\n children,\n React.createElement(Animate, { component: \"\", hiddenProp: \"hidden\", transitionName: children ? `${prefixCls}-zoom` : '', transitionAppear: true }, scrollNumber),\n statusText));\n}\nBadge.displayName = 'Badge';\nBadge.defaultProps = {\n count: null,\n showZero: false,\n dot: false,\n overflowCount: 99,\n};\nBadge.propTypes = {\n count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n showZero: PropTypes.bool,\n dot: PropTypes.bool,\n overflowCount: PropTypes.number,\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import React, { Children, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport Icon from '../icon';\nimport Ripple from '../ripple';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nimport { ProgressType } from '../progress/enum';\nimport Progress from '../progress';\nexport default class Button extends Component {\n constructor(props) {\n super(props);\n this.handleClick = e => {\n clearTimeout(this.timeout);\n this.timeout = window.setTimeout(() => this.setState({ clicked: false }), 500);\n const { onClick } = this.props;\n if (onClick) {\n onClick(e);\n }\n };\n this.state = {\n loading: props.loading,\n clicked: false,\n };\n }\n componentWillReceiveProps(nextProps) {\n const { loading: currentLoading } = this.props;\n const { loading } = nextProps;\n if (currentLoading) {\n clearTimeout(this.delayTimeout);\n }\n if (typeof loading !== 'boolean' && loading && loading.delay) {\n this.delayTimeout = window.setTimeout(() => this.setState({ loading }), loading.delay);\n }\n else {\n this.setState({ loading });\n }\n }\n componentWillUnmount() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n }\n render() {\n const { prefixCls: customizePrefixCls, type, shape, size, className, htmlType, children, icon, ghost, funcType, onMouseEnter, onMouseLeave, disabled, ...others } = this.props;\n const { loading, clicked } = this.state;\n const prefixCls = getPrefixCls('btn', customizePrefixCls);\n // large => lg\n // small => sm\n let sizeCls = '';\n switch (size) {\n case Size.large:\n sizeCls = 'lg';\n break;\n case Size.small:\n sizeCls = 'sm';\n break;\n default:\n }\n const ComponentProp = others.href ? 'a' : 'button';\n const classes = classNames(prefixCls, className, {\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-${shape}`]: shape,\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-icon-only`]: !children && icon,\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-clicked`]: clicked,\n [`${prefixCls}-background-ghost`]: ghost,\n [`${prefixCls}-${funcType}`]: funcType,\n });\n let iconNode = icon ? React.createElement(Icon, { type: icon }) : null;\n iconNode = loading ? (React.createElement(Progress, { key: \"loading\", type: ProgressType.loading, size: Size.small })) : (iconNode);\n const kids = children || children === 0\n ? Children.map(children, child => {\n if (typeof child === 'string') {\n return React.createElement(\"span\", null, child);\n }\n return child;\n })\n : null;\n const useWrapper = disabled && ComponentProp === 'button' && (onMouseEnter || onMouseLeave);\n const { style, ...otherProps } = others;\n const button = (React.createElement(Ripple, { disabled: disabled },\n React.createElement(ComponentProp, Object.assign({ disabled: disabled, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, omit(otherProps, ['loading']), { \n // 如果没有href属性,则表示组件使用button标签,type为'submit' | 'reset' | 'button'\n type: others.href ? undefined : htmlType || 'button', style: useWrapper ? undefined : style, className: useWrapper ? undefined : classes, onClick: this.handleClick }),\n iconNode,\n kids)));\n return useWrapper ? (React.createElement(\"span\", { \n // @ts-ignore\n disabled: true, style: style, className: classNames(classes, `${prefixCls}-disabled-wrapper`), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, button)) : button;\n }\n}\nButton.displayName = 'Button';\nButton.__C7N_BUTTON = true;\nButton.defaultProps = {\n loading: false,\n ghost: false,\n funcType: 'flat',\n};\nButton.propTypes = {\n type: PropTypes.string,\n shape: PropTypes.oneOf(['circle', 'circle-outline']),\n size: PropTypes.oneOf([Size.large, Size.default, Size.small]),\n htmlType: PropTypes.oneOf(['submit', 'button', 'reset']),\n onClick: PropTypes.func,\n loading: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n className: PropTypes.string,\n icon: PropTypes.string,\n ghost: PropTypes.bool,\n funcType: PropTypes.oneOf(['raised', 'flat']),\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nconst ButtonGroup = props => {\n const { prefixCls: customizePrefixCls, size, className, ...others } = props;\n const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n // large => lg\n // small => sm\n let sizeCls = '';\n switch (size) {\n case Size.large:\n sizeCls = 'lg';\n break;\n case Size.small:\n sizeCls = 'sm';\n break;\n default:\n }\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n }, className);\n return React.createElement(\"div\", Object.assign({}, others, { className: classes }));\n};\nButtonGroup.displayName = 'ButtonGroup';\nexport default ButtonGroup;\n","import Button from './Button';\nimport ButtonGroup from './ButtonGroup';\nexport { ButtonProps, ButtonShape, ButtonType, ButtonFuncType } from './Button';\nexport { ButtonGroupProps } from './ButtonGroup';\nButton.Group = ButtonGroup;\nexport default Button;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../ripple/style';\nimport '../../progress/style';\n","/* eslint-disable camelcase */\nimport en_US from '../../date-picker/locale/en_US';\nexport default en_US;\n","import React, { Component, } from 'react';\nimport arrayTreeFilter from 'array-tree-filter';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport isEmpty from 'lodash/isEmpty';\nimport Input from '../input';\nimport Icon from '../icon';\nimport RcCascader from '../rc-components/cascader';\nimport KeyCode from '../_util/KeyCode';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport enUS from '../rc-components/cascader/locale/en_US';\nexport var MenuMode;\n(function (MenuMode) {\n MenuMode[\"single\"] = \"single\";\n MenuMode[\"multiple\"] = \"multiple\";\n})(MenuMode || (MenuMode = {}));\nfunction highlightKeyword(str, keyword, prefixCls) {\n return str.split(keyword).map((node, index) => index === 0\n ? node\n : [\n React.createElement(\"span\", { className: `${prefixCls}-menu-item-keyword`, key: \"seperator\" }, keyword),\n node,\n ]);\n}\nfunction defaultFilterOption(inputValue, path) {\n return path.some(option => option.label.indexOf(inputValue) > -1);\n}\nfunction defaultRenderFilteredOption(inputValue, path, prefixCls) {\n return path.map(({ label }, index) => {\n const node = label.indexOf(inputValue) > -1\n ? highlightKeyword(label, inputValue, prefixCls)\n : label;\n return index === 0 ? node : [' / ', node];\n });\n}\nfunction defaultSortFilteredOption(a, b, inputValue) {\n function callback(elem) {\n return elem.label.indexOf(inputValue) > -1;\n }\n return a.findIndex(callback) - b.findIndex(callback);\n}\nconst defaultDisplayRender = (label) => label.join(' / ');\nexport default class Cascader extends Component {\n constructor(props) {\n super(props);\n this.handleChange = (value, selectedOptions) => {\n this.setState({ inputValue: '' });\n if (selectedOptions[0].__IS_FILTERED_OPTION) {\n const unwrappedValue = value[0];\n const unwrappedSelectedOptions = selectedOptions[0].path;\n this.setValue(unwrappedValue, unwrappedSelectedOptions);\n return;\n }\n this.setValue(value, selectedOptions);\n };\n this.handlePopupVisibleChange = (popupVisible) => {\n if (!('popupVisible' in this.props)) {\n const { inputValue } = this.state;\n this.setState({\n popupVisible,\n inputFocused: popupVisible,\n inputValue: popupVisible ? inputValue : '',\n });\n }\n const { onPopupVisibleChange } = this.props;\n if (onPopupVisibleChange) {\n onPopupVisibleChange(popupVisible);\n }\n };\n this.handleInputBlur = () => {\n this.setState({\n inputFocused: false,\n });\n };\n this.handleInputClick = e => {\n const { inputFocused, popupVisible } = this.state;\n // Prevent `Trigger` behaviour.\n if (inputFocused || popupVisible) {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n }\n };\n this.handleKeyDown = (e) => {\n if (e.keyCode === KeyCode.BACKSPACE) {\n e.stopPropagation();\n }\n };\n this.handleInputChange = (e) => {\n const inputValue = e.target.value;\n this.setState({ inputValue });\n };\n this.clearSelection = e => {\n e.preventDefault();\n e.stopPropagation();\n const { inputValue } = this.state;\n if (!inputValue) {\n this.setValue([]);\n this.handlePopupVisibleChange(false);\n }\n else {\n this.setState({ inputValue: '' });\n }\n };\n this.setValue = (value, selectedOptions = []) => {\n if (!('value' in this.props)) {\n this.setState({ value });\n }\n const { onChange } = this.props;\n if (onChange) {\n onChange(value, selectedOptions);\n }\n };\n this.saveInput = (node) => {\n this.input = node;\n };\n this.state = {\n value: props.value || props.defaultValue || [],\n inputValue: '',\n inputFocused: false,\n popupVisible: props.popupVisible,\n flattenOptions: props.showSearch && this.flattenTree(props.options, props.changeOnSelect),\n };\n }\n componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({ value: nextProps.value || [] });\n }\n if ('popupVisible' in nextProps) {\n this.setState({ popupVisible: nextProps.popupVisible });\n }\n const { options } = this.props;\n if (nextProps.showSearch && options !== nextProps.options) {\n this.setState({\n flattenOptions: this.flattenTree(nextProps.options, nextProps.changeOnSelect),\n });\n }\n }\n getLabel() {\n const { options, displayRender = defaultDisplayRender } = this.props;\n const { value } = this.state;\n const unwrappedValue = Array.isArray(value[0]) ? value[0] : value;\n const selectedOptions = arrayTreeFilter(options, (o, level) => o.value === unwrappedValue[level]);\n const label = selectedOptions.map(o => o.label);\n return displayRender(label, selectedOptions);\n }\n flattenTree(options, changeOnSelect, ancestor = []) {\n let flattenOptions = [];\n options.forEach(option => {\n const path = ancestor.concat(option);\n if (changeOnSelect || !option.children || !option.children.length) {\n flattenOptions.push(path);\n }\n if (option.children) {\n flattenOptions = flattenOptions.concat(this.flattenTree(option.children, changeOnSelect, path));\n }\n });\n return flattenOptions;\n }\n generateFilteredOptions(prefixCls) {\n const { showSearch, notFoundContent } = this.props;\n const { filter = defaultFilterOption, render = defaultRenderFilteredOption, sort = defaultSortFilteredOption, } = showSearch;\n const { flattenOptions, inputValue } = this.state;\n const filtered = flattenOptions\n .filter(path => filter(inputValue, path))\n .sort((a, b) => sort(a, b, inputValue));\n if (filtered.length > 0) {\n return filtered.map((path) => {\n return {\n __IS_FILTERED_OPTION: true,\n path,\n label: render(inputValue, path, prefixCls),\n value: path.map((o) => o.value),\n disabled: path.some((o) => o.disabled),\n };\n });\n }\n return [{ label: notFoundContent, value: 'ANT_CASCADER_NOT_FOUND', disabled: true }];\n }\n focus() {\n this.input.focus();\n }\n blur() {\n this.input.blur();\n }\n render() {\n const { props, state } = this;\n const { prefixCls: customizePrefixCls, inputPrefixCls: customizeInputPrefixCls, children, placeholder, size, disabled, className, style, showSearch = false, allowClear, ...otherProps } = props;\n const prefixCls = getPrefixCls('cascader', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const defaultValue = props.defaultValue;\n const value = state.value;\n const sizeCls = classNames({\n [`${inputPrefixCls}-lg`]: size === Size.large,\n [`${inputPrefixCls}-sm`]: size === Size.small,\n });\n const arrowCls = classNames({\n [`${prefixCls}-picker-arrow`]: true,\n [`${prefixCls}-picker-arrow-expand`]: state.popupVisible,\n });\n const pickerCls = classNames(className, `${prefixCls}-picker`, {\n [`${prefixCls}-picker-with-value`]: state.inputValue,\n [`${prefixCls}-picker-disabled`]: disabled,\n [`${prefixCls}-picker-${size}`]: !!size,\n [`${inputPrefixCls}-has-value`]: !!defaultValue || value.length,\n [`${inputPrefixCls}-focused`]: state.popupVisible,\n });\n // Fix bug of https://github.com/facebook/react/pull/5004\n // and https://fb.me/react-unknown-prop\n const inputProps = omit(otherProps, [\n 'onChange',\n 'options',\n 'popupPlacement',\n 'transitionName',\n 'displayRender',\n 'onPopupVisibleChange',\n 'changeOnSelect',\n 'expandTrigger',\n 'popupVisible',\n 'getPopupContainer',\n 'loadData',\n 'popupClassName',\n 'filterOption',\n 'renderFilteredOption',\n 'sortFilteredOption',\n 'notFoundContent',\n 'allowClear',\n 'singleMenuStyle',\n 'singleMenuItemStyle',\n 'singlePleaseRender',\n 'singleMenuItemRender',\n 'menuMode',\n 'defaultValue',\n ]);\n let options = props.options;\n if (state.inputValue) {\n options = this.generateFilteredOptions(prefixCls);\n }\n // Dropdown menu should keep previous status until it is fully closed.\n if (!state.popupVisible) {\n options = this.cachedOptions;\n }\n else {\n this.cachedOptions = options;\n }\n const dropdownMenuColumnStyle = {};\n const isNotFound = (options || []).length === 1 && options[0].value === 'ANT_CASCADER_NOT_FOUND';\n if (isNotFound) {\n dropdownMenuColumnStyle.height = 'auto'; // Height of one row.\n }\n // The default value of `matchInputWidth` is `true`\n const resultListMatchInputWidth = showSearch.matchInputWidth !== false;\n if (resultListMatchInputWidth && state.inputValue && this.input) {\n dropdownMenuColumnStyle.width = this.input.input.offsetWidth;\n }\n const clearIcon = (allowClear && !disabled && value.length > 0) || state.inputValue ? (React.createElement(Icon, { type: \"close\", className: `${prefixCls}-picker-clear`, onClick: this.clearSelection })) : null;\n const input = children || (React.createElement(\"span\", { style: style, className: pickerCls },\n React.createElement(\"span\", { className: `${prefixCls}-picker-label` }, this.getLabel()),\n React.createElement(Input, Object.assign({}, inputProps, { ref: this.saveInput, prefixCls: inputPrefixCls, placeholder: value && value.length > 0 ? undefined : placeholder, className: `${prefixCls}-input ${sizeCls}`, value: state.inputValue, disabled: disabled, readOnly: !showSearch, autoComplete: \"off\", onClick: showSearch ? this.handleInputClick : undefined, onBlur: showSearch ? this.handleInputBlur : undefined, onKeyDown: this.handleKeyDown, onChange: showSearch ? this.handleInputChange : undefined })),\n clearIcon,\n React.createElement(Icon, { type: \"arrow_drop_down\", className: arrowCls })));\n /**\n * 添加多语言配置\n * @param locale any\n */\n const renderCascader = (locale) => {\n // 只配置部分语言其他英语即可\n const cascaderLocal = isEmpty(locale) ? enUS.Cascader : locale;\n return (React.createElement(RcCascader, Object.assign({}, props, { inputPrefixCls: inputPrefixCls, prefixCls: prefixCls, options: options, value: value, popupVisible: state.popupVisible, onPopupVisibleChange: this.handlePopupVisibleChange, onChange: this.handleChange, dropdownMenuColumnStyle: dropdownMenuColumnStyle, locale: cascaderLocal }), input));\n };\n return (React.createElement(LocaleReceiver, { componentName: \"Cascader\", defaultLocale: enUS }, renderCascader));\n }\n}\nCascader.displayName = 'Cascader';\nCascader.defaultProps = {\n placeholder: 'Please select',\n transitionName: 'slide-up',\n popupPlacement: 'bottomLeft',\n options: [],\n disabled: false,\n allowClear: true,\n notFoundContent: 'Not Found',\n menuMode: MenuMode.multiple,\n};\n","import React, { Component, } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport shallowEqual from 'lodash/isEqual';\nimport RcCheckbox from '../rc-components/checkbox';\nimport { getPrefixCls } from '../configure';\nexport default class Checkbox extends Component {\n constructor() {\n super(...arguments);\n this.saveCheckbox = (node) => {\n this.rcCheckbox = node;\n };\n }\n shouldComponentUpdate(nextProps, nextState, nextContext) {\n const { checkboxGroup } = this.context;\n return (!shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state, nextState) ||\n !shallowEqual(checkboxGroup, nextContext.checkboxGroup));\n }\n focus() {\n this.rcCheckbox.focus();\n }\n blur() {\n this.rcCheckbox.blur();\n }\n render() {\n const { props, context } = this;\n const { prefixCls: customizePrefixCls, className, children, indeterminate, style, onMouseEnter, onMouseLeave, ...restProps } = props;\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const { checkboxGroup } = context;\n const checkboxProps = { ...restProps };\n if (checkboxGroup) {\n checkboxProps.onChange = () => checkboxGroup.toggleOption({ label: children, value: props.value });\n checkboxProps.checked = checkboxGroup.value.indexOf(props.value) !== -1;\n checkboxProps.disabled = props.disabled || checkboxGroup.disabled;\n }\n const classString = classNames(className, {\n [`${prefixCls}-wrapper`]: true,\n });\n const checkboxClass = classNames({\n [`${prefixCls}-indeterminate`]: indeterminate,\n });\n return (React.createElement(\"label\", { className: classString, style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },\n React.createElement(RcCheckbox, Object.assign({}, checkboxProps, { prefixCls: prefixCls, className: checkboxClass, ref: this.saveCheckbox })),\n children !== undefined ? React.createElement(\"span\", null, children) : null));\n }\n}\nCheckbox.displayName = 'Checkbox';\nCheckbox.defaultProps = {\n indeterminate: false,\n};\nCheckbox.contextTypes = {\n checkboxGroup: PropTypes.any,\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport shallowEqual from 'lodash/isEqual';\nimport Checkbox from './Checkbox';\nimport { getPrefixCls } from '../configure';\nexport default class CheckboxGroup extends Component {\n constructor(props) {\n super(props);\n this.toggleOption = (option) => {\n const { state } = this;\n const optionIndex = state.value.indexOf(option.value);\n const value = [...state.value];\n if (optionIndex === -1) {\n value.push(option.value);\n }\n else {\n value.splice(optionIndex, 1);\n }\n if (!('value' in this.props)) {\n this.setState({ value });\n }\n const { onChange } = this.props;\n if (onChange) {\n onChange(value);\n }\n };\n this.state = {\n value: props.value || props.defaultValue || [],\n };\n }\n getChildContext() {\n const { disabled } = this.props;\n const { value } = this.state;\n return {\n checkboxGroup: {\n toggleOption: this.toggleOption,\n value,\n disabled,\n },\n };\n }\n componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n value: nextProps.value || [],\n });\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);\n }\n getOptions() {\n const { options } = this.props;\n // https://github.com/Microsoft/TypeScript/issues/7960\n return options.map(option => {\n if (typeof option === 'string') {\n return {\n label: option,\n value: option,\n };\n }\n return option;\n });\n }\n render() {\n const { props, state } = this;\n const { prefixCls: customizePrefixCls, className, style, options } = props;\n const prefixCls = getPrefixCls('checkbox-group', customizePrefixCls);\n let children = props.children;\n if (options && options.length > 0) {\n children = this.getOptions().map(option => (React.createElement(Checkbox, { key: option.value, disabled: 'disabled' in option ? option.disabled : props.disabled, value: option.value, checked: state.value.indexOf(option.value) !== -1, onChange: () => this.toggleOption(option), className: `${prefixCls}-item` }, option.label)));\n }\n const classString = classNames(prefixCls, className);\n const wrapperClassString = classNames({\n [`${prefixCls}-wrapper`]: true,\n [`${prefixCls}-has-label`]: props.label,\n });\n const labelClassString = classNames(`${prefixCls}-label`, {\n 'label-disabled': props.disabled,\n });\n return (React.createElement(\"div\", { className: wrapperClassString },\n props.label ? React.createElement(\"span\", { className: labelClassString }, props.label) : null,\n React.createElement(\"div\", { className: classString, style: style }, children)));\n }\n}\nCheckboxGroup.displayName = 'CheckboxGroup';\nCheckboxGroup.defaultProps = {\n options: [],\n};\nCheckboxGroup.propTypes = {\n defaultValue: PropTypes.array,\n value: PropTypes.array,\n options: PropTypes.array,\n onChange: PropTypes.func,\n};\nCheckboxGroup.childContextTypes = {\n checkboxGroup: PropTypes.any,\n};\n","import Checkbox from './Checkbox';\nimport Group from './Group';\nexport { CheckboxProps, CheckboxChangeEvent } from './Checkbox';\nexport { CheckboxGroupProps, CheckboxOptionType } from './Group';\nCheckbox.Group = Group;\nexport default Checkbox;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import { Col, ColProps, ColSize } from '../grid';\nexport { ColProps, ColSize };\nexport default Col;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport animation from '../_util/openAnimation';\nimport CollapsePanel from './CollapsePanel';\nimport RcCollapse from '../rc-components/collapse';\nimport { getPrefixCls, getConfig } from '../configure';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale-provider/default';\nexport default class Collapse extends Component {\n constructor() {\n super(...arguments);\n this.renderExpandIcon = (panelProps = {}) => {\n const { expandIcon } = this.props;\n return expandIcon ? expandIcon(panelProps) : null;\n };\n this.renderExpandTextContent = (panelProps = {}, locale, localeCode, expandIconPositionCof) => {\n const { prefixCls: customizePrefixCls, } = this.props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const iconCls = classNames({\n [`${prefixCls}-expand-icon`]: true,\n [`${prefixCls}-expanded`]: panelProps.isActive,\n [`${prefixCls}-collapsed`]: !panelProps.isActive,\n });\n const icon = React.createElement(\"i\", { className: iconCls });\n return (React.createElement(React.Fragment, null,\n expandIconPositionCof === 'left' && icon,\n panelProps.isActive ? React.createElement(\"span\", { className: `${prefixCls}-expand-text`, style: { minWidth: localeCode === 'zh-cn' ? '0.38rem' : '0.52rem' } }, locale.fold) :\n React.createElement(\"span\", { className: `${prefixCls}-expand-text`, style: { minWidth: localeCode === 'zh-cn' ? '0.38rem' : '0.52rem' } }, locale.unfold),\n expandIconPositionCof === 'right' && icon));\n };\n }\n render() {\n const { prefixCls: customizePrefixCls, className = '', expandIcon, bordered, expandIconPosition, trigger, ghost, } = this.props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const expandIconPositionCof = expandIconPosition || getConfig('collapseExpandIconPosition');\n const expandIconCof = expandIcon || getConfig('collapseExpandIcon');\n const triggerCof = trigger || getConfig('collapseTrigger');\n const collapseClassName = classNames({\n [`${prefixCls}-borderless`]: !bordered,\n // @ts-ignore\n [`${prefixCls}-text-action`]: expandIconCof === 'text' && expandIconPositionCof === 'left',\n [`${prefixCls}-trigger`]: triggerCof === 'header',\n [`${prefixCls}-ghost`]: ghost,\n [`${prefixCls}-icon-position-${expandIconPositionCof}`]: true,\n }, className);\n let expandIconContent;\n if (typeof expandIconCof === 'function') {\n expandIconContent = (panelProps) => this.renderExpandIcon(panelProps);\n }\n else if (expandIconCof === 'text') {\n expandIconContent = (panelProps) => {\n return (React.createElement(LocaleReceiver, { componentName: \"Collapse\", defaultLocale: defaultLocale.Collapse }, (locale, localeCode) => this.renderExpandTextContent(panelProps, locale, localeCode, expandIconPositionCof)));\n };\n }\n return (React.createElement(RcCollapse, Object.assign({}, this.props, { expandIcon: expandIconContent, expandIconPosition: expandIconPositionCof, prefixCls: prefixCls, className: collapseClassName })));\n }\n}\nCollapse.displayName = 'Collapse';\nCollapse.Panel = CollapsePanel;\nCollapse.defaultProps = {\n bordered: true,\n openAnimation: {\n ...animation,\n appear() { },\n },\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport RcCollapse from '../rc-components/collapse';\nconst CollapsePanel = (props) => {\n const { prefixCls, className = '', showArrow = true } = props;\n const collapsePanelClassName = classNames({\n [`${prefixCls}-no-arrow`]: !showArrow,\n }, className);\n return React.createElement(RcCollapse.Panel, Object.assign({}, props, { className: collapsePanelClassName }));\n};\nexport default CollapsePanel;\n","import Collapse from './Collapse';\nexport { CollapseProps, PanelProps } from './Collapse';\nexport { CollapsePanelProps } from './CollapsePanel';\nexport default Collapse;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import { observable, runInAction, toJS } from 'mobx';\nimport React from 'react';\nimport noop from 'lodash/noop';\nimport isObject from 'lodash/isObject';\nimport isBoolean from 'lodash/isBoolean';\nimport { categories } from 'choerodon-ui-font';\nimport { FieldType, RecordStatus } from 'choerodon-ui/pro/lib/data-set/enum';\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\nimport { ColumnAlign, TableQueryBarType } from 'choerodon-ui/pro/lib/table/enum';\nimport defaultFeedback from 'choerodon-ui/pro/lib/data-set/FeedBack';\nimport { LabelLayout, ShowValidation } from 'choerodon-ui/pro/lib/form/enum';\nimport { ButtonColor, FuncType } from 'choerodon-ui/pro/lib/button/enum';\nimport { defaultExcludeUseColonTag } from 'choerodon-ui/pro/lib/form/utils';\nimport { Action } from '../trigger/enum';\nimport { Size } from '../_util/enum';\nimport Popover from '../popover';\nfunction isCustomizable(target) {\n return isObject(target);\n}\nconst defaultTooltipTheme = target => target === 'validation' ? 'light' : 'dark';\nconst defaultRenderEmpty = (componentName) => {\n switch (componentName) {\n case 'Attachment':\n return $l('Attachment', 'no_attachments');\n case 'Table':\n return $l('Table', 'empty_data');\n case 'Select':\n return $l('Select', 'no_matching_results');\n case 'Output':\n return '';\n default:\n }\n};\nconst defaultFormFieldHighlightRenderer = ({ content, hidden, ...rest }, element) => content ? (React.createElement(Popover, Object.assign({}, (hidden ? { ...rest, visible: false } : rest), { content: content }), element)) : element;\nconst defaultButtonProps = { color: ButtonColor.primary, funcType: FuncType.flat };\nconst defaultSpinProps = { size: Size.default, wrapperClassName: '' };\nconst defaultTableColumnAlign = (_column, field) => {\n if (field) {\n const { type } = field;\n switch (type) {\n case FieldType.number:\n case FieldType.currency:\n return ColumnAlign.right;\n case FieldType.boolean:\n return ColumnAlign.center;\n default:\n }\n }\n};\nfunction getComponentKey(component) {\n switch (component) {\n case 'Tabs':\n return 'tabs';\n default:\n return 'table';\n }\n}\nconst defaultLookupCache = { maxAge: 1000 * 60 * 10, max: 100 };\nconst defaultStatus = { [RecordStatus.add]: 'add', [RecordStatus.update]: 'update', [RecordStatus.delete]: 'delete' };\nconst defaultCustomizedSave = (code, customized, component) => localStorage.setItem(`${getComponentKey(component)}.customized.${code}`, JSON.stringify(customized));\nconst defaultCustomizedLoad = (code, component) => Promise.resolve(JSON.parse(localStorage.getItem(`${getComponentKey(component)}.customized.${code}`) || 'null'));\nconst defaultFormatter = {\n jsonDate: 'YYYY-MM-DD HH:mm:ss',\n date: 'YYYY-MM-DD',\n dateTime: 'YYYY-MM-DD HH:mm:ss',\n time: 'HH:mm:ss',\n year: 'YYYY',\n month: 'YYYY-MM',\n week: 'GGGG-Wo',\n};\nconst defaultAttachment = {\n defaultFileKey: 'file',\n defaultFileSize: 0,\n};\nconst defaultConfig = {\n prefixCls: 'c7n',\n proPrefixCls: 'c7n-pro',\n iconfontPrefix: 'icon',\n ripple: true,\n collapseExpandIconPosition: 'left',\n collapseTrigger: 'header',\n lookupCache: defaultLookupCache,\n lookupUrl: code => `/common/code/${code}/`,\n lookupAxiosMethod: 'post',\n // lookupBatchAxiosConfig:\n // codes => ({\n // url: '/common/batch',\n // params: codes.reduce((obj, code) => {\n // obj[code] = code;\n // return obj;\n // }, {}),\n // }),\n lovDefineUrl: code => `/sys/lov/lov_define?code=${code}`,\n lovQueryUrl: code => `/common/lov/dataset/${code}`,\n lovTableProps: {},\n lovModalProps: {},\n lovAutoSelectSingle: false,\n dataKey: 'rows',\n totalKey: 'total',\n statusKey: '__status',\n tlsKey: '__tls',\n status: defaultStatus,\n labelLayout: LabelLayout.horizontal,\n queryBar: TableQueryBarType.normal,\n tableBorder: true,\n tableHighLightRow: true,\n tableSelectedHighLightRow: false,\n tableRowHeight: 30,\n tableDefaultRenderer: '',\n tableColumnResizable: true,\n tableColumnHideable: true,\n performanceTableColumnHideable: true,\n tableRowDraggable: false,\n tableColumnDraggable: false,\n performanceTableColumnDraggable: false,\n tableColumnAlign: defaultTableColumnAlign,\n tableSpinProps: defaultSpinProps,\n tableButtonProps: defaultButtonProps,\n tableCommandProps: defaultButtonProps,\n tableAlwaysShowRowBox: false,\n tableUseMouseBatchChoose: false,\n tableEditorNextKeyEnterDown: true,\n tableAutoFocus: false,\n tableKeyboard: false,\n tableFilterSearchText: 'params',\n tableAutoHeightDiff: 80,\n customizedSave: defaultCustomizedSave,\n customizedLoad: defaultCustomizedLoad,\n tableShowRemovedRow: true,\n modalSectionBorder: true,\n drawerSectionBorder: true,\n drawerTransitionName: 'slide-right',\n modalOkFirst: true,\n modalAutoCenter: false,\n modalKeyboard: true,\n modalMaskClosable: false,\n buttonColor: ButtonColor.default,\n buttonFuncType: FuncType.raised,\n feedback: defaultFeedback,\n renderEmpty: defaultRenderEmpty,\n icons: categories,\n formatter: defaultFormatter,\n dropdownMatchSelectWidth: true,\n selectReverse: true,\n selectPagingOptionContent: '···',\n selectSearchable: false,\n selectTrigger: [Action.focus, Action.click],\n useColon: false,\n excludeUseColonTagList: defaultExcludeUseColonTag,\n numberFieldNonStrictStep: false,\n showInvalidDate: true,\n highlightRenderer: defaultFormFieldHighlightRenderer,\n onPerformance: noop,\n performanceEnabled: { Table: false },\n tooltipTheme: defaultTooltipTheme,\n showValidation: ShowValidation.tooltip,\n attachment: defaultAttachment,\n};\nconst globalConfig = observable.map(defaultConfig);\nexport function getConfig(key) {\n return globalConfig.get(key);\n}\nexport function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return `${getConfig('prefixCls')}-${suffixCls}`;\n}\nexport function getProPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return `${getConfig('proPrefixCls')}-${suffixCls}`;\n}\nexport function getCustomizable(component) {\n const customizable = getConfig('customizable');\n if (isBoolean(customizable)) {\n return customizable;\n }\n if (isCustomizable(customizable)) {\n return customizable[component];\n }\n}\nconst mergeProps = ['transport', 'feedback', 'formatter', 'attachment', 'pagination'];\nexport default function configure(config, merge = true) {\n runInAction(() => {\n Object.keys(config).forEach((key) => {\n const value = config[key];\n if (merge && mergeProps.includes(key) && isObject(value)) {\n globalConfig.set(key, {\n ...toJS(globalConfig.get(key)),\n ...value,\n });\n }\n else {\n globalConfig.set(key, config[key]);\n }\n });\n });\n}\n","import CalendarLocale from '../../rc-components/calendar/locale/en_US';\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: {\n placeholder: 'Select date',\n rangePlaceholder: ['Start date', 'End date'],\n ...CalendarLocale,\n },\n timePickerLocale: {\n ...TimePickerLocale,\n },\n};\n// All settings at:\nexport default locale;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPrefixCls } from '../configure';\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\nconst objectOrNumber = PropTypes.oneOfType([PropTypes.object, PropTypes.number]);\nexport default function Col(props) {\n const { span, order, offset, push, pull, className, children, prefixCls: customizePrefixCls, ...others } = props;\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n let sizeClassObj = {};\n ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(size => {\n let sizeProps = {};\n if (typeof props[size] === 'number') {\n sizeProps.span = props[size];\n }\n else if (typeof props[size] === 'object') {\n sizeProps = props[size] || {};\n }\n delete others[size];\n sizeClassObj = {\n ...sizeClassObj,\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n };\n });\n const classes = classNames({\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull,\n }, className, sizeClassObj);\n return (React.createElement(\"div\", Object.assign({}, others, { className: classes }), children));\n}\nCol.displayName = 'Col';\nCol.propTypes = {\n span: stringOrNumber,\n order: stringOrNumber,\n offset: stringOrNumber,\n push: stringOrNumber,\n pull: stringOrNumber,\n className: PropTypes.string,\n children: PropTypes.node,\n xs: objectOrNumber,\n sm: objectOrNumber,\n md: objectOrNumber,\n lg: objectOrNumber,\n xl: objectOrNumber,\n xxl: objectOrNumber,\n};\n","import Row from './row';\nimport Col from './col';\nexport { RowProps } from './row';\nexport { ColProps, ColSize } from './col';\nexport { Row, Col, };\n","import React, { Children, cloneElement, Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport Responsive from '../responsive/Responsive';\nimport { getPrefixCls } from '../configure';\nconst defaultGutter = 0;\nexport default class Row extends Component {\n constructor() {\n super(...arguments);\n this.renderRow = ([gutter = defaultGutter]) => {\n const { type, justify, align, className, style, children, prefixCls: customizePrefixCls, ...others } = this.props;\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const classes = classNames({\n [prefixCls]: !type,\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-${type}-${justify}`]: type && justify,\n [`${prefixCls}-${type}-${align}`]: type && align,\n }, className);\n const rowStyle = gutter > 0\n ? {\n marginLeft: gutter / -2,\n marginRight: gutter / -2,\n ...style,\n }\n : style;\n const cols = Children.map(children, (col) => {\n if (!col) {\n return null;\n }\n if (col.props && gutter > 0) {\n return cloneElement(col, {\n style: {\n paddingLeft: gutter / 2,\n paddingRight: gutter / 2,\n ...col.props.style,\n },\n });\n }\n return col;\n });\n const otherProps = { ...others };\n delete otherProps.gutter;\n return (React.createElement(\"div\", Object.assign({}, omit(otherProps, ['rowIndex', 'colIndex']), { className: classes, style: rowStyle }), cols));\n };\n }\n render() {\n const { gutter } = this.props;\n return React.createElement(Responsive, { items: [gutter] }, this.renderRow);\n }\n}\nRow.displayName = 'Row';\nRow.defaultProps = {\n gutter: defaultGutter,\n};\nRow.propTypes = {\n type: PropTypes.string,\n align: PropTypes.string,\n justify: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.node,\n gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number]),\n prefixCls: PropTypes.string,\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import React from 'react';\nimport classNames from 'classnames';\nimport { svgBaseProps, useInsertStyles, warning } from './utils';\nconst Icon = React.forwardRef((props, ref) => {\n const { \n // affect outter <i>...</i>\n className, \n // affect inner <svg>...</svg>\n component: Component, viewBox, spin, rotate, tabIndex, onClick, \n // children\n children, ...restProps } = props;\n const { height, width } = restProps;\n warning(Boolean(Component || children), 'Should have `component` prop or `children`.');\n useInsertStyles();\n const classString = classNames('c7nicon', className);\n const svgClassString = classNames({\n 'c7nicon-spin': !!spin,\n });\n const svgStyle = rotate\n ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`,\n }\n : undefined;\n const innerSvgProps = {\n ...svgBaseProps,\n className: svgClassString,\n style: svgStyle,\n viewBox,\n height: height || svgBaseProps.height,\n width: width || svgBaseProps.width,\n };\n if (!viewBox) {\n delete innerSvgProps.viewBox;\n }\n // component > children\n const renderInnerNode = () => {\n if (Component) {\n return React.createElement(Component, Object.assign({}, innerSvgProps), children);\n }\n if (children) {\n warning(Boolean(viewBox) ||\n (React.Children.count(children) === 1 &&\n React.isValidElement(children) &&\n React.Children.only(children).type === 'use'), 'Make sure that you provide correct `viewBox`' +\n ' prop (default `0 0 1024 1024`) to the icon.');\n return (React.createElement(\"svg\", Object.assign({}, innerSvgProps, { viewBox: viewBox }), children));\n }\n return null;\n };\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n return (React.createElement(\"span\", Object.assign({ role: \"img\" }, restProps, { ref: ref, tabIndex: iconTabIndex, onClick: onClick, className: classString }), renderInnerNode()));\n});\nIcon.displayName = 'SvgIcon';\nIcon.__C7N_ICON = true;\nexport default Icon;\n","import React from 'react';\nimport Icon from './Icon';\nconst customCache = new Set();\nfunction isValidCustomScriptUrl(scriptUrl) {\n return Boolean(typeof scriptUrl === 'string'\n && scriptUrl.length\n && !customCache.has(scriptUrl));\n}\nfunction createScriptUrlElements(scriptUrls, index = 0) {\n const currentScriptUrl = scriptUrls[index];\n if (isValidCustomScriptUrl(currentScriptUrl)) {\n const script = document.createElement('script');\n script.setAttribute('src', currentScriptUrl);\n script.setAttribute('data-namespace', currentScriptUrl);\n if (scriptUrls.length > index + 1) {\n script.onload = () => {\n createScriptUrlElements(scriptUrls, index + 1);\n };\n script.onerror = () => {\n createScriptUrlElements(scriptUrls, index + 1);\n };\n }\n customCache.add(currentScriptUrl);\n document.body.appendChild(script);\n }\n}\nexport default function create(options = {}) {\n const { scriptUrl, extraCommonProps = {} } = options;\n /**\n * DOM API required.\n * Make sure in browser environment.\n * The Custom Icon will create a <script/>\n * that loads SVG symbols and insert the SVG Element into the document body.\n */\n if (scriptUrl &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined' &&\n typeof document.createElement === 'function') {\n if (Array.isArray(scriptUrl)) {\n // 因为iconfont资源会把svg插入before,所以前加载相同type会覆盖后加载,为了数组覆盖顺序,倒叙插入\n createScriptUrlElements(scriptUrl.reverse());\n }\n else {\n createScriptUrlElements([scriptUrl]);\n }\n }\n const Iconfont = React.forwardRef((props, ref) => {\n const { type, children, ...restProps } = props;\n // children > type\n let content = null;\n if (props.type) {\n content = React.createElement(\"use\", { xlinkHref: `#${type}` });\n }\n if (children) {\n content = children;\n }\n return (React.createElement(Icon, Object.assign({}, extraCommonProps, restProps, { ref: ref }), content));\n });\n Iconfont.displayName = 'SvgIcon';\n Iconfont.__C7N_ICON = true;\n return Iconfont;\n}\n","import { TinyColor } from '@ctrl/tinycolor';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nconst darkColorMap = [\n { index: 7, opacity: 0.15 },\n { index: 6, opacity: 0.25 },\n { index: 5, opacity: 0.3 },\n { index: 5, opacity: 0.45 },\n { index: 5, opacity: 0.65 },\n { index: 5, opacity: 0.85 },\n { index: 4, opacity: 0.9 },\n { index: 3, opacity: 0.95 },\n { index: 2, opacity: 0.97 },\n { index: 1, opacity: 0.98 },\n];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n }\n else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n }\n else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n }\n else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n }\n else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n }\n else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new TinyColor(color);\n for (let i = lightColorCount; i > 0; i -= 1) {\n const hsv = pColor.toHsv();\n const colorString = new TinyColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true),\n }).toHexString();\n patterns.push(colorString);\n }\n patterns.push(pColor.toHexString());\n for (let i = 1; i <= darkColorCount; i += 1) {\n const hsv = pColor.toHsv();\n const colorString = new TinyColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i),\n }).toHexString();\n patterns.push(colorString);\n }\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({ index, opacity }) => {\n const darkColorString = new TinyColor(opts.backgroundColor || '#141414')\n .mix(patterns[index], opacity * 100)\n .toHexString();\n return darkColorString;\n });\n }\n return patterns;\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { getConfig } from '../configure';\nimport createFromIconfontCN from './IconFont';\nconst Icon = function Icon(props) {\n const iconfontPrefix = getConfig('iconfontPrefix');\n const { type, customFontName, height, width, className = '', scriptUrl, ...otherProps } = props;\n const classString = classNames(iconfontPrefix, customFontName, `${iconfontPrefix}-${type}`, className);\n if (scriptUrl &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined' &&\n typeof document.createElement === 'function') {\n const SvgIcon = createFromIconfontCN({ scriptUrl });\n if (SvgIcon) {\n return React.createElement(SvgIcon, { type: type, width: width, height: height });\n }\n }\n return React.createElement(\"i\", Object.assign({}, otherProps, { className: classString }));\n};\nIcon.displayName = 'Icon';\nIcon.createFromIconfontCN = createFromIconfontCN;\nIcon.__C7N_ICON = true;\nexport default Icon;\n","import React, { useEffect } from 'react';\nimport { insertCss } from 'insert-css';\nimport warn from '../_util/warning';\nimport generateColor from './generate';\nexport function warning(valid, message) {\n warn(valid, `[@c7n/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return (typeof target === 'object' &&\n typeof target.name === 'string' &&\n typeof target.theme === 'string' &&\n (typeof target.icon === 'object' || typeof target.icon === 'function'));\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return React.createElement(node.tag, { key, ...normalizeAttrs(node.attrs) }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps,\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false',\n};\nexport const iconStyles = `\n.c7nicon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.c7nicon > * {\n line-height: 1;\n}\n\n.c7nicon svg {\n display: inline-block;\n}\n\n.c7nicon::before {\n display: none;\n}\n\n.c7nicon .c7nicon-icon {\n display: block;\n}\n\n.c7nicon[tabindex] {\n cursor: pointer;\n}\n\n.c7nicon-spin::before,\n.c7nicon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nlet cssInjectedFlag = false;\nexport const useInsertStyles = (styleStr = iconStyles) => {\n useEffect(() => {\n if (!cssInjectedFlag) {\n insertCss(styleStr, {\n prepend: true,\n });\n cssInjectedFlag = true;\n }\n }, []);\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nconst Group = props => {\n const { prefixCls: customizePrefixCls, className = '', size, compact, style, children } = props;\n const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-lg`]: size === Size.large,\n [`${prefixCls}-sm`]: size === Size.small,\n [`${prefixCls}-compact`]: compact,\n }, className);\n return (React.createElement(\"span\", { className: cls, style: style }, children));\n};\nexport default Group;\n","import React, { Component, } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport Icon from '../icon';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nfunction fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return value;\n}\nexport default class Input extends Component {\n constructor(props) {\n super(props);\n this.handleKeyDown = (e) => {\n const { onPressEnter, onKeyDown } = this.props;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n this.handleFocus = (e) => {\n const { onFocus, readOnly } = this.props;\n if (!readOnly) {\n this.setState({\n focused: true,\n });\n }\n if (onFocus) {\n onFocus(e);\n }\n };\n this.handleBlur = (e) => {\n const { onBlur, readOnly } = this.props;\n if (!readOnly) {\n this.setState({\n focused: false,\n });\n }\n if (onBlur) {\n onBlur(e);\n }\n };\n this.handleChange = e => {\n const { onChange } = this.props;\n if (!('value' in this.props)) {\n this.setState({ value: e.target.value });\n }\n if (onChange) {\n onChange(e);\n }\n };\n this.handleCopy = () => {\n const { onCopy } = this.props;\n this.input.select();\n document.execCommand('Copy');\n if (onCopy) {\n onCopy(this.input.value);\n }\n };\n this.handleTogglePassword = () => {\n const { showPassword } = this.state;\n this.setState({\n showPassword: !showPassword,\n });\n };\n this.saveInput = (node) => {\n this.input = node;\n };\n this.saveRenderedRef = (node) => {\n this.rendered = node;\n };\n this.savePrefix = (node) => {\n this.prefix = node;\n };\n this.saveSuffix = (node) => {\n this.suffix = node;\n };\n this.state = {\n value: typeof props.value === 'undefined' ? props.defaultValue : props.value,\n focused: false,\n showPassword: false,\n };\n }\n componentDidMount() {\n const { focused, autoFocus } = this.props;\n if (autoFocus) {\n this.setState({\n focused: true,\n });\n }\n if (typeof focused === 'boolean') {\n this.setState({\n focused,\n });\n }\n this.setRenderedStyle();\n }\n componentWillReceiveProps(nextProps) {\n const { value } = this.state;\n if ('value' in nextProps && value !== nextProps.value) {\n this.setState({\n value: nextProps.value,\n });\n }\n if (nextProps.autoFocus) {\n this.setState({\n focused: true,\n });\n }\n if (typeof nextProps.focused === 'boolean') {\n this.setState({\n focused: nextProps.focused,\n });\n }\n if (nextProps.type !== 'password') {\n this.setState({\n showPassword: false,\n });\n }\n }\n componentDidUpdate() {\n this.setRenderedStyle();\n }\n setRenderedStyle() {\n const { rendered, suffix, prefix } = this;\n let suffixWidth;\n let prefixWidth;\n let margin = '0';\n let width = '100%';\n if (suffix && prefix) {\n suffixWidth = `${(suffix.clientWidth || -2) + 2}px`;\n prefixWidth = `${(prefix.clientWidth || -2) + 2}px`;\n margin = `0 ${suffixWidth} 0 ${prefixWidth}`;\n width = `calc(100% - ${suffixWidth} - ${prefixWidth})`;\n }\n else if (suffix) {\n suffixWidth = `${(suffix.clientWidth || -2) + 2}px`;\n margin = `0 ${suffixWidth} 0 0`;\n width = `calc(100% - ${suffixWidth})`;\n }\n else if (prefix) {\n prefixWidth = `${(prefix.clientWidth || -2) + 2}px`;\n margin = `0 0 0 ${prefixWidth}`;\n width = `calc(100% - ${prefixWidth})`;\n }\n rendered.style.margin = margin;\n rendered.style.width = width;\n }\n focus() {\n this.input.focus();\n }\n blur() {\n this.input.blur();\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('input', prefixCls);\n }\n getInputClassName() {\n const { size, copy } = this.props;\n const prefixCls = this.getPrefixCls();\n return classNames(prefixCls, {\n [`${prefixCls}-sm`]: size === Size.small,\n [`${prefixCls}-lg`]: size === Size.large,\n [`${prefixCls}-has-copy`]: copy,\n });\n }\n renderCopyIcon() {\n const { copy } = this.props;\n const prefixCls = this.getPrefixCls();\n return copy ? (React.createElement(\"span\", { className: `${prefixCls}-icon`, onClick: this.handleCopy },\n React.createElement(Icon, { className: `${prefixCls}-icon-copy`, type: \"library_books\" }))) : null;\n }\n renderShowPassword() {\n const { type } = this.props;\n const prefixCls = this.getPrefixCls();\n const { showPassword } = this.state;\n return type === 'password' ? (React.createElement(\"span\", { className: `${prefixCls}-icon`, onClick: this.handleTogglePassword },\n React.createElement(Icon, { className: `${prefixCls}-icon-copy`, type: showPassword ? 'visibility' : 'visibility_off' }))) : null;\n }\n renderInput() {\n const { className, type } = this.props;\n const { showPassword, value } = this.state;\n // Fix https://fb.me/react-unknown-prop\n const otherProps = omit(this.props, [\n 'placeholder',\n 'prefixCls',\n 'onPressEnter',\n 'addonBefore',\n 'addonAfter',\n 'prefix',\n 'suffix',\n 'label',\n 'copy',\n 'style',\n 'focused',\n 'showLengthInfo',\n 'showPasswordEye',\n 'size',\n 'border',\n ]);\n return (React.createElement(\"input\", Object.assign({}, otherProps, { value: fixControlledValue(value), className: classNames(this.getInputClassName(), className), onKeyDown: this.handleKeyDown, ref: this.saveInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: this.handleChange, type: showPassword ? 'text' : type })));\n }\n getLengthInfo() {\n const { maxLength, showLengthInfo } = this.props;\n const prefixCls = this.getPrefixCls();\n const { value } = this.state;\n const inputLength = value ? value.length : 0;\n return (maxLength && showLengthInfo) ||\n (maxLength && maxLength > 0 && inputLength === maxLength) ? (React.createElement(\"div\", { className: `${prefixCls}-length-info` }, `${inputLength}/${maxLength}`)) : null;\n }\n getLabel() {\n const { focused } = this.state;\n const { placeholder, label } = this.props;\n if (!this.hasValue() && !focused && placeholder) {\n return placeholder;\n }\n return label;\n }\n renderFloatLabel() {\n const label = this.getLabel();\n const { border } = this.props;\n if (label && border) {\n const prefixCls = this.getPrefixCls();\n return (React.createElement(\"div\", { className: `${prefixCls}-label-wrapper` },\n React.createElement(\"div\", { className: `${prefixCls}-label` }, label)));\n }\n }\n getSizeClassName(name) {\n const { size } = this.props;\n const prefixCls = this.getPrefixCls();\n return classNames(`${prefixCls}-${name}`, {\n [`${prefixCls}-${name}-sm`]: size === Size.small,\n [`${prefixCls}-${name}-lg`]: size === Size.large,\n });\n }\n hasValue() {\n const { value } = this.state;\n return value && value.length !== 0;\n }\n renderPlaceholder() {\n const { placeholder, border } = this.props;\n if (!border && placeholder) {\n const prefixCls = this.getPrefixCls();\n return React.createElement(\"div\", { className: `${prefixCls}-placeholder` }, placeholder);\n }\n }\n render() {\n const props = this.props;\n const { disabled, label, style, showPasswordEye, border } = this.props;\n const prefixCls = this.getPrefixCls();\n const { focused } = this.state;\n const prefix = props.prefix ? (React.createElement(\"span\", { ref: this.savePrefix, className: this.getSizeClassName('prefix') }, props.prefix)) : null;\n const suffix = props.suffix ? (React.createElement(\"span\", { ref: this.saveSuffix, className: this.getSizeClassName('suffix') }, props.suffix)) : null;\n const className = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-has-value`]: this.hasValue(),\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-has-label`]: !!label,\n [`${prefixCls}-has-prefix`]: !!prefix,\n [`${prefixCls}-has-suffix`]: !!suffix,\n [`${prefixCls}-has-border`]: border,\n });\n return (React.createElement(\"span\", { className: className, style: style },\n React.createElement(\"div\", { className: `${prefixCls}-content` },\n React.createElement(\"div\", { className: `${prefixCls}-rendered-wrapper` },\n prefix,\n React.createElement(\"div\", { className: this.getSizeClassName('rendered'), ref: this.saveRenderedRef },\n this.renderPlaceholder(),\n this.renderInput(),\n this.renderFloatLabel(),\n this.renderCopyIcon(),\n showPasswordEye ? this.renderShowPassword() : null),\n suffix),\n this.getLengthInfo())));\n }\n}\nInput.displayName = 'Input';\nInput.defaultProps = {\n type: 'text',\n disabled: false,\n readOnly: false,\n showLengthInfo: true,\n showPasswordEye: false,\n border: true,\n};\nInput.propTypes = {\n type: PropTypes.string,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node,\n size: PropTypes.oneOf([Size.small, Size.default, Size.large]),\n maxLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n className: PropTypes.string,\n addonBefore: PropTypes.node,\n addonAfter: PropTypes.node,\n prefixCls: PropTypes.string,\n autosize: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n onPressEnter: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n prefix: PropTypes.node,\n suffix: PropTypes.node,\n copy: PropTypes.bool,\n onCopy: PropTypes.func,\n readOnly: PropTypes.bool,\n focused: PropTypes.bool,\n border: PropTypes.bool,\n showLengthInfo: PropTypes.bool,\n showPasswordEye: PropTypes.bool,\n};\n","import React, { cloneElement, Component } from 'react';\nimport classNames from 'classnames';\nimport Input from './Input';\nimport Button from '../button';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nexport default class Search extends Component {\n constructor() {\n super(...arguments);\n this.onSearch = () => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(this.input.input.value);\n }\n this.input.focus();\n };\n this.saveInput = (node) => {\n this.input = node;\n };\n }\n focus() {\n this.input.focus();\n }\n blur() {\n this.input.blur();\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('input-search', prefixCls);\n }\n getButtonOrIcon() {\n const { enterButton, size } = this.props;\n if (!enterButton) {\n return React.createElement(Button, { type: \"primary\", size: size, shape: \"circle\", icon: \"search\" });\n }\n const enterButtonAsElement = enterButton;\n if (enterButtonAsElement.type === Button || enterButtonAsElement.type === 'button') {\n return cloneElement(enterButtonAsElement, enterButtonAsElement.type === Button\n ? {\n className: `${this.getPrefixCls()}-button`,\n size,\n onClick: this.onSearch,\n }\n : {\n onClick: this.onSearch,\n });\n }\n if (enterButton === true) {\n return (React.createElement(Button, { type: \"primary\", size: size, shape: \"circle\", onClick: this.onSearch, icon: \"search\" }));\n }\n return (React.createElement(Button, { type: \"primary\", size: size, onClick: this.onSearch, key: \"enterButton\" }, enterButton));\n }\n render() {\n const { className, inputPrefixCls, size, suffix, enterButton, ...others } = this.props;\n const prefixCls = this.getPrefixCls();\n delete others.onSearch;\n delete others.prefixCls;\n const buttonOrIcon = this.getButtonOrIcon();\n const searchSuffix = suffix ? [suffix, buttonOrIcon] : buttonOrIcon;\n const inputClassName = classNames(prefixCls, className, {\n [`${prefixCls}-enter-button`]: !!enterButton,\n [`${prefixCls}-${size}`]: !!size,\n });\n return (React.createElement(Input, Object.assign({ onPressEnter: this.onSearch }, others, { size: size, className: inputClassName, prefixCls: getPrefixCls('input', inputPrefixCls), suffix: searchSuffix, ref: this.saveInput })));\n }\n}\nSearch.displayName = 'Search';\nSearch.defaultProps = {\n enterButton: false,\n size: Size.small,\n};\n","import React, { Component, } from 'react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport calculateNodeHeight from './calculateNodeHeight';\nimport { getPrefixCls } from '../configure';\nfunction onNextFrame(cb) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(cb);\n }\n return window.setTimeout(cb, 1);\n}\nfunction clearNextFrameAction(nextFrameId) {\n if (window.cancelAnimationFrame) {\n window.cancelAnimationFrame(nextFrameId);\n }\n else {\n window.clearTimeout(nextFrameId);\n }\n}\nexport default class TextArea extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n textareaStyles: {},\n inputLength: 0,\n focused: false,\n };\n this.resizeTextarea = () => {\n const { autosize } = this.props;\n if (!autosize || !this.textAreaRef) {\n return;\n }\n const minRows = autosize ? autosize.minRows : null;\n const maxRows = autosize ? autosize.maxRows : null;\n const textareaStyles = calculateNodeHeight(this.textAreaRef, false, minRows, maxRows);\n this.setState({ textareaStyles });\n };\n this.handleTextareaChange = (e) => {\n if (!('value' in this.props)) {\n this.resizeTextarea();\n }\n const { onChange } = this.props;\n if (onChange) {\n onChange(e);\n }\n };\n this.handleKeyDown = (e) => {\n const { onPressEnter, onKeyDown } = this.props;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n this.handleInput = () => {\n this.setState({\n inputLength: this.textAreaRef.value.length,\n });\n };\n this.saveTextAreaRef = (textArea) => {\n this.textAreaRef = textArea;\n };\n this.handleFocus = (e) => {\n const { onFocus } = this.props;\n this.setState({\n focused: true,\n });\n if (onFocus) {\n onFocus(e);\n }\n };\n this.handleBlur = (e) => {\n const { onBlur } = this.props;\n this.setState({\n focused: false,\n });\n if (onBlur) {\n onBlur(e);\n }\n };\n }\n componentDidMount() {\n this.resizeTextarea();\n if (this.textAreaRef.value) {\n this.setState({\n inputLength: this.textAreaRef.value.length,\n });\n }\n const { autoFocus } = this.props;\n if (autoFocus) {\n this.setState({\n focused: true,\n });\n }\n }\n componentWillReceiveProps(nextProps) {\n // Re-render with the new content then recalculate the height as required.\n if (this.textAreaRef.value !== nextProps.value) {\n const inputLength = nextProps.value && nextProps.value.length;\n this.setState({\n inputLength: inputLength || 0,\n });\n }\n if (nextProps.autoFocus) {\n this.setState({\n focused: true,\n });\n }\n const { value } = this.props;\n if (value !== nextProps.value) {\n if (this.nextFrameActionId) {\n clearNextFrameAction(this.nextFrameActionId);\n }\n this.nextFrameActionId = onNextFrame(this.resizeTextarea);\n }\n }\n focus() {\n this.textAreaRef.focus();\n }\n blur() {\n this.textAreaRef.blur();\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('input', prefixCls);\n }\n getTextAreaClassName() {\n const { className } = this.props;\n const prefixCls = this.getPrefixCls();\n return classNames(prefixCls, `${prefixCls}-textarea-element`, className);\n }\n getWrapperClassName() {\n const { disabled, label, border } = this.props;\n const { inputLength, focused } = this.state;\n const prefixCls = this.getPrefixCls();\n return classNames(`${prefixCls}-wrapper`, `${prefixCls}-textarea`, {\n [`${prefixCls}-has-value`]: inputLength !== 0,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-has-label`]: !!label,\n [`${prefixCls}-has-border`]: border,\n });\n }\n getLengthInfo() {\n const { maxLength, showLengthInfo } = this.props;\n const prefixCls = this.getPrefixCls();\n const { inputLength } = this.state;\n return (maxLength && showLengthInfo) ||\n (maxLength && maxLength > 0 && inputLength === maxLength) ? (React.createElement(\"div\", { className: `${prefixCls}-length-info` }, `${inputLength}/${maxLength}`)) : null;\n }\n getLabel() {\n const { placeholder, label } = this.props;\n const { inputLength, focused } = this.state;\n if (inputLength === 0 && !focused && placeholder) {\n return placeholder;\n }\n return label;\n }\n renderFloatLabel() {\n const label = this.getLabel();\n if (label) {\n const prefixCls = this.getPrefixCls();\n return (React.createElement(\"div\", { className: `${prefixCls}-label-wrapper` },\n React.createElement(\"div\", { className: `${prefixCls}-label` }, label)));\n }\n }\n render() {\n const props = this.props;\n const { textareaStyles } = this.state;\n const prefixCls = this.getPrefixCls();\n const otherProps = omit(props, [\n 'prefixCls',\n 'onPressEnter',\n 'autosize',\n 'placeholder',\n 'focused',\n 'showLengthInfo',\n ]);\n const style = {\n ...props.style,\n ...textareaStyles,\n };\n // Make sure it could be reset when using form.getFieldDecorator\n if ('value' in otherProps) {\n otherProps.value = otherProps.value || '';\n }\n otherProps.onInput = this.handleInput;\n return (React.createElement(\"span\", { className: this.getWrapperClassName() },\n React.createElement(\"div\", { className: `${prefixCls}-rendered-wrapper` },\n React.createElement(\"textarea\", Object.assign({}, otherProps, { className: this.getTextAreaClassName(), style: style, onKeyDown: this.handleKeyDown, onChange: this.handleTextareaChange, ref: this.saveTextAreaRef, onInput: this.handleInput, onBlur: this.handleBlur, onFocus: this.handleFocus })),\n this.renderFloatLabel()),\n this.getLengthInfo()));\n }\n}\nTextArea.displayName = 'TextArea';\nTextArea.defaultProps = {\n showLengthInfo: true,\n border: true,\n};\n","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\nconst SIZING_STYLE = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\nconst computedStyleCache = {};\nlet hiddenTextarea;\nfunction calculateNodeStyling(node, useCache = false) {\n const nodeRef = (node.getAttribute('id') ||\n node.getAttribute('data-reactid') ||\n node.getAttribute('name'));\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n const style = window.getComputedStyle(node);\n const boxSizing = style.getPropertyValue('box-sizing') ||\n style.getPropertyValue('-moz-box-sizing') ||\n style.getPropertyValue('-webkit-box-sizing');\n const paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) +\n parseFloat(style.getPropertyValue('padding-top'));\n const borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) +\n parseFloat(style.getPropertyValue('border-top-width'));\n const sizingStyle = SIZING_STYLE.map(name => `${name}:${style.getPropertyValue(name)}`).join(';');\n const nodeInfo = {\n sizingStyle,\n paddingSize,\n borderSize,\n boxSizing,\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateNodeHeight(uiTextNode, useCache = false, minRows = null, maxRows = null) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n }\n else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n const { paddingSize, borderSize, boxSizing, sizingStyle } = calculateNodeStyling(uiTextNode, useCache);\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n let minHeight = Number.MIN_SAFE_INTEGER;\n let maxHeight = Number.MAX_SAFE_INTEGER;\n let height = hiddenTextarea.scrollHeight;\n let overflowY;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n }\n else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n // Remove scroll bar flash when autosize without maxRows\n if (!maxRows) {\n overflowY = 'hidden';\n }\n return { height, minHeight, maxHeight, overflowY };\n}\n","import Input from './Input';\nimport Group from './Group';\nimport Search from './Search';\nimport TextArea from './TextArea';\nexport { InputProps } from './Input';\nexport { GroupProps } from './Group';\nexport { SearchProps } from './Search';\nexport { TextAreaProps } from './TextArea';\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nexport default Input;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../button/style';\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nexport default class LocaleReceiver extends Component {\n getLocale() {\n const { componentName, defaultLocale } = this.props;\n const { c7nLocale } = this.context;\n const localeFromContext = c7nLocale && c7nLocale[componentName];\n return {\n ...(typeof defaultLocale === 'function' ? defaultLocale() : defaultLocale),\n ...(localeFromContext || {}),\n };\n }\n getLocaleCode() {\n const { c7nLocale } = this.context;\n const localeCode = c7nLocale && c7nLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (c7nLocale && c7nLocale.exist && !localeCode) {\n return 'en-us';\n }\n return localeCode;\n }\n render() {\n const { children } = this.props;\n return children(this.getLocale(), this.getLocaleCode());\n }\n}\nLocaleReceiver.contextTypes = {\n c7nLocale: PropTypes.object,\n};\n","import Pagination from '../rc-components/pagination/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\nimport Cascader from '../rc-components/cascader/locale/en_US';\nexport default {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n Cascader,\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK',\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel',\n },\n Transfer: {\n titles: ['', ''],\n notFoundContent: 'Not Found',\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n },\n Select: {\n notFoundContent: 'Not Found',\n selectAll: 'Select All',\n selectNone: 'None',\n filterPlaceholder: 'Input for filter',\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n },\n Collapse: {\n fold: 'Fold',\n unfold: 'Unfold',\n },\n imageCrop: {\n editImage: 'Edit image',\n avatarUploadError: 'Avatar upload error',\n avatarServerError: 'Upload server error',\n avatarUpload: 'Picture upload',\n avatarReminder: `Here you can crop, rotate, and click \"Save\" Complete the avatar modification`,\n preview: 'Preview',\n reUpload: 'Upload again',\n imageTooLarge: 'The picture is too large, please upload again',\n imageUploadError: 'Image upload error',\n imageDragHere: 'Please drag the picture here',\n pleaseUpload: 'Please upload, less than',\n uploadType: `and the type of picture is `,\n picture: '',\n cancelButton: 'Cancel',\n saveButton: 'Save',\n changeAvatar: 'Modify avatar',\n },\n PerformanceTable: {\n emptyMessage: 'No data found',\n loading: 'Loading...',\n },\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../tooltip';\nimport { Item } from '../rc-components/menu';\nclass MenuItem extends Component {\n constructor() {\n super(...arguments);\n this.onKeyDown = e => {\n this.menuItem.onKeyDown(e);\n };\n this.saveMenuItem = (menuItem) => {\n this.menuItem = menuItem;\n };\n }\n render() {\n const { inlineCollapsed } = this.context;\n const props = this.props;\n const item = React.createElement(Item, Object.assign({}, props, { ref: this.saveMenuItem }));\n if (inlineCollapsed && props.level === 1) {\n return (React.createElement(Tooltip, { title: props.children, placement: \"right\", overlayClassName: `${props.rootPrefixCls}-inline-collapsed-tooltip` }, item));\n }\n return item;\n }\n}\nMenuItem.contextTypes = {\n inlineCollapsed: PropTypes.bool,\n};\nMenuItem.isMenuItem = 1;\nexport default MenuItem;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu } from '../rc-components/menu';\nclass SubMenu extends Component {\n constructor() {\n super(...arguments);\n this.onKeyDown = e => {\n this.subMenu.onKeyDown(e);\n };\n this.saveSubMenu = (subMenu) => {\n this.subMenu = subMenu;\n };\n }\n render() {\n const { rootPrefixCls, className } = this.props;\n const { menuTheme } = this.context;\n return (React.createElement(RcSubMenu, Object.assign({}, this.props, { ref: this.saveSubMenu, popupClassName: classNames(`${rootPrefixCls}-${menuTheme}`, className) })));\n }\n}\nSubMenu.contextTypes = {\n menuTheme: PropTypes.string,\n};\nexport default SubMenu;\n","import React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport animation from '../_util/openAnimation';\nimport warning from '../_util/warning';\nimport SubMenu from './SubMenu';\nimport Item from './MenuItem';\nimport RcMenu, { Divider, ItemGroup } from '../rc-components/menu';\nimport { getPrefixCls } from '../configure';\nexport default class Menu extends Component {\n constructor(props) {\n super(props);\n this.inlineOpenKeys = [];\n this.handleClick = (e) => {\n this.handleOpenChange([]);\n const { onClick } = this.props;\n if (onClick) {\n onClick(e);\n }\n };\n this.handleOpenChange = (openKeys) => {\n this.setOpenKeys(openKeys);\n const { onOpenChange } = this.props;\n if (onOpenChange) {\n onOpenChange(openKeys);\n }\n };\n warning(!('onOpen' in props || 'onClose' in props), '`onOpen` and `onClose` are removed, please use `onOpenChange` instead');\n warning(!('inlineCollapsed' in props && props.mode !== 'inline'), '`inlineCollapsed` should only be used when Menu\\'s `mode` is inline.');\n let openKeys;\n if ('defaultOpenKeys' in props) {\n openKeys = props.defaultOpenKeys;\n }\n else if ('openKeys' in props) {\n openKeys = props.openKeys;\n }\n this.state = {\n openKeys: openKeys || [],\n };\n }\n getChildContext() {\n const { theme } = this.props;\n return {\n inlineCollapsed: this.getInlineCollapsed(),\n menuTheme: theme,\n };\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('menu', prefixCls);\n }\n componentWillReceiveProps(nextProps, nextContext) {\n const { mode, inlineCollapsed } = this.props;\n if (mode === 'inline' && nextProps.mode !== 'inline') {\n this.switchModeFromInline = true;\n }\n if ('openKeys' in nextProps) {\n this.setState({ openKeys: nextProps.openKeys });\n return;\n }\n const { openKeys } = this.state;\n const { siderCollapsed } = this.context;\n if ((nextProps.inlineCollapsed && !inlineCollapsed) ||\n (nextContext.siderCollapsed && !siderCollapsed)) {\n this.switchModeFromInline =\n !!openKeys.length &&\n !!findDOMNode(this).querySelectorAll(`.${this.getPrefixCls()}-submenu-open`).length;\n this.inlineOpenKeys = openKeys;\n this.setState({ openKeys: [] });\n }\n if ((!nextProps.inlineCollapsed && inlineCollapsed) ||\n (!nextContext.siderCollapsed && siderCollapsed)) {\n this.setState({ openKeys: this.inlineOpenKeys });\n this.inlineOpenKeys = [];\n }\n }\n setOpenKeys(openKeys) {\n if (!('openKeys' in this.props)) {\n this.setState({ openKeys });\n }\n }\n getRealMenuMode() {\n const inlineCollapsed = this.getInlineCollapsed();\n if (this.switchModeFromInline && inlineCollapsed) {\n return 'inline';\n }\n const { mode } = this.props;\n return inlineCollapsed ? 'vertical' : mode;\n }\n getInlineCollapsed() {\n const { inlineCollapsed } = this.props;\n const { siderCollapsed = inlineCollapsed } = this.context;\n return siderCollapsed;\n }\n getMenuOpenAnimation(menuMode) {\n const { openAnimation, openTransitionName } = this.props;\n let menuOpenAnimation = openAnimation || openTransitionName;\n if (openAnimation === undefined && openTransitionName === undefined) {\n switch (menuMode) {\n case 'horizontal':\n menuOpenAnimation = 'slide-up';\n break;\n case 'vertical':\n case 'vertical-left':\n case 'vertical-right':\n // When mode switch from inline\n // submenu should hide without animation\n if (this.switchModeFromInline) {\n menuOpenAnimation = '';\n this.switchModeFromInline = false;\n }\n else {\n menuOpenAnimation = 'zoom-big';\n }\n break;\n case 'inline':\n menuOpenAnimation = {\n ...animation,\n leave: (node, done) => animation.leave(node, () => {\n // Make sure inline menu leave animation finished before mode is switched\n this.switchModeFromInline = false;\n this.setState({});\n // when inlineCollapsed change false to true, all submenu will be unmounted,\n // so that we don't need handle animation leaving.\n if (this.getRealMenuMode() === 'vertical') {\n return;\n }\n done();\n }),\n };\n break;\n default:\n }\n }\n return menuOpenAnimation;\n }\n render() {\n const { className, theme } = this.props;\n const { openKeys } = this.state;\n const prefixCls = this.getPrefixCls();\n const menuMode = this.getRealMenuMode();\n const menuOpenAnimation = this.getMenuOpenAnimation(menuMode);\n const menuClassName = classNames(className, `${prefixCls}-${theme}`, {\n [`${prefixCls}-inline-collapsed`]: this.getInlineCollapsed(),\n });\n const menuProps = {\n openKeys,\n onOpenChange: this.handleOpenChange,\n className: menuClassName,\n mode: menuMode,\n };\n if (menuMode !== 'inline') {\n // closing vertical popup submenu after click it\n menuProps.onClick = this.handleClick;\n menuProps.openTransitionName = menuOpenAnimation;\n }\n else {\n menuProps.openAnimation = menuOpenAnimation;\n }\n const { collapsedWidth } = this.context;\n if (this.getInlineCollapsed() &&\n (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px')) {\n return null;\n }\n return React.createElement(RcMenu, Object.assign({}, this.props, menuProps, { prefixCls: prefixCls }));\n }\n}\nMenu.displayName = 'Menu';\nMenu.Divider = Divider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nMenu.defaultProps = {\n className: '',\n theme: 'light',\n focusable: false,\n};\nMenu.childContextTypes = {\n inlineCollapsed: PropTypes.bool,\n menuTheme: PropTypes.string,\n};\nMenu.contextTypes = {\n siderCollapsed: PropTypes.bool,\n collapsedWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../tooltip/style';\nimport '../../ripple/style';\n","import React from 'react';\nimport noop from 'lodash/noop';\nimport isString from 'lodash/isString';\nimport Icon from '../icon';\nimport Notification from '../rc-components/notification';\nimport { getPlacementStyle, getPlacementTransitionName } from './util';\nimport { getPrefixCls } from '../configure';\nlet defaultDuration = 3;\nlet defaultTop = 24;\nlet defaultBottom = 24;\nlet messageInstance;\nlet key = 1;\nlet customizePrefixCls;\nlet transitionName = 'move-up';\nlet defaultPlacement = 'leftBottom';\nlet getContainer;\nfunction getCustomizePrefixCls() {\n return getPrefixCls('message', customizePrefixCls);\n}\nfunction getMessageInstance(placement, callback, contentClassName) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n Notification.newInstance({\n prefixCls: getCustomizePrefixCls(),\n style: getPlacementStyle(placement, defaultTop, defaultBottom),\n transitionName: getPlacementTransitionName(placement, transitionName),\n getContainer,\n contentClassName,\n }, (instance) => {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n messageInstance = instance;\n callback(instance);\n });\n}\nfunction notice(content, duration = defaultDuration, type, onClose, placement) {\n const iconType = {\n info: 'info',\n success: 'check_circle',\n error: 'error',\n warning: 'warning',\n loading: 'loading',\n }[type];\n if (isString(onClose)) {\n placement = onClose;\n onClose = noop;\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = defaultDuration;\n }\n else if (isString(duration)) {\n placement = duration;\n }\n const target = key++;\n const prefixCls = getCustomizePrefixCls();\n getMessageInstance(placement || defaultPlacement, instance => {\n instance.notice({\n key: target,\n duration,\n style: {},\n contentClassName: `${prefixCls}-content-${type}`,\n content: (React.createElement(\"div\", { className: `${prefixCls}-custom-content ${prefixCls}-${type}` },\n React.createElement(Icon, { type: iconType }),\n React.createElement(\"span\", null, content))),\n onClose,\n });\n }, `${prefixCls}-content-${type}`);\n return () => {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n}\nexport default {\n info(content, duration, onClose, placement) {\n return notice(content, duration, 'info', onClose, placement);\n },\n success(content, duration, onClose, placement) {\n return notice(content, duration, 'success', onClose, placement);\n },\n error(content, duration, onClose, placement) {\n return notice(content, duration, 'error', onClose, placement);\n },\n // Departed usage, please use warning()\n warn(content, duration, onClose, placement) {\n return notice(content, duration, 'warning', onClose, placement);\n },\n warning(content, duration, onClose, placement) {\n return notice(content, duration, 'warning', onClose, placement);\n },\n loading(content, duration, onClose, placement) {\n return notice(content, duration, 'loading', onClose, placement);\n },\n config(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n if (options.bottom !== undefined) {\n defaultBottom = options.bottom;\n messageInstance = null; // delete messageInstance for new defaultBottom\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n customizePrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n }\n if (options.placement !== undefined) {\n defaultPlacement = options.placement;\n }\n },\n destroy() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n },\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","export function getPlacementStyle(placement, defaultTop, defaultBottom) {\n const top = defaultTop ? `${defaultTop}px` : 0;\n const bottom = defaultBottom ? `${defaultBottom}px` : 0;\n const target = {\n left: '24px',\n right: '24px',\n top,\n bottom,\n };\n let style = {};\n switch (placement) {\n case 'top':\n style = {\n bottom: 'auto',\n };\n break;\n case 'right':\n style = {\n left: 'auto',\n top: '50%',\n bottom: 'auto',\n };\n break;\n case 'bottom':\n style = {\n top: 'auto',\n };\n break;\n case 'left':\n style = {\n right: 'auto',\n top: '50%',\n bottom: 'auto',\n };\n break;\n case 'topLeft':\n case 'leftTop':\n style = {\n right: 'auto',\n bottom: 'auto',\n };\n break;\n case 'topRight':\n case 'rightTop':\n style = {\n left: 'auto',\n bottom: 'auto',\n };\n break;\n case 'bottomLeft':\n case 'leftBottom':\n style = {\n right: 'auto',\n top: 'auto',\n };\n break;\n case 'bottomRight':\n case 'rightBottom':\n style = {\n left: 'auto',\n top: 'auto',\n };\n break;\n default:\n break;\n }\n Object.assign(target, style);\n return target;\n}\nexport function getPlacementTransitionName(placement, defaultTransitionName) {\n let transitionName = defaultTransitionName;\n switch (placement) {\n case 'top':\n case 'topLeft':\n case 'topRight':\n transitionName = 'move-up';\n break;\n case 'left':\n case 'leftTop':\n case 'leftBottom':\n transitionName = 'move-left';\n break;\n case 'bottom':\n case 'bottomLeft':\n case 'bottomRight':\n transitionName = 'move-down';\n break;\n case 'right':\n case 'rightTop':\n case 'rightBottom':\n transitionName = 'move-right';\n break;\n default:\n break;\n }\n return transitionName;\n}\n","import React from 'react';\nimport Icon from '../icon';\nimport Notification from '../rc-components/notification';\nimport { getPrefixCls } from '../configure';\nconst notificationInstance = {};\nlet defaultDuration = 4.5;\nlet defaultTop = 24;\nlet defaultBottom = 24;\nlet defaultPlacement = 'topRight';\nlet defaultGetContainer;\nfunction setNotificationConfig(options) {\n const { duration, placement, bottom, top, getContainer } = options;\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n}\nfunction getPlacementStyle(placement) {\n let style;\n switch (placement) {\n case 'topLeft':\n style = {\n left: 0,\n top: defaultTop,\n bottom: 'auto',\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: defaultTop,\n bottom: 'auto',\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: defaultBottom,\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: defaultBottom,\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(prefixCls, placement, callback) {\n const cacheKey = `${prefixCls}-${placement}`;\n if (notificationInstance[cacheKey]) {\n callback(notificationInstance[cacheKey]);\n return;\n }\n Notification.newInstance({\n prefixCls,\n className: `${prefixCls}-${placement}`,\n style: getPlacementStyle(placement),\n getContainer: defaultGetContainer,\n closeIcon: React.createElement(Icon, { className: `${prefixCls}-close-icon`, type: \"close\" }),\n }, (notification) => {\n notificationInstance[cacheKey] = notification;\n callback(notification);\n });\n}\nconst typeToIcon = {\n success: 'check',\n info: 'info',\n error: 'error',\n warning: 'warning',\n};\nfunction notice(args) {\n const outerPrefixCls = getPrefixCls('notification', args.prefixCls);\n const prefixCls = `${outerPrefixCls}-notice`;\n const duration = args.duration === undefined ? defaultDuration : args.duration;\n let iconNode = null;\n if (args.icon) {\n iconNode = React.createElement(\"span\", { className: `${prefixCls}-icon` }, args.icon);\n }\n else if (args.type) {\n const iconType = typeToIcon[args.type];\n iconNode = (React.createElement(Icon, { className: `${prefixCls}-icon ${prefixCls}-icon-${args.type}`, type: iconType }));\n }\n const autoMarginTag = !args.description && iconNode ? (React.createElement(\"span\", { className: `${prefixCls}-message-single-line-auto-margin` })) : null;\n getNotificationInstance(outerPrefixCls, args.placement || defaultPlacement, (notification) => {\n notification.notice({\n content: (React.createElement(\"div\", { className: iconNode ? `${prefixCls}-with-icon` : '' },\n iconNode,\n React.createElement(\"div\", { className: `${prefixCls}-message` },\n autoMarginTag,\n args.message),\n React.createElement(\"div\", { className: `${prefixCls}-description` }, args.description),\n args.btn ? React.createElement(\"span\", { className: `${prefixCls}-btn` }, args.btn) : null)),\n duration,\n closable: true,\n onClose: args.onClose,\n key: args.key,\n style: args.style || {},\n className: args.className,\n });\n });\n}\nconst api = {\n open: notice,\n close(key) {\n Object.keys(notificationInstance).forEach(cacheKey => notificationInstance[cacheKey].removeNotice(key));\n },\n config: setNotificationConfig,\n destroy() {\n Object.keys(notificationInstance).forEach(cacheKey => {\n notificationInstance[cacheKey].destroy();\n delete notificationInstance[cacheKey];\n });\n },\n};\n['success', 'info', 'warning', 'error'].forEach(type => {\n api[type] = (args) => api.open({\n ...args,\n type,\n });\n});\napi.warn = api.warning;\nexport default api;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../select/style';\nimport '../../input/style';\nimport '../../ripple/style';\n","import React, { Component } from 'react';\nimport Tooltip from '../tooltip';\nimport warning from '../_util/warning';\nimport { getPrefixCls } from '../configure';\nexport default class Popover extends Component {\n constructor() {\n super(...arguments);\n this.getOverlay = () => {\n const { title, content } = this.props;\n const prefixCls = this.getPrefixCls();\n warning(!('overlay' in this.props), 'Popover[overlay] is removed, please use Popover[content] instead');\n const header = typeof title === 'function' ? title() : title;\n return (React.createElement(\"div\", null,\n header && React.createElement(\"div\", { className: `${prefixCls}-title` }, header),\n React.createElement(\"div\", { className: `${prefixCls}-inner-content` }, typeof content === 'function' ? content() : content)));\n };\n this.saveTooltip = (node) => {\n this.tooltip = node;\n };\n }\n getPopupDomNode() {\n return this.tooltip.getPopupDomNode();\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('popover', prefixCls);\n }\n render() {\n const props = { ...this.props };\n delete props.title;\n return (React.createElement(Tooltip, Object.assign({}, props, { prefixCls: this.getPrefixCls(), ref: this.saveTooltip, overlay: this.getOverlay })));\n }\n}\nPopover.displayName = 'Popover';\nPopover.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big',\n trigger: 'hover',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n overlayStyle: {},\n};\n","import React from 'react';\nconst SIZE = 50;\nexport default function Loading() {\n return (React.createElement(\"svg\", { viewBox: `0 0 ${SIZE} ${SIZE}` },\n React.createElement(\"circle\", { cx: SIZE / 2, cy: SIZE / 2, r: SIZE / 2 - 5 })));\n}\nLoading.displayName = 'Loading';\n","export var ProgressType;\n(function (ProgressType) {\n ProgressType[\"line\"] = \"line\";\n ProgressType[\"circle\"] = \"circle\";\n ProgressType[\"dashboard\"] = \"dashboard\";\n ProgressType[\"loading\"] = \"loading\";\n})(ProgressType || (ProgressType = {}));\nexport var ProgressStatus;\n(function (ProgressStatus) {\n ProgressStatus[\"normal\"] = \"normal\";\n ProgressStatus[\"success\"] = \"success\";\n ProgressStatus[\"active\"] = \"active\";\n ProgressStatus[\"exception\"] = \"exception\";\n})(ProgressStatus || (ProgressStatus = {}));\nexport var ProgressPosition;\n(function (ProgressPosition) {\n ProgressPosition[\"top\"] = \"top\";\n ProgressPosition[\"bottom\"] = \"bottom\";\n ProgressPosition[\"left\"] = \"left\";\n ProgressPosition[\"right\"] = \"right\";\n})(ProgressPosition || (ProgressPosition = {}));\n","import Progress from './progress';\nexport { ProgressProps } from './progress';\nexport default Progress;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { Circle } from '../rc-components/progress';\nimport Loading from './Loading';\nimport { Size } from '../_util/enum';\nimport { ProgressPosition, ProgressStatus, ProgressType } from './enum';\nimport { getPrefixCls } from '../configure';\nexport default class Progress extends Component {\n constructor() {\n super(...arguments);\n this.renderPointer = () => {\n const props = this.props;\n const { prefixCls: customizePrefixCls, \n // strokeColor,\n percent = 0, status, successPercent, } = props;\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\n const progressStatus = parseInt(successPercent ? successPercent.toString() : percent.toString(), 10) >= 100 &&\n !('status' in props)\n ? ProgressStatus.success\n : status || ProgressStatus.normal;\n return (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"38\", height: \"32\", viewBox: \"0 0 38 32\" },\n React.createElement(\"path\", { \n // style={{\n // fill: strokeColor ? strokeColor : '',\n // }}\n className: `${prefixCls}-status-pointer-${progressStatus}`, fill: \"#6887E8\", d: \"M103.371587,49.724578 C103.681687,50.1292204 103.634794,50.6951896 103.280961,51.0440945 L103.186137,51.1265795 L78.8502947,69.7769214 C79.5504585,70.8623565 79.9567807,72.1551739 79.9567807,73.5428929 C79.9567807,77.3850168 76.8421239,80.4996736 73,80.4996736 C69.1578761,80.4996736 66.0432193,77.3850168 66.0432193,73.5428929 C66.0432193,69.700769 69.1578761,66.5861122 73,66.5861122 C74.7317808,66.5861122 76.3157678,67.218893 77.5333601,68.265854 L101.969586,49.5391281 C102.407948,49.2031866 103.035646,49.2862154 103.371587,49.724578 Z M73,68.5861122 C70.2624456,68.5861122 68.0432193,70.8053385 68.0432193,73.5428929 C68.0432193,76.2804473 70.2624456,78.4996736 73,78.4996736 C75.7375544,78.4996736 77.9567807,76.2804473 77.9567807,73.5428929 C77.9567807,70.8053385 75.7375544,68.5861122 73,68.5861122 Z\", transform: \"translate(-66 -49)\" })));\n };\n /**\n * 计算指针角度\n */\n this.getPointerDeg = () => {\n const { percent = 0, gapDegree = 0, } = this.props;\n // 缺口角度\n const gapDeg = gapDegree || 75;\n // percent 角度\n const percentDeg = (360 - gapDeg) * (percent / 100);\n // 初始位置 0 -> 126 + 缺口角度/2 + percent 角度 + diffDeg\n let diffDeg = 0;\n if (percent <= 75 && percent > 50) {\n diffDeg = -3;\n }\n else if (percent > 75) {\n diffDeg = -5;\n }\n else if (percent < 50) {\n diffDeg = 5;\n }\n const deg = 128 + gapDeg / 2 + percentDeg + diffDeg;\n return { transform: `rotate(${deg}deg)` };\n };\n }\n render() {\n const props = this.props;\n const { prefixCls: customizePrefixCls, className, percent = 0, status, format, trailColor, size, successPercent, type, strokeWidth, strokeColor, width, showInfo, gapDegree = 0, gapPosition, showPointer, ...restProps } = props;\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\n const progressStatus = parseInt(successPercent ? successPercent.toString() : percent.toString(), 10) >= 100 &&\n !('status' in props)\n ? ProgressStatus.success\n : status || ProgressStatus.normal;\n let progressInfo;\n let progressCenter;\n let progress;\n const textFormatter = format || (percentNumber => `${percentNumber}%`);\n if (showInfo) {\n let text;\n const circleType = type === ProgressType.circle || type === ProgressType.dashboard;\n if (progressStatus === ProgressStatus.exception) {\n text = format ? textFormatter(percent) : React.createElement(Icon, { type: circleType ? 'close' : 'cancel' });\n }\n else if (progressStatus === ProgressStatus.success) {\n text = format ? (textFormatter(percent)) : (React.createElement(Icon, { type: circleType ? 'check' : 'check_circle' }));\n }\n else {\n text = textFormatter(percent);\n }\n progressInfo = React.createElement(\"span\", { className: `${prefixCls}-text` }, text);\n if (showPointer) {\n progressCenter = (React.createElement(\"div\", { className: `${prefixCls}-pointer`, style: this.getPointerDeg() }, this.renderPointer()));\n progressInfo = React.createElement(\"span\", { className: `${prefixCls}-text-bottom` }, text);\n }\n }\n if (type === ProgressType.line) {\n const percentStyle = {\n width: `${percent}%`,\n height: strokeWidth || (size === Size.small ? 6 : 8),\n background: strokeColor,\n };\n const successPercentStyle = {\n width: `${successPercent}%`,\n height: strokeWidth || (size === Size.small ? 6 : 8),\n };\n const successSegment = successPercent !== undefined ? (React.createElement(\"div\", { className: `${prefixCls}-success-bg`, style: successPercentStyle })) : null;\n progress = (React.createElement(\"div\", null,\n React.createElement(\"div\", { className: `${prefixCls}-outer` },\n React.createElement(\"div\", { className: `${prefixCls}-inner` },\n React.createElement(\"div\", { className: `${prefixCls}-bg`, style: percentStyle }),\n successSegment)),\n progressInfo));\n }\n else if (type === ProgressType.circle || type === ProgressType.dashboard) {\n const circleSize = width || 120;\n const circleStyle = {\n width: circleSize,\n height: circleSize,\n fontSize: circleSize * 0.15 + 6,\n };\n const circleWidth = strokeWidth || 6;\n const gapPos = gapPosition ||\n (type === ProgressType.dashboard && ProgressPosition.bottom) ||\n ProgressPosition.top;\n const gapDeg = gapDegree || (type === ProgressType.dashboard && 75);\n progress = (React.createElement(\"div\", { className: `${prefixCls}-inner`, style: circleStyle },\n React.createElement(Circle, { percent: percent, strokeWidth: circleWidth, trailWidth: circleWidth, trailColor: trailColor, strokeColor: strokeColor, prefixCls: prefixCls, gapDegree: gapDeg, gapPosition: gapPos }),\n progressCenter,\n progressInfo));\n }\n else if (type === ProgressType.loading) {\n progress = (React.createElement(\"div\", { className: `${prefixCls}-inner` },\n React.createElement(Loading, null)));\n }\n const classString = classNames(prefixCls, {\n [`${prefixCls}-${(type === ProgressType.dashboard && ProgressType.circle) || type}`]: true,\n [`${prefixCls}-status-${progressStatus}`]: true,\n [`${prefixCls}-show-info`]: showInfo,\n [`${prefixCls}-${size}`]: size,\n }, className);\n return (React.createElement(\"div\", Object.assign({}, restProps, { className: classString }), progress));\n }\n}\nProgress.displayName = 'Progress';\nProgress.defaultProps = {\n type: ProgressType.line,\n percent: 0,\n showInfo: true,\n showPointer: false,\n trailColor: '#f3f3f3',\n size: Size.default,\n};\nProgress.propTypes = {\n status: PropTypes.oneOf([\n ProgressStatus.normal,\n ProgressStatus.exception,\n ProgressStatus.active,\n ProgressStatus.success,\n ]),\n type: PropTypes.oneOf([\n ProgressType.line,\n ProgressType.circle,\n ProgressType.dashboard,\n ProgressType.loading,\n ]),\n showInfo: PropTypes.bool,\n showPointer: PropTypes.bool,\n percent: PropTypes.number,\n width: PropTypes.number,\n strokeWidth: PropTypes.number,\n strokeColor: PropTypes.string,\n trailColor: PropTypes.string,\n format: PropTypes.func,\n gapDegree: PropTypes.number,\n size: PropTypes.oneOf([Size.default, Size.small, Size.large]),\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import React, { Children, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport shallowEqual from 'lodash/isEqual';\nimport Radio from './radio';\nimport { getPrefixCls } from '../configure';\nfunction getCheckedValue(children) {\n let value = null;\n let matched = false;\n Children.forEach(children, (radio) => {\n if (radio && radio.props && radio.props.checked) {\n value = radio.props.value;\n matched = true;\n }\n });\n return matched ? { value } : undefined;\n}\nexport default class RadioGroup extends Component {\n constructor(props) {\n super(props);\n this.onRadioChange = (ev) => {\n const { value: lastValue } = this.state;\n const { value } = ev.target;\n if (!('value' in this.props)) {\n this.setState({\n value,\n });\n }\n const { onChange } = this.props;\n if (onChange && value !== lastValue) {\n onChange(ev);\n }\n };\n let value;\n if ('value' in props) {\n value = props.value;\n }\n else if ('defaultValue' in props) {\n value = props.defaultValue;\n }\n else {\n const checkedValue = getCheckedValue(props.children);\n value = checkedValue && checkedValue.value;\n }\n this.state = {\n value,\n };\n }\n getChildContext() {\n const { disabled, name } = this.props;\n const { value } = this.state;\n return {\n radioGroup: {\n onChange: this.onRadioChange,\n value,\n disabled,\n name,\n },\n };\n }\n componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n this.setState({\n value: nextProps.value,\n });\n }\n else {\n const checkedValue = getCheckedValue(nextProps.children);\n if (checkedValue) {\n this.setState({\n value: checkedValue.value,\n });\n }\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);\n }\n render() {\n const { props } = this;\n const { prefixCls: customizePrefixCls, className = '', options, size, label, disabled } = props;\n const { value } = this.state;\n const prefixCls = getPrefixCls('radio-group', customizePrefixCls);\n const classString = classNames(prefixCls, {\n [`${prefixCls}-${size}`]: size,\n }, className);\n const wrapperClassString = classNames({\n [`${prefixCls}-wrapper`]: true,\n [`${prefixCls}-has-label`]: label,\n });\n const labelClassString = classNames(`${prefixCls}-label`, {\n 'label-disabled': disabled,\n });\n let { children } = props;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n children = options.map((option, index) => {\n if (typeof option === 'string') {\n // 此处类型自动推导为 string\n return (React.createElement(Radio, { key: String(index), disabled: disabled, value: option, checked: value === option }, option));\n }\n // 此处类型自动推导为 { label: string value: string }\n return (React.createElement(Radio, { key: String(index), disabled: option.disabled || disabled, value: option.value, checked: value === option.value }, option.label));\n });\n }\n return (React.createElement(\"div\", { className: wrapperClassString },\n props.label ? React.createElement(\"span\", { className: labelClassString }, props.label) : null,\n React.createElement(\"div\", { className: classString, style: props.style, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave, id: props.id }, children)));\n }\n}\nRadioGroup.displayName = 'RadioGroup';\nRadioGroup.defaultProps = {\n disabled: false,\n};\nRadioGroup.childContextTypes = {\n radioGroup: PropTypes.any,\n};\n","import Radio from './radio';\nimport Group from './group';\nimport Button from './radioButton';\nexport * from './interface';\nRadio.Button = Button;\nRadio.Group = Group;\nexport { Button, Group };\nexport default Radio;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport shallowEqual from 'lodash/isEqual';\nimport RcCheckbox from '../rc-components/checkbox';\nimport { getPrefixCls } from '../configure';\nexport default class Radio extends Component {\n constructor() {\n super(...arguments);\n this.saveCheckbox = (node) => {\n this.rcCheckbox = node;\n };\n this.onChange = (e) => {\n const { onChange } = this.props;\n const { radioGroup } = this.context;\n if (onChange) {\n onChange(e);\n }\n if (radioGroup && radioGroup.onChange) {\n radioGroup.onChange(e);\n }\n };\n }\n shouldComponentUpdate(nextProps, nextState, nextContext) {\n const { radioGroup } = this.context;\n return (!shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state, nextState) ||\n !shallowEqual(radioGroup, nextContext.radioGroup));\n }\n focus() {\n this.rcCheckbox.focus();\n }\n blur() {\n this.rcCheckbox.blur();\n }\n render() {\n const { props, context } = this;\n const { prefixCls: customizePrefixCls, className, children, style, ...restProps } = props;\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n const { radioGroup } = context;\n const radioProps = { ...restProps };\n if (radioGroup) {\n radioProps.name = radioGroup.name;\n radioProps.onChange = this.onChange;\n radioProps.checked = props.value === radioGroup.value;\n radioProps.disabled = props.disabled || radioGroup.disabled;\n }\n const wrapperClassString = classNames(className, {\n [`${prefixCls}-wrapper`]: true,\n [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n });\n return (React.createElement(\"label\", { className: wrapperClassString, style: style, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave },\n React.createElement(RcCheckbox, Object.assign({}, radioProps, { prefixCls: prefixCls, ref: this.saveCheckbox })),\n children !== undefined ? React.createElement(\"span\", null, children) : null));\n }\n}\nRadio.displayName = 'Radio';\nRadio.defaultProps = {\n type: 'radio',\n};\nRadio.contextTypes = {\n radioGroup: PropTypes.any,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Radio from './radio';\nimport { getPrefixCls } from '../configure';\nconst RadioButton = function (props, context) {\n const { radioGroup } = context;\n const radioProps = { ...props };\n if (radioGroup) {\n radioProps.checked = props.value === radioGroup.value;\n radioProps.disabled = props.disabled || radioGroup.disabled;\n }\n return React.createElement(Radio, Object.assign({ prefixCls: getPrefixCls('radio-button') }, radioProps));\n};\nRadioButton.displayName = 'RadioButton';\nRadioButton.contextTypes = {\n radioGroup: PropTypes.any,\n};\nexport default RadioButton;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../icon';\nimport RcRate from '../rc-components/rate';\nimport { getPrefixCls } from '../configure';\nexport default class Rate extends Component {\n constructor() {\n super(...arguments);\n this.saveRate = (node) => {\n this.rcRate = node;\n };\n }\n focus() {\n this.rcRate.focus();\n }\n blur() {\n this.rcRate.blur();\n }\n render() {\n return React.createElement(RcRate, Object.assign({ ref: this.saveRate, prefixCls: getPrefixCls('rate') }, this.props));\n }\n}\nRate.displayName = 'Rate';\nRate.propTypes = {\n prefixCls: PropTypes.string,\n character: PropTypes.node,\n};\nRate.defaultProps = {\n character: React.createElement(Icon, { type: \"star\" }),\n};\n","export default {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'Select time',\n dateSelect: 'Select date',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century',\n};\n","import React, { cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport arrayTreeFilter from 'array-tree-filter';\nimport isEqual from 'lodash/isEqual';\nimport Trigger from '../trigger';\nimport Icon from '../../icon';\nimport Menus from './Menus';\nimport MenusSingle from './MenusSingle';\nimport KeyCode from '../../_util/KeyCode';\nimport Locale from './locale/en_US';\n\nconst BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1,\n },\n },\n};\n\nexport default class Cascader extends Component {\n static defaultProps = {\n options: [],\n onChange() {},\n onPopupVisibleChange() {},\n disabled: false,\n transitionName: '',\n prefixCls: 'rc-cascader',\n popupClassName: '',\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n expandTrigger: 'click',\n expandIcon: <Icon type=\"navigate_next\" />,\n menuMode:'multiple',\n locale:Locale,\n };\n\n static propTypes = {\n value: PropTypes.array,\n defaultValue: PropTypes.array,\n options: PropTypes.array.isRequired,\n onChange: PropTypes.func,\n onPopupVisibleChange: PropTypes.func,\n popupVisible: PropTypes.bool,\n disabled: PropTypes.bool,\n transitionName: PropTypes.string,\n popupClassName: PropTypes.string,\n popupPlacement: PropTypes.string,\n prefixCls: PropTypes.string,\n dropdownMenuColumnStyle: PropTypes.object,\n builtinPlacements: PropTypes.object,\n loadData: PropTypes.func,\n changeOnSelect: PropTypes.bool,\n children: PropTypes.node,\n onKeyDown: PropTypes.func,\n expandTrigger: PropTypes.string,\n expandIcon: PropTypes.node,\n menuMode: PropTypes.string,\n locale: PropTypes.object,\n singleMenuStyle: PropTypes.object,\n singleMenuItemStyle: PropTypes.object,\n singlePleaseRender: PropTypes.func,\n singleMenuItemRender: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n let initialValue = [];\n if ('value' in props) {\n initialValue = props.value || [];\n } else if ('defaultValue' in props) {\n initialValue = props.defaultValue || [];\n }\n\n this.state = {\n popupVisible: props.popupVisible,\n activeValue: initialValue,\n value: initialValue,\n isTabSelected: false,\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if ('value' in nextProps && !isEqual(this.props.value, nextProps.value)) {\n const newValues = {\n value: nextProps.value || [],\n activeValue: nextProps.value || [],\n };\n // allow activeValue diff from value\n if ('loadData' in nextProps) {\n delete newValues.activeValue;\n }\n this.setState(newValues);\n }\n if ('popupVisible' in nextProps) {\n this.setState({\n popupVisible: nextProps.popupVisible,\n });\n }\n }\n\n getPopupDOMNode() {\n return this.trigger.getPopupDomNode();\n }\n\n getCurrentLevelOptions() {\n const { options } = this.props;\n const { activeValue = [] } = this.state;\n const result = arrayTreeFilter(options, (o, level) => o.value === activeValue[level]);\n if (result[result.length - 2]) {\n return result[result.length - 2].children;\n }\n return [...options].filter(o => !o.disabled);\n }\n\n getActiveOptions(activeValue) {\n return arrayTreeFilter(this.props.options, (o, level) => o.value === activeValue[level]);\n }\n\n setPopupVisible = popupVisible => {\n if (!('popupVisible' in this.props)) {\n this.setState({ popupVisible });\n }\n // sync activeValue with value when panel open\n if (popupVisible && !this.state.visible) {\n this.setState({\n activeValue: this.state.value,\n });\n }\n this.props.onPopupVisibleChange(popupVisible);\n };\n handleChange = (options, setProps, e) => {\n if (e.type !== 'keydown' || e.keyCode === KeyCode.ENTER) {\n this.props.onChange(options.map(o => o.value), options);\n this.setPopupVisible(setProps.visible);\n }\n };\n handlePopupVisibleChange = popupVisible => {\n this.setPopupVisible(popupVisible);\n };\n handleMenuSelect = (targetOption, menuIndex,isTabSelected = false,e) => {\n // Keep focused state for keyboard support\n const triggerNode = this.trigger.getRootDomNode();\n if (triggerNode && triggerNode.focus) {\n triggerNode.focus();\n }\n const { changeOnSelect, loadData, expandTrigger } = this.props;\n if (!targetOption || targetOption.disabled) {\n return;\n }\n let { activeValue } = this.state;\n activeValue = activeValue.slice(0, menuIndex + 1);\n activeValue[menuIndex] = targetOption.value;\n const activeOptions = this.getActiveOptions(activeValue);\n if (targetOption.isLeaf === false && !targetOption.children && loadData) {\n if (changeOnSelect) {\n this.handleChange(activeOptions, { visible: true }, e);\n }\n this.setState({ activeValue,isTabSelected });\n loadData(activeOptions);\n return;\n }\n const newState = {};\n if (!targetOption.children || !targetOption.children.length) {\n this.handleChange(activeOptions, { visible: false }, e);\n // set value to activeValue when select leaf option\n newState.value = activeValue;\n // add e.type judgement to prevent `onChange` being triggered by mouseEnter\n } else if (changeOnSelect && (e.type === 'click' || e.type === 'keydown')) {\n if (expandTrigger === 'hover') {\n this.handleChange(activeOptions, { visible: false }, e);\n } else {\n this.handleChange(activeOptions, { visible: true }, e);\n }\n // set value to activeValue on every select\n newState.value = activeValue;\n }\n newState.activeValue = activeValue;\n // not change the value by keyboard\n if ('value' in this.props || (e.type === 'keydown' && e.keyCode !== KeyCode.ENTER)) {\n delete newState.value;\n }\n newState.isTabSelected = isTabSelected\n this.setState(newState);\n };\n handleKeyDown = e => {\n const { children } = this.props;\n // Don't bind keyboard support when children specify the onKeyDown\n if (children && children.props.onKeyDown) {\n children.props.onKeyDown(e);\n return;\n }\n const activeValue = [...this.state.activeValue];\n const currentLevel = activeValue.length - 1 < 0 ? 0 : activeValue.length - 1;\n const currentOptions = this.getCurrentLevelOptions();\n const currentIndex = currentOptions.map(o => o.value).indexOf(activeValue[currentLevel]);\n if (\n e.keyCode !== KeyCode.DOWN &&\n e.keyCode !== KeyCode.UP &&\n e.keyCode !== KeyCode.LEFT &&\n e.keyCode !== KeyCode.RIGHT &&\n e.keyCode !== KeyCode.ENTER &&\n e.keyCode !== KeyCode.BACKSPACE &&\n e.keyCode !== KeyCode.ESC\n ) {\n return;\n }\n // Press any keys above to reopen menu\n if (\n !this.state.popupVisible &&\n e.keyCode !== KeyCode.BACKSPACE &&\n e.keyCode !== KeyCode.LEFT &&\n e.keyCode !== KeyCode.RIGHT &&\n e.keyCode !== KeyCode.ESC\n ) {\n this.setPopupVisible(true);\n return;\n }\n if (e.keyCode === KeyCode.DOWN || e.keyCode === KeyCode.UP) {\n let nextIndex = currentIndex;\n if (nextIndex !== -1) {\n if (e.keyCode === KeyCode.DOWN) {\n nextIndex += 1;\n nextIndex = nextIndex >= currentOptions.length ? 0 : nextIndex;\n } else {\n nextIndex -= 1;\n nextIndex = nextIndex < 0 ? currentOptions.length - 1 : nextIndex;\n }\n } else {\n nextIndex = 0;\n }\n activeValue[currentLevel] = currentOptions[nextIndex].value;\n } else if (e.keyCode === KeyCode.LEFT || e.keyCode === KeyCode.BACKSPACE) {\n activeValue.splice(activeValue.length - 1, 1);\n } else if (e.keyCode === KeyCode.RIGHT) {\n if (currentOptions[currentIndex] && currentOptions[currentIndex].children) {\n activeValue.push(currentOptions[currentIndex].children[0].value);\n }\n } else if (e.keyCode === KeyCode.ESC) {\n this.setPopupVisible(false);\n return;\n }\n if (!activeValue || activeValue.length === 0) {\n this.setPopupVisible(false);\n }\n const activeOptions = this.getActiveOptions(activeValue);\n const targetOption = activeOptions[activeOptions.length - 1];\n this.handleMenuSelect(targetOption, activeOptions.length - 1, false , e);\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n saveTrigger = node => {\n this.trigger = node;\n };\n\n render() {\n const {\n prefixCls,\n transitionName,\n popupClassName,\n options,\n disabled,\n builtinPlacements,\n popupPlacement,\n children,\n locale,\n menuMode,\n singleMenuStyle,\n singleMenuItemStyle,\n ...restProps\n } = this.props;\n // Did not show popup when there is no options\n let menus = <div />;\n let emptyMenuClassName = '';\n if (options && options.length > 0) {\n if( menuMode === \"multiple\") {\n menus = (\n <Menus\n {...this.props}\n value={this.state.value}\n activeValue={this.state.activeValue}\n onSelect={this.handleMenuSelect}\n visible={this.state.popupVisible}\n />)\n }else if (menuMode === \"single\" ){\n menus = (\n <MenusSingle\n {...this.props}\n isTabSelected={this.state.isTabSelected}\n value={this.state.value}\n activeValue={this.state.activeValue}\n onSelect={this.handleMenuSelect}\n visible={this.state.popupVisible}\n locale={locale}\n singleMenuStyle={singleMenuStyle}\n singleMenuItemStyle={singleMenuItemStyle}\n />)\n\n } else {\n throw new Error('please use correct mode for menu ex \"single\" and \"multiple\"')\n }\n } else {\n emptyMenuClassName = ` ${prefixCls}-menus-empty`;\n }\n return (\n <Trigger\n ref={this.saveTrigger}\n {...restProps}\n options={options}\n disabled={disabled}\n popupPlacement={popupPlacement}\n builtinPlacements={builtinPlacements}\n popupTransitionName={transitionName}\n action={disabled ? [] : ['click']}\n popupVisible={disabled ? false : this.state.popupVisible}\n onPopupVisibleChange={this.handlePopupVisibleChange}\n prefixCls={`${prefixCls}-menus`}\n popupClassName={popupClassName + emptyMenuClassName}\n popup={menus}\n >\n {cloneElement(children, {\n onKeyDown: this.handleKeyDown,\n tabIndex: disabled ? undefined : 0,\n })}\n </Trigger>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport arrayTreeFilter from 'array-tree-filter';\nimport { findDOMNode } from 'react-dom';\nimport Icon from '../../icon';\n\nexport default class Menus extends Component {\n static defaultProps = {\n options: [],\n value: [],\n activeValue: [],\n onSelect() {\n },\n prefixCls: 'rc-cascader-menus',\n visible: false,\n selectedValues: [],\n expandTrigger: 'click',\n expandIcon: <Icon type=\"navigate_next\" />,\n };\n\n static propTypes = {\n value: PropTypes.array,\n activeValue: PropTypes.array,\n selectedValues: PropTypes.array,\n options: PropTypes.array.isRequired,\n prefixCls: PropTypes.string,\n expandTrigger: PropTypes.string,\n onSelect: PropTypes.func,\n visible: PropTypes.bool,\n dropdownMenuColumnStyle: PropTypes.object,\n expandIcon:PropTypes.node,\n };\n\n constructor(props) {\n super(props);\n\n this.menuItems = {};\n }\n\n componentDidMount() {\n this.scrollActiveItemToView();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.visible && this.props.visible) {\n this.scrollActiveItemToView();\n }\n }\n\n getOption(option, menuIndex) {\n const { prefixCls, expandTrigger, expandIcon, selectedValues } = this.props;\n const onSelect = this.props.onSelect.bind(this, option, menuIndex,false);\n let expandProps = {\n onClick: () => {\n return onSelect('click');\n }\n };\n let menuItemCls = `${prefixCls}-menu-item`;\n let expandIconNode = null;\n const hasChildren = option.children && option.children.length > 0;\n if (hasChildren || option.isLeaf === false) {\n menuItemCls += ` ${prefixCls}-menu-item-expand`;\n expandIconNode = (\n <span className={`${prefixCls}-menu-item-expand-icon`}>\n {expandIcon}\n </span>\n );\n }\n if (selectedValues.findIndex((item) => item === option.value) > -1) {\n menuItemCls += ` ${prefixCls}-menu-item-selected`;\n }\n if (expandTrigger === 'hover' && (hasChildren || option.isLeaf === false)) {\n expandProps = {\n onMouseEnter: this.delayOnSelect.bind(this, onSelect),\n onMouseLeave: this.delayOnSelect.bind(this),\n onClick: () => {\n return onSelect('click');\n },\n };\n }\n if (this.isActiveOption(option, menuIndex)) {\n menuItemCls += ` ${prefixCls}-menu-item-active`;\n expandProps.ref = this.saveMenuItem(menuIndex);\n }\n if (option.disabled) {\n menuItemCls += ` ${prefixCls}-menu-item-disabled`;\n }\n if (option.loading) {\n menuItemCls += ` ${prefixCls}-menu-item-loading`;\n }\n let title = '';\n if (option.title) {\n title = option.title;\n } else if (typeof option.label === 'string') {\n title = option.label;\n }\n return (\n <li\n key={option.key || option.value}\n className={menuItemCls}\n title={title}\n {...expandProps}\n >\n {option.label}\n {expandIconNode}\n </li>\n );\n }\n\n getActiveOptions(values) {\n const activeValue = values || this.props.activeValue;\n const options = this.props.options;\n return arrayTreeFilter(options, (o, level) => o.value === activeValue[level]);\n }\n\n getShowOptions() {\n const { options } = this.props;\n const result = this.getActiveOptions()\n .map(activeOption => activeOption.children)\n .filter(activeOption => !!activeOption);\n result.unshift(options);\n return result;\n }\n\n delayOnSelect(onSelect, ...args) {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n if (typeof onSelect === 'function') {\n this.delayTimer = setTimeout(() => {\n onSelect('hover',args);\n this.delayTimer = null;\n }, 150);\n }\n }\n\n scrollActiveItemToView() {\n // scroll into view\n const optionsLength = this.getShowOptions().length;\n for (let i = 0; i < optionsLength; i++) {\n const itemComponent = this.menuItems[i];\n if (itemComponent) {\n const target = findDOMNode(itemComponent);\n target.parentNode.scrollTop = target.offsetTop;\n }\n }\n }\n\n isActiveOption(option, menuIndex) {\n const { activeValue = [] } = this.props;\n return activeValue[menuIndex] === option.value;\n }\n\n saveMenuItem = (index) => (node) => {\n this.menuItems[index] = node;\n };\n\n render() {\n const { prefixCls, dropdownMenuColumnStyle } = this.props;\n return (\n <div>\n {this.getShowOptions().map((options, menuIndex) =>\n <ul className={`${prefixCls}-menu`} key={menuIndex} style={dropdownMenuColumnStyle}>\n {options.map(option => this.getOption(option, menuIndex))}\n </ul>,\n )}\n </div>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport arrayTreeFilter from 'array-tree-filter';\nimport { findDOMNode } from 'react-dom';\nimport Locale from './locale/en_US';\nimport isFunction from 'lodash/isFunction';\nimport Icon from '../../icon';\n\nexport default class Menus extends Component {\n static defaultProps = {\n options: [],\n value: [],\n activeValue: [],\n onSelect() {\n },\n prefixCls: 'rc-cascader-menus',\n visible: false,\n expandTrigger: 'click',\n selectedValues: [],\n isTabSelected: false,\n locale: Locale,\n singleMenuStyle: { width:'3rem'},\n singleMenuItemStyle: { minWidth: '1rem'},\n };\n\n static propTypes = {\n // 选择的值\n value: PropTypes.array,\n // 当前激活的值\n activeValue: PropTypes.array,\n // 可选内容\n options: PropTypes.array.isRequired,\n // 注入样式开头\n prefixCls: PropTypes.string,\n // 触发展开事件\n expandTrigger: PropTypes.string,\n // 被选择后触发\n onSelect: PropTypes.func,\n // 是否可见\n visible: PropTypes.bool,\n // 下拉列表的样式配置\n dropdownMenuColumnStyle: PropTypes.object,\n // 标识是由于tab select 触发的事件\n isTabSelected: PropTypes.bool,\n selectedValues: PropTypes.array,\n locale: PropTypes.object,\n singleMenuStyle: PropTypes.object,\n singleMenuItemStyle: PropTypes.object,\n singlePleaseRender: PropTypes.func,\n singleMenuItemRender: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n\n this.menuItems = {};\n }\n\n componentDidMount() {\n this.scrollActiveItemToView();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.visible && this.props.visible) {\n this.scrollActiveItemToView();\n }\n }\n\n /**\n * render th li list\n * @param {*} option\n * @param {*} menuIndex\n */\n getOption(option, menuIndex) {\n const { prefixCls, expandTrigger, singleMenuItemStyle,selectedValues } = this.props;\n const onSelect = this.props.onSelect.bind(this, option, menuIndex, false);\n let expandProps = {\n onClick: () => {\n return onSelect('click');\n }\n };\n const hasChildren = option.children && option.children.length > 0;\n let menuItemCls = `${prefixCls}-menu-item`;\n // TODO: add item style\n if (expandTrigger === 'hover' && hasChildren) {\n expandProps = {\n onMouseEnter: this.delayOnSelect.bind(this, onSelect),\n onMouseLeave: this.delayOnSelect.bind(this),\n onClick: () => {\n return onSelect('click');\n },\n };\n }\n if ( selectedValues.findIndex((item) => item === option.value) > -1) {\n menuItemCls += ` ${prefixCls}-menu-item-selected`;\n }\n if (this.isActiveOption(option, menuIndex)) {\n menuItemCls += ` ${prefixCls}-menu-item-active`;\n expandProps.ref = this.saveMenuItem(menuIndex);\n }\n if (option.disabled) {\n menuItemCls += ` ${prefixCls}-menu-item-disabled`;\n }\n if (option.loading) {\n menuItemCls += ` ${prefixCls}-menu-item-loading`;\n }\n let title = '';\n if (option.title) {\n title = option.title;\n } else if (typeof option.label === 'string') {\n title = option.label;\n }\n return (\n <li\n key={option.key || option.value}\n className={menuItemCls}\n title={title}\n style={singleMenuItemStyle}\n {...expandProps}\n >\n {option.label}\n </li>\n );\n }\n\n /**\n * be active value is a array of items\n * @param string[] values\n */\n getActiveOptions(values) {\n const activeValue = values || this.props.activeValue;\n const options = this.props.options;\n return arrayTreeFilter(options, (o, level) => o.value === activeValue[level]);\n }\n\n getShowOptions() {\n const { options } = this.props;\n const result = this.getActiveOptions()\n .map(activeOption => activeOption.children)\n .filter(activeOption => !!activeOption);\n result.unshift(options);\n return result;\n }\n\n delayOnSelect(onSelect, ...args) {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n if (typeof onSelect === 'function') {\n this.delayTimer = setTimeout(() => {\n onSelect('hover', args);\n this.delayTimer = null;\n }, 150);\n }\n }\n\n scrollActiveItemToView() {\n // scroll into view\n const optionsLength = this.getShowOptions().length;\n for (let i = 0; i < optionsLength; i++) {\n const itemComponent = this.menuItems[i];\n if (itemComponent) {\n const target = findDOMNode(itemComponent);\n target.parentNode.scrollTop = target.offsetTop;\n }\n }\n }\n\n isActiveOption(option, menuIndex) {\n const { activeValue = [] } = this.props;\n return activeValue[menuIndex] === option.value;\n }\n\n saveMenuItem = (index) => (node) => {\n this.menuItems[index] = node;\n };\n\n /**\n * render th li list\n * @param {*} option\n * @param {*} menuIndex\n */\n getTabItem(option, menuIndex) {\n const { prefixCls, singleMenuItemRender } = this.props;\n const onSelect = this.props.onSelect.bind(this, option, menuIndex, true);\n let expandProps = {\n onClick: onSelect,\n };\n let menuItemCls = `${prefixCls}-menu-tab-item`;\n let label = option.label\n if(isFunction(singleMenuItemRender)){\n label = singleMenuItemItem(option.label)\n }\n return (\n <span\n key={option.key || option.value}\n className={menuItemCls}\n {...expandProps}\n >\n {label}\n <Icon type=\"arrow_drop_down\" />\n </span>\n );\n }\n\n render() {\n const { prefixCls, dropdownMenuColumnStyle, isTabSelected, locale, singleMenuStyle, singlePleaseRender } = this.props;\n const showOptions = this.getShowOptions()\n let showOptionsIndex = showOptions.length - 1\n const activeOptions = this.getActiveOptions()\n const dropdownMenuColumnStyleSingle = {...dropdownMenuColumnStyle,...singleMenuStyle}\n const tabItemRender = activeOptions.map((item,indexItem) => (this.getTabItem(item,indexItem)))\n let tabItemRenderResult \n if(showOptions && activeOptions && !isTabSelected && showOptions.length > activeOptions.length){\n const pleaseRenderProps = {\n key:\"please_check\" ,\n className: `${prefixCls}-menu-tab-item ${prefixCls}-menu-tab-please`,\n text:locale.pleaseSelect\n }\n if(isFunction(singlePleaseRender)){\n tabItemRenderResult = singlePleaseRender(pleaseRenderProps)\n }else{\n const pleaseItem = ( \n <span {...pleaseRenderProps}>\n {pleaseRenderProps.text}\n <Icon type=\"arrow_drop_down\" />\n </span>\n )\n tabItemRenderResult = tabItemRender.length > 0 ? [...tabItemRender,pleaseItem] : pleaseItem;\n }\n }\n if(isTabSelected){\n showOptionsIndex = activeOptions.length - 1 < 0 ? 0 : activeOptions.length - 1\n }\n\n return (\n <div className={`${prefixCls}-mode-single `}>\n <div className={`${prefixCls}-menu-tab`}>\n {tabItemRenderResult || tabItemRender }\n </div>\n <ul className={`${prefixCls}-menu ${prefixCls}-menu-single `} key={showOptionsIndex} style={dropdownMenuColumnStyleSingle}>\n {showOptions[showOptionsIndex].map(option => this.getOption(option, showOptionsIndex))}\n </ul>\n </div>\n );\n }\n}\n","// export this package's api\nimport Cascader from './Cascader';\nimport Menus from './Menus';\nimport SingleMenu from './MenusSingle';\n\nexport { Menus, SingleMenu };\nexport default Cascader;\n","export default {\n pleaseSelect:'Please select'\n};\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, { Children, cloneElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getConfig } from '../../configure';\nimport CollapsePanel from './Panel';\nimport openAnimationFactory from './openAnimationFactory';\n\nfunction toArray(activeKey) {\n let currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n currentActiveKey = currentActiveKey ? [currentActiveKey] : [];\n }\n return currentActiveKey;\n}\n\nexport default class Collapse extends Component {\n static propTypes = {\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n activeKey: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n defaultActiveKey: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n openAnimation: PropTypes.object,\n onChange: PropTypes.func,\n accordion: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool,\n };\n\n static defaultProps = {\n prefixCls: 'rc-collapse',\n onChange() {\n },\n accordion: false,\n destroyInactivePanel: false,\n };\n\n static Panel = CollapsePanel;\n\n constructor(props) {\n super(props);\n\n const { activeKey, defaultActiveKey } = this.props;\n let currentActiveKey = defaultActiveKey;\n if ('activeKey' in this.props) {\n currentActiveKey = activeKey;\n }\n\n this.state = {\n openAnimation: this.props.openAnimation || openAnimationFactory(this.props.prefixCls),\n activeKey: toArray(currentActiveKey),\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if ('activeKey' in nextProps) {\n this.setState({\n activeKey: toArray(nextProps.activeKey),\n });\n }\n if ('openAnimation' in nextProps) {\n this.setState({\n openAnimation: nextProps.openAnimation,\n });\n }\n }\n\n onClickItem(key) {\n let activeKey = this.state.activeKey;\n if (this.props.accordion) {\n activeKey = activeKey[0] === key ? [] : [key];\n } else {\n activeKey = [...activeKey];\n const index = activeKey.indexOf(key);\n const isActive = index > -1;\n if (isActive) {\n // remove active state\n activeKey.splice(index, 1);\n } else {\n activeKey.push(key);\n }\n }\n this.setActiveKey(activeKey);\n }\n\n getItems() {\n const activeKey = this.state.activeKey;\n const { prefixCls, accordion, destroyInactivePanel, expandIcon, expandIconPosition } = this.props;\n const newChildren = [];\n\n Children.forEach(this.props.children, (child, index) => {\n if (!child) return;\n // If there is no key provide, use the panel order as default key\n const key = child.key || String(index);\n const { header, headerClass, disabled } = child.props;\n let isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n\n const trigger = this.props.trigger || getConfig('collapseTrigger');\n\n const props = {\n key,\n header,\n headerClass,\n isActive,\n prefixCls,\n destroyInactivePanel,\n openAnimation: this.state.openAnimation,\n children: child.props.children,\n onItemClick: disabled ? null : () => this.onClickItem(key),\n expandIcon,\n expandIconPosition,\n trigger,\n };\n\n newChildren.push(cloneElement(child, props));\n });\n\n return newChildren;\n }\n\n setActiveKey(activeKey) {\n if (!('activeKey' in this.props)) {\n this.setState({ activeKey });\n }\n this.props.onChange(this.props.accordion ? activeKey[0] : activeKey);\n }\n\n render() {\n const { prefixCls, className, style, accordion } = this.props;\n const collapseClassName = classNames({\n [prefixCls]: true,\n [className]: !!className,\n });\n return (\n <div className={collapseClassName} style={style} role={accordion ? 'tablist' : null}>\n {this.getItems()}\n </div>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport PanelContent from './PanelContent';\nimport Animate from '../../animate';\n\nexport default class CollapsePanel extends Component {\n static propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n id: PropTypes.string,\n children: PropTypes.any,\n openAnimation: PropTypes.object,\n prefixCls: PropTypes.string,\n header: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.node,\n ]),\n headerClass: PropTypes.string,\n showArrow: PropTypes.bool,\n isActive: PropTypes.bool,\n onItemClick: PropTypes.func,\n style: PropTypes.object,\n destroyInactivePanel: PropTypes.bool,\n disabled: PropTypes.bool,\n forceRender: PropTypes.bool,\n };\n\n static defaultProps = {\n showArrow: true,\n isActive: false,\n destroyInactivePanel: false,\n onItemClick() {\n },\n headerClass: '',\n forceRender: false,\n };\n\n handleItemClick() {\n if (this.props.onItemClick) {\n this.props.onItemClick();\n }\n }\n\n render() {\n const {\n className,\n id,\n style,\n prefixCls,\n header,\n headerClass,\n children,\n isActive,\n showArrow,\n destroyInactivePanel,\n disabled,\n accordion,\n forceRender,\n expandIcon,\n expandIconPosition,\n extra,\n trigger,\n } = this.props;\n const headerCls = classNames(`${prefixCls}-header`, {\n [headerClass]: headerClass,\n [`${prefixCls}-item-expand-renderer`]: showArrow && typeof expandIcon === 'function',\n });\n const itemCls = classNames({\n [`${prefixCls}-item`]: true,\n [`${prefixCls}-item-active`]: isActive,\n [`${prefixCls}-item-disabled`]: disabled,\n }, className);\n\n const iconCls = classNames({\n [`${prefixCls}-expand-icon`]: true,\n [`${prefixCls}-expanded`]: isActive,\n [`${prefixCls}-collapsed`]: !isActive,\n });\n\n let icon = null;\n\n if (showArrow) {\n icon = (\n <span className={`${prefixCls}-expand-icon-wrapper`} onClick={trigger === 'icon' ? this.handleItemClick.bind(this) : noop}>\n {typeof expandIcon === 'function' ? expandIcon(this.props) : <i className={iconCls} />}\n </span>\n );\n }\n\n return (\n <div className={itemCls} style={style} id={id}>\n <div\n className={headerCls}\n onClick={trigger === 'header' ? this.handleItemClick.bind(this) : noop}\n role={accordion ? 'tab' : 'button'}\n tabIndex={disabled ? -1 : 0}\n aria-expanded={`${isActive}`}\n onKeyPress={this.handleKeyPress}\n >\n {showArrow && expandIconPosition !== 'text-right' && icon }\n {header}\n {showArrow && expandIconPosition === 'text-right' && icon }\n {extra && (<div className={`${prefixCls}-extra`}>{extra}</div>)}\n </div>\n <Animate\n hiddenProp=\"isInactive\"\n exclusive\n component=\"\"\n animation={this.props.openAnimation}\n >\n <PanelContent\n prefixCls={prefixCls}\n isInactive={!isActive}\n destroyInactivePanel={destroyInactivePanel}\n forceRender={forceRender}\n role={accordion ? 'tabpanel' : null}\n >\n {children}\n </PanelContent>\n </Animate>\n </div>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nexport default class PanelContent extends Component {\n static propTypes = {\n prefixCls: PropTypes.string,\n isInactive: PropTypes.bool,\n children: PropTypes.any,\n destroyInactivePanel: PropTypes.bool,\n forceRender: PropTypes.bool,\n };\n\n shouldComponentUpdate(nextProps) {\n return !this.props.isInactive || !nextProps.isInactive;\n }\n\n render() {\n this._isActived = this.props.forceRender || this._isActived || !this.props.isInactive;\n if (!this._isActived) {\n return null;\n }\n const { prefixCls, isInactive, children, destroyInactivePanel, forceRender } = this.props;\n const contentCls = classnames({\n [`${prefixCls}-content`]: true,\n [`${prefixCls}-content-active`]: !isInactive,\n [`${prefixCls}-content-inactive`]: isInactive,\n });\n const child = !forceRender && isInactive && destroyInactivePanel ? null : <div className={`${prefixCls}-content-box`}>{children}</div>;\n return (\n <div\n className={contentCls}\n role=\"tabpanel\"\n >{child}</div>\n );\n }\n}\n","import Collapse from './Collapse';\n\nexport default Collapse;\nexport const Panel = Collapse.Panel;\n","import cssAnimation from 'css-animation';\n\nfunction animate(node, show, transitionName, done) {\n let height;\n return cssAnimation(node, transitionName, {\n start() {\n if (!show) {\n node.style.height = `${node.offsetHeight}px`;\n } else {\n height = node.offsetHeight;\n node.style.height = 0;\n }\n },\n active() {\n node.style.height = `${show ? height : 0}px`;\n },\n end() {\n node.style.height = '';\n done();\n },\n });\n}\n\nfunction animation(prefixCls) {\n return {\n enter(node, done) {\n return animate(node, true, `${prefixCls}-anim`, done);\n },\n leave(node, done) {\n return animate(node, false, `${prefixCls}-anim`, done);\n },\n };\n}\n\nexport default animation;\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 { hide, show } from 'choerodon-ui/pro/lib/tooltip/singleton';\nimport isOverflow from 'choerodon-ui/pro/lib/overflow-tip/util';\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 checkable: 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 handleRippleMouseEnter(e) {\n const { tooltip, tooltipTheme, children, mode } = this.props;\n const { currentTarget } = e;\n if (children && (tooltip === 'always' || (tooltip === 'overflow' && isOverflow(currentTarget)))) {\n show(currentTarget, {\n title: children,\n placement: mode === 'horizontal' ? 'top' : 'right',\n theme: tooltipTheme,\n });\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 checkbox = props.multiple && props.checkable !== false ? (\n <Checkbox disabled={props.disabled} checked={props.isSelected} tabIndex={-1} />\n ) : null;\n const rippleProps = {\n disabled: props.disabled,\n };\n if (['overflow', 'always'].includes(props.tooltip)) {\n rippleProps.onMouseEnter = this.handleRippleMouseEnter;\n rippleProps.onMouseLeave = hide;\n }\n return (\n <Ripple {...rippleProps}>\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 function getWrappedInstance() { return SubPopupMenu }\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';\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 let width =\n elem &&\n typeof elem.getBoundingClientRect === 'function' &&\n elem.getBoundingClientRect().width;\n if (width) {\n width = +width.toFixed(6);\n }\n return width || 0;\n};\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 contentClassName: PropTypes.string,\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 { contentClassName } = 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 ${contentClassName}`}>{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 contentClassName: PropTypes.string,\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 { contentClassName } = 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 contentClassName={contentClassName}\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","export default {\n // Options.jsx\n items_per_page: '/ page',\n label_items_per_page: 'Items / page',\n jump_to: 'Goto',\n jump_to_confirm: 'confirm',\n page: '',\n\n // Pagination.jsx\n first_page: 'First Page',\n last_page: 'Last Page',\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n};\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 } = this.getPathStyles();\n let {trailPathStyle, strokePathStyle } = this.getPathStyles();\n trailPathStyle = trailColor ? {...trailPathStyle,stroke:trailColor}: trailPathStyle;\n strokePathStyle = strokeColor ? {...strokePathStyle,stroke:strokeColor} : strokePathStyle;\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 strokeLinecap: 'round',\n strokeWidth: 1,\n style: {},\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 React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport KeyCode from '../../_util/KeyCode';\nimport { getOffsetLeft } from './util';\nimport Star from './Star';\n\nexport default class Rate extends Component {\n static propTypes = {\n disabled: PropTypes.bool,\n value: PropTypes.number,\n defaultValue: PropTypes.number,\n count: PropTypes.number,\n allowHalf: PropTypes.bool,\n allowClear: PropTypes.bool,\n style: PropTypes.object,\n prefixCls: PropTypes.string,\n onChange: PropTypes.func,\n onHoverChange: PropTypes.func,\n className: PropTypes.string,\n character: PropTypes.node,\n tabIndex: PropTypes.number,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n };\n\n static defaultProps = {\n defaultValue: 0,\n count: 5,\n allowHalf: false,\n allowClear: true,\n style: {},\n prefixCls: 'rc-rate',\n onChange: noop,\n character: '★',\n onHoverChange: noop,\n tabIndex: 0,\n };\n\n constructor(props) {\n super(props);\n let value = props.value;\n if (value === undefined) {\n value = props.defaultValue;\n }\n\n this.stars = {};\n\n this.state = {\n value,\n focused: false,\n cleanedValue: null,\n };\n }\n\n componentDidMount() {\n if (this.props.autoFocus && !this.props.disabled) {\n this.focus();\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if ('value' in nextProps) {\n let value = nextProps.value;\n if (value === undefined) {\n value = nextProps.defaultValue;\n }\n this.setState({\n value,\n });\n }\n }\n\n onHover = (event, index) => {\n const hoverValue = this.getStarValue(index, event.pageX);\n const { cleanedValue } = this.state;\n if (hoverValue !== cleanedValue) {\n this.setState({\n hoverValue,\n cleanedValue: null,\n });\n }\n this.props.onHoverChange(hoverValue);\n };\n\n onMouseLeave = () => {\n this.setState({\n hoverValue: undefined,\n cleanedValue: null,\n });\n this.props.onHoverChange(undefined);\n };\n\n onClick = (event, index) => {\n const value = this.getStarValue(index, event.pageX);\n let isReset = false;\n if (this.props.allowClear) {\n isReset = value === this.state.value;\n }\n this.onMouseLeave(true);\n this.changeValue(isReset ? 0 : value);\n this.setState({\n cleanedValue: isReset ? value : null,\n });\n };\n\n onFocus = () => {\n const { onFocus } = this.props;\n this.setState({\n focused: true,\n });\n if (onFocus) {\n onFocus();\n }\n };\n\n onBlur = () => {\n const { onBlur } = this.props;\n this.setState({\n focused: false,\n });\n if (onBlur) {\n onBlur();\n }\n };\n\n onKeyDown = (event) => {\n const { keyCode } = event;\n const { count, allowHalf, onKeyDown } = this.props;\n let { value } = this.state;\n if (keyCode === KeyCode.RIGHT && value < count) {\n if (allowHalf) {\n value += 0.5;\n } else {\n value += 1;\n }\n this.changeValue(value);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && value > 0) {\n if (allowHalf) {\n value -= 0.5;\n } else {\n value -= 1;\n }\n this.changeValue(value);\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n getStarDOM(index) {\n return ReactDOM.findDOMNode(this.stars[index]);\n }\n\n getStarValue(index, x) {\n let value = index + 1;\n if (this.props.allowHalf) {\n const starEle = this.getStarDOM(index);\n const leftDis = getOffsetLeft(starEle);\n const width = starEle.clientWidth;\n if ((x - leftDis) < width / 2) {\n value -= 0.5;\n }\n }\n return value;\n }\n\n focus() {\n if (!this.props.disabled) {\n this.rate.focus();\n }\n }\n\n blur() {\n if (!this.props.disabled) {\n this.rate.focus();\n }\n }\n\n changeValue(value) {\n if (!('value' in this.props)) {\n this.setState({\n value,\n });\n }\n this.props.onChange(value);\n }\n\n saveRef = (index) => (node) => {\n this.stars[index] = node;\n };\n\n saveRate = (node) => {\n this.rate = node;\n };\n\n render() {\n const {\n count,\n allowHalf,\n style,\n prefixCls,\n disabled,\n className,\n character,\n tabIndex,\n } = this.props;\n const { value, hoverValue, focused } = this.state;\n const stars = [];\n const disabledClass = disabled ? `${prefixCls}-disabled` : '';\n for (let index = 0; index < count; index++) {\n stars.push(\n <Star\n ref={this.saveRef(index)}\n index={index}\n disabled={disabled}\n prefixCls={`${prefixCls}-star`}\n allowHalf={allowHalf}\n value={hoverValue === undefined ? value : hoverValue}\n onClick={this.onClick}\n onHover={this.onHover}\n key={index}\n character={character}\n focused={focused}\n />,\n );\n }\n return (\n <ul\n className={classNames(prefixCls, disabledClass, className)}\n style={style}\n onMouseLeave={disabled ? null : this.onMouseLeave}\n tabIndex={disabled ? -1 : tabIndex}\n onFocus={disabled ? null : this.onFocus}\n onBlur={disabled ? null : this.onBlur}\n onKeyDown={disabled ? null : this.onKeyDown}\n ref={this.saveRate}\n >\n {stars}\n </ul>\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Star extends Component {\n static propTypes = {\n value: PropTypes.number,\n index: PropTypes.number,\n prefixCls: PropTypes.string,\n allowHalf: PropTypes.bool,\n disabled: PropTypes.bool,\n onHover: PropTypes.func,\n onClick: PropTypes.func,\n character: PropTypes.node,\n focused: PropTypes.bool,\n };\n\n onHover = (e) => {\n const { onHover, index } = this.props;\n onHover(e, index);\n }\n\n onClick = (e) => {\n const { onClick, index } = this.props;\n onClick(e, index);\n }\n\n getClassName() {\n const { prefixCls, index, value, allowHalf, focused } = this.props;\n const starValue = index + 1;\n let className = prefixCls;\n if (value === 0 && index === 0 && focused) {\n className += ` ${prefixCls}-focused`;\n } else if (allowHalf && value + 0.5 === starValue) {\n className += ` ${prefixCls}-half ${prefixCls}-active`;\n if (focused) {\n className += ` ${prefixCls}-focused`;\n }\n } else {\n className += starValue <= value ? ` ${prefixCls}-full` : ` ${prefixCls}-zero`;\n if (starValue === value && focused) {\n className += ` ${prefixCls}-focused`;\n }\n }\n return className;\n }\n\n render() {\n const { onHover, onClick } = this;\n const { disabled, prefixCls, character } = this.props;\n return (\n <li\n className={this.getClassName()}\n onClick={disabled ? null : onClick}\n onMouseMove={disabled ? null : onHover}\n >\n <div className={`${prefixCls}-first`}>{character}</div>\n <div className={`${prefixCls}-second`}>{character}</div>\n </li>\n );\n }\n}\n","import Rate from './Rate';\n\nexport default Rate;\n","function getScroll(w, top) {\n let ret = top ? w.pageYOffset : w.pageXOffset;\n const method = top ? 'scrollTop' : 'scrollLeft';\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 getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n 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 return {\n left: x,\n top: y,\n };\n}\n\nexport function getOffsetLeft(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n return pos.left;\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 theme: 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, theme } = this.props;\n return [\n <div className={`${prefixCls}-arrow ${prefixCls}-arrow-${theme}`} key=\"arrow\">\n {arrowContent}\n </div>,\n <div className={`${prefixCls}-inner ${prefixCls}-inner-${theme}`} 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 from 'react';\nexport default function DropIndicator({ prefixCls, dropPosition, dropLevelOffset, indent, }) {\n const style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2,\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n default:\n }\n return React.createElement(\"div\", { className: `${prefixCls}-drop-indicator`, style: style });\n}\n","import React from 'react';\nimport classNames from 'classnames';\nconst Indent = ({ prefixCls, level, isStart, isEnd }) => {\n const baseClassName = `${prefixCls}-indent-unit`;\n const list = [];\n for (let i = 0; i < level; i += 1) {\n list.push(React.createElement(\"span\", { key: i, className: classNames(baseClassName, {\n [`${baseClassName}-start`]: isStart[i],\n [`${baseClassName}-end`]: isEnd[i],\n }) }));\n }\n return (React.createElement(\"span\", { \"aria-hidden\": \"true\", className: `${prefixCls}-indent` }, list));\n};\nexport default Indent;\n","import React, { cloneElement, forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, } from 'react';\nimport isNil from 'lodash/isNil';\nconst List = forwardRef(({ data, prefixCls, children, height, itemKey }, ref) => {\n const containerRef = useRef(null);\n const innerStyle = useMemo(() => {\n const style = {\n display: 'flex',\n flexDirection: 'column',\n };\n if (height) {\n style.height = height;\n style.overflow = 'hidden auto';\n }\n return style;\n }, [height]);\n const getKey = useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return isNil(itemKey) ? undefined : item[itemKey];\n }, [itemKey]);\n const renderChild = useCallback(child => cloneElement(children(child), { key: getKey(child) }), [children, getKey]);\n const scrollTo = useCallback((scroll) => {\n const { current } = containerRef;\n if (current) {\n current.scrollTo(0, scroll);\n }\n }, [containerRef]);\n useImperativeHandle(ref, () => ({\n scrollTo,\n }), [scrollTo]);\n return (React.createElement(\"div\", { className: `${prefixCls}-holder` },\n React.createElement(\"div\", { className: `${prefixCls}-holder-inner`, style: innerStyle, ref: containerRef }, data.map(renderChild))));\n});\nexport default memo(List);\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TreeNode from './TreeNode';\nimport { getTreeNodeProps } from './utils/treeUtil';\nimport { TreeContext } from './contextTypes';\nconst MotionTreeNode = ({ className, style, motion, motionNodes, motionType, onMotionStart: onOriginMotionStart, onMotionEnd: onOriginMotionEnd, active, treeNodeRequiredProps, ...props }, ref) => {\n const [visible, setVisible] = React.useState(true);\n const { prefixCls, ripple } = React.useContext(TreeContext);\n const motionedRef = React.useRef(false);\n const onMotionEnd = () => {\n if (!motionedRef.current) {\n onOriginMotionEnd();\n }\n motionedRef.current = true;\n };\n useEffect(() => {\n if (motionNodes && motionType === 'hide' && visible) {\n setVisible(false);\n }\n }, [motionNodes]);\n useEffect(() => {\n // Trigger motion only when patched\n if (motionNodes) {\n onOriginMotionStart();\n }\n return () => {\n if (motionNodes) {\n onMotionEnd();\n }\n };\n }, []);\n if (motionNodes) {\n return (React.createElement(CSSMotion, Object.assign({ ref: ref, visible: visible }, motion, { motionAppear: motionType === 'show', onAppearEnd: onMotionEnd, onLeaveEnd: onMotionEnd }), ({ className: motionClassName, style: motionStyle }, motionRef) => (React.createElement(\"div\", { ref: motionRef, className: classNames(`${prefixCls}-treenode-motion`, motionClassName), style: motionStyle }, motionNodes.map((treeNode) => {\n const { data: { key, ...restProps }, isStart, isEnd, } = treeNode;\n delete restProps.children;\n const treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return (React.createElement(TreeNode, Object.assign({}, restProps, treeNodeProps, { active: active, data: treeNode.data, key: key, isStart: isStart, isEnd: isEnd, ripple: ripple })));\n })))));\n }\n return React.createElement(TreeNode, Object.assign({ domRef: ref, className: className, style: style }, props, { active: active }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nconst RefMotionTreeNode = React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;\n","/**\n * Handle virtual list of the TreeNodes.\n */\nimport * as React from 'react';\nimport omit from 'lodash/omit';\nimport VirtualList from 'rc-virtual-list';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nimport List from './List';\nconst HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0,\n};\nconst noop = () => {\n};\nexport const MOTION_KEY = `RC_TREE_MOTION_${Math.random()}`;\nconst MotionNode = {\n key: MOTION_KEY,\n};\nexport const MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n};\nconst MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: [],\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n const { data: { key }, pos, } = item;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n let path = String(item.data.key);\n let current = item;\n while (current.parent) {\n current = current.parent;\n path = `${current.data.key} > ${path}`;\n }\n return path;\n}\nconst RefNodeList = (props, ref) => {\n const { prefixCls, data, expandedKeys, selectedKeys, checkedKeys, loadedKeys, loadingKeys, halfCheckedKeys, keyEntities, disabled, dragging, dragOverNodeKey, dropPosition, motion, height, itemHeight, virtual, focusable, activeItem, focused, tabIndex, onKeyDown, onFocus, onBlur, onActiveChange, onListChangeStart, onListChangeEnd, selectable, ...domProps } = props;\n // =============================== Ref ================================\n const listRef = React.useRef(null);\n const indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => ({\n scrollTo: scroll => {\n const { current } = listRef;\n if (current) {\n current.scrollTo(scroll);\n }\n },\n getIndentWidth: () => indentMeasurerRef.current ? indentMeasurerRef.current.offsetWidth : 0,\n }));\n // ============================== Motion ==============================\n const [prevExpandedKeys, setPrevExpandedKeys] = React.useState(expandedKeys);\n const [prevData, setPrevData] = React.useState(data);\n const [transitionData, setTransitionData] = React.useState(data);\n const [transitionRange, setTransitionRange] = React.useState([]);\n const [motionType, setMotionType] = React.useState(null);\n function onMotionEnd() {\n setPrevData(data);\n setTransitionData(data);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n React.useEffect(() => {\n setPrevExpandedKeys(expandedKeys);\n const diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n const keyIndex = prevData.findIndex(({ data: { key } }) => key === diffExpanded.key);\n const rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n const newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n }\n else {\n const keyIndex = data.findIndex(({ data: { key } }) => key === diffExpanded.key);\n const rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n const newTransitionData = data.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('hide');\n }\n }\n else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(() => {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n const mergedData = motion ? transitionData : data;\n const treeNodeRequiredProps = React.useMemo(() => ({\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n }), [\n expandedKeys,\n selectedKeys,\n loadedKeys,\n loadingKeys,\n checkedKeys,\n halfCheckedKeys,\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n ]);\n const renderFunction = React.useCallback((treeNode) => {\n const { pos, data: { key, ...restProps }, isStart, isEnd, } = treeNode;\n const mergedKey = getKey(key, pos);\n delete restProps.children;\n // When the tree property selectable is false, the title cannot be selected.\n // Clicking on the title triggers the onCheck event, and the ds associated record triggers the select event\n if (selectable === false) {\n restProps.selectable = selectable;\n }\n const treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return (React.createElement(MotionTreeNode, Object.assign({}, restProps, treeNodeProps, { active: !!activeItem && key === activeItem.data.key, pos: pos, data: treeNode.data, isStart: isStart, isEnd: isEnd, motion: motion, motionNodes: key === MOTION_KEY ? transitionRange : null, motionType: motionType, onMotionStart: onListChangeStart, onMotionEnd: onMotionEnd, treeNodeRequiredProps: treeNodeRequiredProps, onMouseMove: () => {\n onActiveChange(null);\n } })));\n }, [treeNodeRequiredProps]);\n return (React.createElement(React.Fragment, null,\n focused && activeItem && (React.createElement(\"span\", { style: HIDDEN_STYLE, \"aria-live\": \"assertive\" }, getAccessibilityPath(activeItem))),\n React.createElement(\"div\", { role: \"tree\" },\n React.createElement(\"input\", { style: HIDDEN_STYLE, disabled: focusable === false || disabled, tabIndex: focusable !== false ? tabIndex : undefined, onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur, value: \"\", onChange: noop })),\n React.createElement(\"div\", { className: `${prefixCls}-treenode`, \"aria-hidden\": true, style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n } },\n React.createElement(\"div\", { className: `${prefixCls}-indent` },\n React.createElement(\"div\", { ref: indentMeasurerRef, className: `${prefixCls}-indent-unit` }))),\n virtual === false ? (React.createElement(List, { ref: listRef, data: mergedData || [], prefixCls: `${prefixCls}-list`, height: height, itemKey: itemKey }, renderFunction)) : (React.createElement(VirtualList, Object.assign({}, omit(domProps, ['selectable', 'checkable']), { data: mergedData, itemKey: itemKey, height: height, fullHeight: false, virtual: virtual, itemHeight: itemHeight, prefixCls: `${prefixCls}-list`, ref: listRef }), renderFunction))));\n};\nconst NodeList = React.forwardRef(RefNodeList);\nNodeList.displayName = 'NodeList';\nexport default NodeList;\n","// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from '../../_util/KeyCode';\nimport warning from '../../_util/warning';\nimport { TreeContext } from './contextTypes';\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDataAndAria, getDragChildrenKeys, parseCheckedKeys, posToArr, } from './util';\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, flattenTreeData, getTreeNodeProps, warningWithoutKey, } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nclass Tree extends React.Component {\n constructor() {\n super(...arguments);\n this.destroyed = false;\n this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n dragging: false,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n };\n this.dragStartMousePosition = null;\n this.listRef = React.createRef();\n this.onNodeDragStart = (event, node) => {\n const { expandedKeys, keyEntities } = this.state;\n const { onDragStart } = this.props;\n const { eventKey } = node.props;\n this.dragNode = node;\n this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY,\n };\n const newExpandedKeys = arrDel(expandedKeys, eventKey);\n const { current } = this.listRef;\n this.setState({\n dragging: true,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: current && current.getIndentWidth(),\n });\n this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', this.onWindowDragEnd);\n if (onDragStart && node) {\n onDragStart({ event, node: convertNodePropsToEventData(node.props) });\n }\n };\n /**\n * [Legacy] Select handler is smaller 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 this.onNodeDragEnter = (event, node) => {\n const { expandedKeys, keyEntities, dragChildrenKeys, flattenNodes, indent, } = this.state;\n const { onDragEnter, onExpand, allowDrop, direction } = this.props;\n const { pos } = node.props;\n const { dragNode } = this;\n const { dropPosition, dropLevelOffset, dropTargetKey, dropContainerKey, dropTargetPos, dropAllowed, dragOverNodeKey, } = calcDropPosition(event, node, indent, this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction);\n if (!dragNode ||\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n });\n return;\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 if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n this.delayedDragEnterLogic[pos] = window.setTimeout(() => {\n const { dragging } = this.state;\n if (!dragging)\n return;\n let newExpandedKeys = [...expandedKeys];\n const entity = keyEntities[node.props.eventKey];\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in this.props)) {\n this.setExpandedKeys(newExpandedKeys);\n }\n if (onExpand) {\n onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent,\n });\n }\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n });\n return;\n }\n // Update drag over node and drag state\n this.setState({\n dragOverNodeKey,\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n });\n if (onDragEnter) {\n onDragEnter({\n event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys,\n });\n }\n };\n this.onNodeDragOver = (event, node) => {\n const { dragChildrenKeys, flattenNodes, keyEntities, expandedKeys, indent, } = this.state;\n const { onDragOver, allowDrop, direction } = this.props;\n const { dragNode } = this;\n const { dropPosition, dropLevelOffset, dropTargetKey, dropContainerKey, dropAllowed, dropTargetPos, dragOverNodeKey, } = calcDropPosition(event, node, indent, this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction);\n if (!dragNode ||\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n const { dropPosition: stateDropPosition, dropLevelOffset: stateDropLevelOffset, dropTargetKey: stateDropTargetKey, dropContainerKey: stateDropContainerKey, dropTargetPos: stateDropTargetPos, dropAllowed: stateDropAllowed, dragOverNodeKey: stateDragOverNodeKey, } = this.state;\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(stateDropPosition === null &&\n stateDropLevelOffset === null &&\n stateDropTargetKey === null &&\n stateDropContainerKey === null &&\n stateDropTargetPos === null &&\n stateDropAllowed === false &&\n stateDragOverNodeKey === null)) {\n this.setState({\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n dragOverNodeKey: null,\n });\n }\n }\n else if (!(dropPosition === stateDropPosition &&\n dropLevelOffset === stateDropLevelOffset &&\n dropTargetKey === stateDropTargetKey &&\n dropContainerKey === stateDropContainerKey &&\n dropTargetPos === stateDropTargetPos &&\n dropAllowed === stateDropAllowed &&\n dragOverNodeKey === stateDragOverNodeKey)) {\n this.setState({\n dropPosition,\n dropLevelOffset,\n dropTargetKey,\n dropContainerKey,\n dropTargetPos,\n dropAllowed,\n dragOverNodeKey,\n });\n }\n if (onDragOver) {\n onDragOver({ event, node: convertNodePropsToEventData(node.props) });\n }\n };\n this.onNodeDragLeave = (event, node) => {\n const { onDragLeave } = this.props;\n if (onDragLeave && node) {\n onDragLeave({ event, node: convertNodePropsToEventData(node.props) });\n }\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n this.onWindowDragEnd = event => {\n this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n this.onNodeDragEnd = (event, node, outsideTree = false) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: null,\n });\n this.cleanDragState();\n if (onDragEnd && !outsideTree && node) {\n onDragEnd({ event, node: convertNodePropsToEventData(node.props) });\n }\n this.dragNode = null;\n };\n this.onNodeDrop = (event, _node, outsideTree = false) => {\n const { dragChildrenKeys, dropPosition, dropTargetKey, dropTargetPos, dropAllowed, keyEntities, } = this.state;\n if (!dropAllowed)\n return;\n const { onDrop } = this.props;\n this.setState({\n dragOverNodeKey: null,\n });\n this.cleanDragState();\n if (dropTargetKey === null)\n return;\n const abstractDropNodeProps = {\n ...getTreeNodeProps(dropTargetKey, this.getTreeNodeRequiredProps()),\n active: this.getActiveItem()?.data.key === dropTargetKey,\n data: keyEntities[dropTargetKey].node,\n };\n const dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, 'Can not drop to dragNode\\'s children node. This is a bug of rc-tree. Please report an issue.');\n const posArr = dropTargetPos ? posToArr(dropTargetPos) : [];\n const dropResult = {\n event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: this.dragNode ? convertNodePropsToEventData(this.dragNode.props) : null,\n dragNodesKeys: this.dragNode ? [this.dragNode.props.eventKey].concat(dragChildrenKeys) : dragChildrenKeys,\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition === null ? 0 : dropPosition + Number(posArr[posArr.length - 1]),\n };\n if (onDrop && !outsideTree) {\n onDrop(dropResult);\n }\n this.dragNode = null;\n };\n this.cleanDragState = () => {\n const { dragging } = this.state;\n if (dragging) {\n this.setState({\n dragging: false,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null,\n });\n }\n this.dragStartMousePosition = null;\n };\n this.onNodeClick = (e, treeNode) => {\n const { onClick } = this.props;\n if (onClick) {\n onClick(e, treeNode);\n }\n };\n this.onNodeDoubleClick = (e, treeNode) => {\n const { onDoubleClick } = this.props;\n if (onDoubleClick) {\n onDoubleClick(e, treeNode);\n }\n };\n this.onNodeSelect = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { keyEntities } = this.state;\n const { onSelect, multiple } = this.props;\n const { selected, key } = treeNode;\n const targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n }\n else if (!multiple) {\n selectedKeys = [key];\n }\n else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n const selectedNodes = selectedKeys\n .map(selectedKey => {\n const entity = keyEntities[selectedKey];\n if (!entity)\n return null;\n return entity.node;\n })\n .filter(node => node);\n this.setUncontrolledState({ selectedKeys });\n if (onSelect) {\n onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n nativeEvent: e.nativeEvent,\n });\n }\n };\n this.onNodeCheck = (e, treeNode, checked) => {\n const { keyEntities, checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys, } = this.state;\n const { checkStrictly, onCheck } = this.props;\n const { key } = treeNode;\n // Prepare trigger arguments\n let checkedObj;\n let oldCheckedObj;\n const eventObj = {\n event: 'check',\n node: treeNode,\n checked,\n nativeEvent: e.nativeEvent,\n };\n if (checkStrictly) {\n const checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n const halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n oldCheckedObj = { checked: oriCheckedKeys, halfChecked: oriHalfCheckedKeys };\n eventObj.checkedNodes = checkedKeys\n .map(checkedKey => keyEntities[checkedKey])\n .filter(entity => entity)\n .map(entity => entity.node);\n this.setUncontrolledState({ checkedKeys });\n }\n else {\n // Always fill first\n let { checkedKeys, halfCheckedKeys } = conductCheck([...oriCheckedKeys, key], true, keyEntities);\n // If remove, we do it again to correction\n if (!checked) {\n const keySet = new Set(checkedKeys);\n keySet.delete(key);\n ({ checkedKeys, halfCheckedKeys } = conductCheck(Array.from(keySet), { checked: false, halfCheckedKeys }, keyEntities));\n }\n checkedObj = checkedKeys;\n oldCheckedObj = oriCheckedKeys;\n // [Legacy] This is used for `rc-tree-select`\n const checkedNodes = [];\n const checkedNodesPositions = [];\n eventObj.halfCheckedKeys = halfCheckedKeys;\n checkedKeys.forEach(checkedKey => {\n const entity = keyEntities[checkedKey];\n if (!entity)\n return;\n const { node, pos } = entity;\n checkedNodes.push(node);\n checkedNodesPositions.push({ node, pos });\n });\n eventObj.checkedNodes = checkedNodes;\n eventObj.checkedNodesPositions = checkedNodesPositions;\n this.setUncontrolledState({\n checkedKeys,\n }, false, {\n halfCheckedKeys,\n });\n }\n if (onCheck) {\n onCheck(checkedObj, eventObj, oldCheckedObj);\n }\n };\n this.onNodeLoad = (treeNode) => new Promise(resolve => {\n // We need to get the latest state of loading/loaded keys\n this.setState(({ loadedKeys = [], loadingKeys = [] }) => {\n const { loadData, onLoad } = this.props;\n const { key } = treeNode;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n // react 15 will warn if return null\n return {};\n }\n // Process load data\n const promise = loadData(treeNode);\n promise.then(() => {\n const { loadedKeys: currentLoadedKeys, loadingKeys: currentLoadingKeys } = this.state;\n const newLoadedKeys = arrAdd(currentLoadedKeys, key);\n const newLoadingKeys = arrDel(currentLoadingKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n if (onLoad) {\n onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode,\n });\n }\n this.setUncontrolledState({\n loadedKeys: newLoadedKeys,\n });\n this.setState({\n loadingKeys: newLoadingKeys,\n });\n resolve();\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key),\n };\n });\n });\n this.onNodeMouseEnter = (event, node) => {\n const { onMouseEnter } = this.props;\n if (onMouseEnter) {\n onMouseEnter({ event, node });\n }\n };\n this.onNodeMouseLeave = (event, node) => {\n const { onMouseLeave } = this.props;\n if (onMouseLeave) {\n onMouseLeave({ event, node });\n }\n };\n this.onNodeContextMenu = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n this.onFocus = (...args) => {\n const { onFocus } = this.props;\n this.setState({ focused: true });\n if (onFocus) {\n onFocus(...args);\n }\n };\n this.onBlur = (...args) => {\n const { onBlur } = this.props;\n this.setState({ focused: false });\n this.onActiveChange(null);\n if (onBlur) {\n onBlur(...args);\n }\n };\n this.getTreeNodeRequiredProps = () => {\n const { expandedKeys, selectedKeys, loadedKeys, loadingKeys, checkedKeys, halfCheckedKeys, dragOverNodeKey, dropPosition, keyEntities, } = this.state;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey,\n dropPosition,\n keyEntities,\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n this.setExpandedKeys = (expandedKeys) => {\n const { treeData } = this.state;\n const flattenNodes = flattenTreeData(treeData, expandedKeys);\n this.setUncontrolledState({\n expandedKeys,\n flattenNodes,\n }, true);\n };\n this.onNodeExpand = (e, treeNode) => {\n let { expandedKeys } = this.state;\n const { listChanging, treeData } = this.state;\n const { onExpand, loadData } = this.props;\n const { key, expanded } = treeNode;\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n const index = expandedKeys.indexOf(key);\n const targetExpanded = !expanded;\n warning((expanded && index !== -1) || (!expanded && index === -1), 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n }\n else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n this.setExpandedKeys(expandedKeys);\n if (onExpand) {\n onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent,\n });\n }\n // Async Load data\n if (targetExpanded && loadData) {\n const loadPromise = this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(() => {\n // [Legacy] Refresh logic\n const newFlattenTreeData = flattenTreeData(treeData, expandedKeys);\n this.setUncontrolledState({ flattenNodes: newFlattenTreeData });\n });\n }\n }\n };\n this.onListChangeStart = () => {\n this.setUncontrolledState({\n listChanging: true,\n });\n };\n this.onListChangeEnd = () => {\n setTimeout(() => {\n this.setUncontrolledState({\n listChanging: false,\n });\n });\n };\n // =========================== Keyboard ===========================\n this.onActiveChange = (newActiveKey) => {\n const { activeKey } = this.state;\n const { onActiveChange } = this.props;\n if (activeKey === newActiveKey) {\n return;\n }\n this.setState({ activeKey: newActiveKey });\n if (newActiveKey !== null) {\n this.scrollTo({ key: newActiveKey });\n }\n if (onActiveChange) {\n onActiveChange(newActiveKey);\n }\n };\n this.getActiveItem = () => {\n const { activeKey, flattenNodes } = this.state;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(({ data: { key } }) => key === activeKey) || null;\n };\n this.offsetActiveKey = (offset) => {\n const { flattenNodes, activeKey } = this.state;\n let index = flattenNodes.findIndex(({ data: { key } }) => key === activeKey);\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n const item = flattenNodes[index];\n if (item) {\n const { key } = item.data;\n this.onActiveChange(key);\n }\n else {\n this.onActiveChange(null);\n }\n };\n this.onKeyDown = event => {\n const { activeKey, expandedKeys, checkedKeys } = this.state;\n const { onKeyDown, checkable, selectable, loadData } = this.props;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP: {\n this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN: {\n this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n default:\n }\n // >>>>>>>>>> Expand & Selection\n const activeItem = this.getActiveItem();\n if (activeItem && activeItem.data) {\n const treeNodeRequiredProps = this.getTreeNodeRequiredProps();\n const expandable = activeItem.data.isLeaf === false || !!(activeItem.data.children || []).length || loadData;\n const eventNode = convertNodePropsToEventData({\n ...getTreeNodeProps(activeKey, treeNodeRequiredProps),\n data: activeItem.data,\n active: true,\n });\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT: {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n this.onNodeExpand({}, eventNode);\n }\n else if (activeItem.parent) {\n this.onActiveChange(activeItem.parent.data.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT: {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n this.onNodeExpand({}, eventNode);\n }\n else if (activeItem.children && activeItem.children.length) {\n this.onActiveChange(activeItem.children[0].data.key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE: {\n if (checkable &&\n !eventNode.disabled &&\n eventNode.checkable !== false &&\n !eventNode.disableCheckbox) {\n this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n event.preventDefault();\n }\n else if (!checkable &&\n selectable &&\n !eventNode.disabled &&\n eventNode.selectable !== false) {\n this.onNodeSelect({}, eventNode);\n event.preventDefault();\n }\n break;\n }\n default:\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n /**\n * Only update the value which is not in props\n */\n this.setUncontrolledState = (state, atomic = false, forceState = null) => {\n if (this.destroyed) {\n return;\n }\n let needSync = false;\n let allPassed = true;\n const newState = {};\n Object.keys(state).forEach(name => {\n if (name in this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n this.setState({\n ...newState,\n ...forceState,\n });\n }\n };\n this.scrollTo = scroll => {\n const { current } = this.listRef;\n if (current) {\n current.scrollTo(scroll);\n }\n };\n }\n componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n static getDerivedStateFromProps(props, prevState) {\n const { prevProps } = prevState;\n const newState = {\n ...prevState,\n prevProps: props,\n };\n function needSync(name) {\n return (!prevProps && name in props) || (prevProps && prevProps[name] !== props[name]);\n }\n // ================== Tree Node ==================\n let treeData;\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n ({ treeData } = props);\n }\n else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n const entitiesMap = convertDataToEntities(treeData);\n newState.keyEntities = {\n [MOTION_KEY]: MotionEntity,\n ...entitiesMap.keyEntities,\n };\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData);\n }\n }\n const keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || (prevProps && needSync('autoExpandParent'))) {\n newState.expandedKeys =\n props.autoExpandParent || (!prevProps && props.defaultExpandParent)\n ? conductExpandParent(props.expandedKeys, keyEntities)\n : props.expandedKeys;\n }\n else if (!prevProps && props.defaultExpandAll) {\n const cloneKeyEntities = { ...keyEntities };\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(key => cloneKeyEntities[key].key);\n }\n else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys =\n props.autoExpandParent || props.defaultExpandParent\n ? conductExpandParent(props.defaultExpandedKeys, keyEntities)\n : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n const flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n }\n else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n let checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n }\n else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n }\n else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys,\n };\n }\n if (checkedKeyEntity) {\n let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;\n if (!props.checkStrictly) {\n const conductKeys = conductCheck(checkedKeys, true, keyEntities);\n ({ checkedKeys, halfCheckedKeys } = conductKeys);\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n render() {\n const { focused, flattenNodes, keyEntities, dragging, activeKey, dropLevelOffset, dropContainerKey, dropTargetKey, dropPosition, dragOverNodeKey, indent, } = this.state;\n const { prefixCls, className, style, showLine, focusable, tabIndex = 0, selectable, showIcon, icon, switcherIcon, draggable, checkable, checkStrictly, disabled, motion, loadData, filterTreeNode, height, itemHeight, virtual, titleRender, dropIndicatorRender, onContextMenu, direction, ripple, onMouseDown, } = this.props;\n const domProps = getDataAndAria(this.props);\n return (React.createElement(TreeContext.Provider, { value: {\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n keyEntities,\n dropLevelOffset,\n dropContainerKey,\n dropTargetKey,\n dropPosition,\n dragOverNodeKey,\n indent,\n direction,\n dropIndicatorRender,\n loadData,\n filterTreeNode,\n titleRender,\n ripple,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n } },\n React.createElement(\"div\", { className: classNames(prefixCls, className, {\n [`${prefixCls}-show-line`]: showLine,\n [`${prefixCls}-focused`]: focused,\n [`${prefixCls}-active-focused`]: activeKey !== null,\n }), onMouseDown: onMouseDown },\n React.createElement(NodeList, Object.assign({ ref: this.listRef, prefixCls: prefixCls, style: style, data: flattenNodes, disabled: disabled, selectable: selectable, checkable: !!checkable, motion: motion, dragging: dragging, height: height, itemHeight: itemHeight, virtual: virtual, focusable: focusable, focused: focused, tabIndex: tabIndex, activeItem: this.getActiveItem(), onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, onActiveChange: this.onActiveChange, onListChangeStart: this.onListChangeStart, onListChangeEnd: this.onListChangeEnd, onContextMenu: onContextMenu }, this.getTreeNodeRequiredProps(), domProps)))));\n }\n}\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: () => true,\n};\nTree.TreeNode = TreeNode;\nexport default Tree;\n","import * as React from 'react';\nimport classNames from 'classnames';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport { getDataAndAria } from './util';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nimport { stopEvent } from '../../_util/EventManager';\nimport Ripple from '../../ripple';\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\nconst defaultTitle = '---';\nclass InternalTreeNode extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n dragNodeHighlight: false,\n };\n this.onSelectorClick = (e) => {\n // Click trigger before select/check operation\n const { context, } = this.props;\n const { onNodeClick } = context;\n onNodeClick(e, convertNodePropsToEventData(this.props));\n if (this.isSelectable()) {\n this.onSelect(e);\n }\n else {\n this.onCheck(e);\n }\n };\n this.onSelectorDoubleClick = (e) => {\n const { context, } = this.props;\n const { onNodeDoubleClick } = context;\n onNodeDoubleClick(e, convertNodePropsToEventData(this.props));\n };\n this.onSelect = (e) => {\n if (this.isDisabled())\n return;\n const { context, } = this.props;\n const { onNodeSelect } = context;\n e.preventDefault();\n onNodeSelect(e, convertNodePropsToEventData(this.props));\n };\n this.onCheck = (e) => {\n stopEvent(e);\n if (this.isDisabled())\n return;\n const { disableCheckbox, checked, context } = this.props;\n const { onNodeCheck } = context;\n if (!this.isCheckable() || disableCheckbox)\n return;\n e.preventDefault();\n const targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(this.props), targetChecked);\n };\n this.onMouseEnter = (e) => {\n const { context, } = this.props;\n const { onNodeMouseEnter } = context;\n onNodeMouseEnter(e, convertNodePropsToEventData(this.props));\n };\n this.onMouseLeave = (e) => {\n const { context, } = this.props;\n const { onNodeMouseLeave } = context;\n onNodeMouseLeave(e, convertNodePropsToEventData(this.props));\n };\n this.onContextMenu = (e) => {\n const { context, } = this.props;\n const { onNodeContextMenu } = context;\n onNodeContextMenu(e, convertNodePropsToEventData(this.props));\n };\n this.onDragStart = (e) => {\n const { context, } = this.props;\n const { onNodeDragStart } = context;\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n }\n catch (error) {\n // empty\n }\n };\n this.onDragEnter = (e) => {\n const { context, } = this.props;\n const { onNodeDragEnter } = context;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n this.onDragOver = (e) => {\n const { context, } = this.props;\n const { onNodeDragOver } = context;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n this.onDragLeave = (e) => {\n const { context, } = this.props;\n const { onNodeDragLeave } = context;\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n this.onDragEnd = (e) => {\n const { context, } = this.props;\n const { onNodeDragEnd } = context;\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n this.onDrop = (e) => {\n const { context, } = this.props;\n const { onNodeDrop } = context;\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n // Disabled item still can be switch\n this.onExpand = e => {\n stopEvent(e);\n const { loading, context, } = this.props;\n const { onNodeExpand } = context;\n if (loading)\n return;\n onNodeExpand(e, convertNodePropsToEventData(this.props));\n };\n // Drag usage\n this.setSelectHandle = node => {\n this.selectHandle = node;\n };\n this.getNodeState = () => {\n const { expanded } = this.props;\n if (this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n this.hasChildren = () => {\n const { eventKey, context } = this.props;\n const { keyEntities, } = context;\n const { children } = keyEntities[eventKey] || {};\n return !!(children || []).length;\n };\n this.isLeaf = () => {\n const { isLeaf, loaded, context } = this.props;\n const { loadData, } = context;\n const hasChildren = this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || (!loadData && !hasChildren) || (loadData && loaded && !hasChildren);\n };\n this.isDisabled = () => {\n const { disabled, context } = this.props;\n const { disabled: treeDisabled, } = context;\n return !!(treeDisabled || disabled);\n };\n this.isCheckable = () => {\n const { checkable, context } = this.props;\n const { checkable: treeCheckable, } = context;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false)\n return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n this.syncLoadData = props => {\n const { expanded, loading, loaded, context } = props;\n const { loadData, onNodeLoad, } = context;\n if (loading)\n return;\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(this.props));\n }\n }\n };\n // Switcher\n this.renderSwitcher = () => {\n const { expanded, switcherIcon: switcherIconFromProps, context } = this.props;\n const { prefixCls, switcherIcon: switcherIconFromCtx, } = context;\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n if (this.isLeaf()) {\n return (React.createElement(\"span\", { className: classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher-noop`) }, typeof switcherIcon === 'function'\n ? switcherIcon({ ...this.props, isLeaf: true })\n : switcherIcon));\n }\n const switcherCls = classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`);\n return (React.createElement(\"span\", { onClick: this.onExpand, className: switcherCls }, typeof switcherIcon === 'function'\n ? switcherIcon({ ...this.props, isLeaf: false })\n : switcherIcon));\n };\n // Checkbox\n this.renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox, context } = this.props;\n const { prefixCls, } = context;\n const disabled = this.isDisabled();\n const checkable = this.isCheckable();\n if (!checkable)\n return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n return (React.createElement(\"span\", { className: classNames(`${prefixCls}-checkbox`, checked && `${prefixCls}-checkbox-checked`, !checked && halfChecked && `${prefixCls}-checkbox-indeterminate`, (disabled || disableCheckbox) && `${prefixCls}-checkbox-disabled`), onClick: this.onCheck }, $custom));\n };\n this.renderIcon = () => {\n const { loading, context } = this.props;\n const { prefixCls, } = context;\n return (React.createElement(\"span\", { className: classNames(`${prefixCls}-iconEle`, `${prefixCls}-icon__${this.getNodeState() || 'docu'}`, loading && `${prefixCls}-icon_loading`) }));\n };\n // Icon + Title\n this.renderSelector = () => {\n const { dragNodeHighlight } = this.state;\n const { title, selected, icon, loading, data, context } = this.props;\n const { prefixCls, showIcon, icon: treeIcon, draggable, loadData, titleRender, } = context;\n const disabled = this.isDisabled();\n const mergedDraggable = typeof draggable === 'function' ? draggable(data) : draggable;\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n if (showIcon) {\n const currentIcon = icon || treeIcon;\n $icon = currentIcon ? (React.createElement(\"span\", { className: classNames(`${prefixCls}-iconEle`, `${prefixCls}-icon__customize`) }, typeof currentIcon === 'function' ? currentIcon(this.props) : currentIcon)) : (this.renderIcon());\n }\n else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n // Title\n let titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n }\n else if (titleRender) {\n titleNode = titleRender(data);\n }\n else {\n titleNode = title;\n }\n const $title = React.createElement(\"span\", { className: `${prefixCls}-title` }, titleNode);\n return (React.createElement(\"span\", { ref: this.setSelectHandle, title: typeof title === 'string' ? title : '', className: classNames(`${wrapClass}`, `${wrapClass}-${this.getNodeState() || 'normal'}`, !disabled && (selected || dragNodeHighlight) && `${prefixCls}-node-selected`, !disabled && mergedDraggable && 'draggable'), draggable: (!disabled && mergedDraggable) || undefined, \"aria-grabbed\": (!disabled && mergedDraggable) || undefined, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onContextMenu: this.onContextMenu, onDragStart: mergedDraggable ? this.onDragStart : undefined },\n $icon,\n $title));\n };\n this.renderDropIndicator = () => {\n const { disabled, eventKey, context } = this.props;\n const { draggable, dropLevelOffset, dropPosition, prefixCls, indent, dropIndicatorRender, dragOverNodeKey, direction, } = context;\n const mergedDraggable = draggable !== false;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n const showIndicator = !disabled && mergedDraggable && dragOverNodeKey === eventKey;\n return showIndicator && dropIndicatorRender\n ? dropIndicatorRender({ dropPosition, dropLevelOffset, indent, prefixCls, direction })\n : null;\n };\n }\n // Isomorphic needn't load data in server side\n componentDidMount() {\n this.syncLoadData(this.props);\n }\n componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n isSelectable() {\n const { selectable, context } = this.props;\n const { selectable: treeSelectable, } = context;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n render() {\n const { eventKey, className, style, dragOver, dragOverGapTop, dragOverGapBottom, isLeaf, isStart = [], isEnd = [], expanded, selected, checked, halfChecked, loading, domRef, active, data, onMouseMove, context, ...otherProps } = this.props;\n const { prefixCls, filterTreeNode, draggable, keyEntities, dropContainerKey, dropTargetKey, ripple, } = context;\n const disabled = this.isDisabled();\n const dataOrAriaAttributeProps = getDataAndAria(otherProps);\n const { level } = keyEntities[eventKey] || {};\n const isEndNode = isEnd[isEnd.length - 1];\n const mergedDraggable = typeof draggable === 'function' ? draggable(data) : draggable;\n return (React.createElement(React.Fragment, null,\n React.createElement(Ripple, { disabled: disabled || !ripple },\n React.createElement(\"div\", Object.assign({ ref: domRef, className: classNames(className, `${prefixCls}-treenode`, {\n [`${prefixCls}-treenode-disabled`]: disabled,\n [`${prefixCls}-treenode-switcher-${expanded ? 'open' : 'close'}`]: !isLeaf,\n [`${prefixCls}-treenode-checkbox-checked`]: checked,\n [`${prefixCls}-treenode-checkbox-indeterminate`]: halfChecked,\n [`${prefixCls}-treenode-selected`]: selected,\n [`${prefixCls}-treenode-loading`]: loading,\n [`${prefixCls}-treenode-active`]: active,\n [`${prefixCls}-treenode-leaf-last`]: isEndNode,\n 'drop-target': dropTargetKey === eventKey,\n 'drop-container': dropContainerKey === eventKey,\n 'drag-over': !disabled && dragOver,\n 'drag-over-gap-top': !disabled && dragOverGapTop,\n 'drag-over-gap-bottom': !disabled && dragOverGapBottom,\n 'filter-node': filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props)),\n }), style: style, onClick: this.onSelectorClick, onDoubleClick: this.onSelectorDoubleClick, onDragEnter: mergedDraggable ? this.onDragEnter : undefined, onDragOver: mergedDraggable ? this.onDragOver : undefined, onDragLeave: mergedDraggable ? this.onDragLeave : undefined, onDrop: mergedDraggable ? this.onDrop : undefined, onDragEnd: mergedDraggable ? this.onDragEnd : undefined, onMouseMove: onMouseMove }, dataOrAriaAttributeProps),\n React.createElement(Indent, { prefixCls: prefixCls, level: level, isStart: isStart, isEnd: isEnd }),\n this.renderSwitcher(),\n this.renderCheckbox(),\n this.renderSelector())),\n this.renderDropIndicator()));\n }\n}\nconst ContextTreeNode = props => (React.createElement(TreeContext.Consumer, null, context => React.createElement(InternalTreeNode, Object.assign({}, props, { context: context }))));\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.defaultProps = {\n title: defaultTitle,\n};\nContextTreeNode.isTreeNode = 1;\nexport { InternalTreeNode };\nexport default ContextTreeNode;\n","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport React from 'react';\nexport const TreeContext = React.createContext({});\n","import Tree, { TreeProps } from './Tree';\nimport TreeNode, { TreeNodeProps } from './TreeNode';\nexport { TreeNode, TreeProps, TreeNodeProps };\nexport default Tree;\n","export { ScrollTo } from 'rc-virtual-list/lib/List';\n","/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from '../../_util/warning';\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n const clone = list.slice();\n if (value !== undefined && value !== null) {\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n const clone = list.slice();\n if (value !== undefined && value !== null) {\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getPosition(level, index) {\n return `${level}-${index}`;\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n const dragChildrenKeys = [];\n const entity = keyEntities[dragNodeKey];\n function dig(list = []) {\n list.forEach(({ key, children }) => {\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n const posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n const { clientX, clientY } = event;\n const { top, height } = event.target.getBoundingClientRect();\n // optional chain for testing\n const horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * ((startMousePosition?.x || 0) - clientX);\n const rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n let abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n const nodeIndex = flattenedNodes.findIndex(flattenedNode => flattenedNode.data.key === abstractDropNodeEntity.key);\n const prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n const prevNodeKey = flattenedNodes[prevNodeIndex].data.key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n const abstractDragOverEntity = abstractDropNodeEntity;\n const dragOverNodeKey = abstractDropNodeEntity.key;\n let dropPosition = 0;\n let dropLevelOffset = 0;\n for (let i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n }\n else {\n break;\n }\n }\n const abstractDropDataNode = abstractDropNodeEntity.node;\n let dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) &&\n abstractDropNodeEntity.level === 0 &&\n clientY < top + height / 2 &&\n allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: -1,\n }) &&\n abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n }\n else if ((abstractDragOverEntity.children || []).length &&\n expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })) {\n dropPosition = 0;\n }\n else {\n dropAllowed = false;\n }\n }\n else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })) {\n dropPosition = 1;\n }\n else {\n dropAllowed = false;\n }\n }\n else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: 0,\n })) {\n dropPosition = 0;\n }\n else if (allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })) {\n dropPosition = 1;\n }\n else {\n dropAllowed = false;\n }\n }\n }\n else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dropNode: abstractDropDataNode,\n dropPosition: 1,\n })) {\n dropPosition = 1;\n }\n else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition,\n dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : (abstractDropNodeEntity.parent?.key || null),\n dropAllowed,\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys)\n return undefined;\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nconst internalProcessProps = (props) => props;\nexport function convertDataToTree(treeData, processor) {\n if (!treeData)\n return [];\n const { processProps = internalProcessProps } = processor || {};\n const list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(({ children, ...props }) => {\n const childrenNodes = convertDataToTree(children, processor);\n return React.createElement(TreeNode, Object.assign({ key: props.key }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n }\n else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n }\n else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n const expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key))\n return;\n const entity = keyEntities[key];\n if (!entity)\n return;\n expandedKeys.add(key);\n const { parent, node } = entity;\n if (node.disabled)\n return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(key => {\n conductUp(key);\n });\n return [...expandedKeys];\n}\n/**\n * Returns only the data- and aria- key/value pairs\n */\nexport function getDataAndAria(props) {\n const omitProps = {};\n Object.keys(props).forEach(key => {\n if (key.startsWith('data-') || key.startsWith('aria-')) {\n omitProps[key] = props[key];\n }\n });\n return omitProps;\n}\n","import warning from '../../../_util/warning';\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n const filteredKeys = new Set();\n halfCheckedKeys.forEach(key => {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n const { disabled, disableCheckbox, checkable } = (node || {});\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n const checkedKeys = new Set(keys);\n const halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach(entity => {\n const { key, node, children = [] } = entity;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter(childEntity => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(childEntity => {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n const visitedKeys = new Set();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach(entity => {\n const { parent, node } = entity;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !parent || visitedKeys.has(parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n let allChecked = true;\n let partialChecked = false;\n (parent.children || [])\n .filter(childEntity => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n const checkedKeys = new Set(keys);\n const halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (let level = 0; level <= maxLevel; level += 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach(entity => {\n const { key, node, children = [] } = entity;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children\n .filter(childEntity => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(childEntity => {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys.clear();\n const visitedKeys = new Set();\n for (let level = maxLevel; level >= 0; level -= 1) {\n const entities = levelEntities.get(level) || new Set();\n entities.forEach(entity => {\n const { parent, node } = entity;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !parent || visitedKeys.has(parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n let allChecked = true;\n let partialChecked = false;\n (parent.children || [])\n .filter(childEntity => !syntheticGetCheckDisabled(childEntity.node))\n .forEach(({ key }) => {\n const checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys)),\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n const warningMissKeys = [];\n let syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n }\n else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n const keys = new Set(keyList.filter(key => {\n const hasEntity = !!keyEntities[key];\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n const levelEntities = new Map();\n let maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(key => {\n const entity = keyEntities[key];\n const { level } = entity;\n let levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, `Tree missing follow keys: ${warningMissKeys\n .slice(0, 100)\n .map(key => `'${key}'`)\n .join(', ')}`);\n let result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}\n","export function findExpandedKeys(prev = [], next = []) {\n const prevLen = prev.length;\n const nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return { add: false, key: null };\n }\n function find(shorter, longer) {\n const cache = new Map();\n shorter.forEach(key => {\n cache.set(key, true);\n });\n const keys = longer.filter(key => !cache.has(key));\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next),\n };\n }\n return {\n add: false,\n key: find(next, prev),\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n const shorterStartIndex = shorter.findIndex(({ data }) => data.key === key);\n const shorterEndNode = shorter[shorterStartIndex + 1];\n const longerStartIndex = longer.findIndex(({ data }) => data.key === key);\n if (shorterEndNode) {\n const longerEndIndex = longer.findIndex(({ data }) => data.key === shorterEndNode.data.key);\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}\n","import { Children } from 'react';\nimport warning from '../../../_util/warning';\nimport { getPosition, isTreeNode } from '../util';\nexport function toArray(children) {\n const ret = [];\n Children.forEach(children, (c) => ret.push(c));\n return ret;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData = []) {\n const keys = new Map();\n function dig(list, path = '') {\n (list || []).forEach(treeNode => {\n const { key, children } = treeNode;\n warning(key !== null && key !== undefined, `Tree node must have a certain key: [${path}${key}]`);\n const recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, `Same 'key' exist in the Tree: ${recordKey}`);\n keys.set(recordKey, true);\n dig(children, `${path}${recordKey} > `);\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n const treeNodes = toArray(node);\n return treeNodes\n .reduce((array, treeNode) => {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n }\n else {\n const { key } = treeNode;\n const { children, ...rest } = treeNode.props;\n const dataNode = {\n key,\n ...rest,\n };\n const parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n array.push(dataNode);\n }\n return array;\n }, []);\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList = [], expandedKeys = []) {\n const expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n const flattenList = [];\n function dig(list, parent = null) {\n return list.map((treeNode, index) => {\n const pos = getPosition(parent ? parent.pos : '0', index);\n const mergedKey = getKey(treeNode.key, pos);\n // Add FlattenDataNode into list\n const flattenNode = {\n ...treeNode,\n parent,\n pos,\n children: null,\n data: treeNode,\n isStart: [...(parent ? parent.isStart : []), index === 0],\n isEnd: [...(parent ? parent.isEnd : []), index === list.length - 1],\n };\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode.children || [], flattenNode);\n }\n else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback, \n// To avoid too many params, let use config instead of origin param\nconfig) {\n // Init config\n let externalGetKey = null;\n let childrenPropName;\n const configType = typeof config;\n if (configType === 'function' || configType === 'string') {\n // Legacy getKey param\n externalGetKey = config;\n }\n else if (config && configType === 'object') {\n ({ childrenPropName, externalGetKey } = config);\n }\n // Get keys\n let syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = (node) => node[externalGetKey];\n }\n else if (typeof externalGetKey === 'function') {\n syntheticGetKey = (node) => externalGetKey(node);\n }\n }\n else {\n syntheticGetKey = (node, pos) => getKey(node.key, pos);\n }\n // Process\n function processNode(node, index, parent) {\n const children = node ? node[childrenPropName || 'children'] : dataNodes;\n const pos = node && parent ? getPosition(parent.pos, index) : '0';\n // Process node if is not root\n if (node && parent) {\n const key = syntheticGetKey(node, pos);\n const data = {\n node,\n index,\n pos,\n key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach((subNode, subIndex) => {\n processNode(subNode, subIndex, {\n node,\n pos,\n level: parent ? parent.level + 1 : -1,\n });\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes, { initWrapper, processEntity, onProcessFinished, externalGetKey, childrenPropName, } = {}, \n/** @deprecated Use `config.externalGetKey` instead */\nlegacyExternalGetKey) {\n // Init config\n const mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n const posEntities = {};\n const keyEntities = {};\n let wrapper = {\n posEntities,\n keyEntities,\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, item => {\n const { node, index, pos, key, parentPos, level } = item;\n const entity = { node, index, key, pos, level };\n const mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, { externalGetKey: mergedExternalGetKey, childrenPropName });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, { expandedKeys, selectedKeys, loadedKeys, loadingKeys, checkedKeys, halfCheckedKeys, dragOverNodeKey, dropPosition, keyEntities, }) {\n const entity = keyEntities[key];\n const treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n const { data, expanded, selected, checked, loaded, loading, halfChecked, dragOver, dragOverGapTop, dragOverGapBottom, pos, active, } = props;\n const eventData = {\n ...data,\n expanded,\n selected,\n checked,\n loaded,\n loading,\n halfChecked,\n dragOver,\n dragOverGapTop,\n dragOverGapBottom,\n pos,\n active,\n };\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n },\n });\n }\n return eventData;\n}\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 renderPopupInner = (innerRef) => {\n const { savePopupRef } = this;\n const {\n align,\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 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 const newStyle = {\n ...sizeStyle,\n ...style,\n ...this.getZIndexStyle(),\n };\n const popupInnerProps = {\n className,\n prefixCls,\n ref: savePopupRef,\n onMouseEnter,\n onMouseLeave,\n style: newStyle,\n };\n if (!destroyPopupOnHide) {\n popupInnerProps.hiddenClassName = hiddenClassName;\n }\n return (\n <PopupInner\n innerRef={innerRef}\n {...popupInnerProps}\n >\n {children}\n </PopupInner>\n );\n };\n\n getPopupElement() {\n const { stretchChecked } = this.state;\n const {\n align, visible,\n destroyPopupOnHide, stretch,\n } = this.props;\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n if (stretch && !stretchChecked) {\n // Do nothing when stretch not ready\n return null;\n }\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 {this.renderPopupInner}\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 {this.renderPopupInner}\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 ref={props.innerRef}\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 if (!e.isDefaultPrevented()) {\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.props.blurDelay);\n }\n }\n };\n\n onContextMenu = (e) => {\n e.preventDefault();\n this.fireEvents('onContextMenu', e);\n this.setPopupVisible(true);\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 (event.isDefaultPrevented() || (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 domEvent = e.hasOwnProperty('isDefaultPrevented') ? e : e.domEvent;\n const childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(domEvent);\n }\n if (!e.isDefaultPrevented()) {\n const callback = this.props[type];\n if (callback) {\n callback(domEvent);\n }\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 child = Children.only(props.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 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';\nimport isObject from 'lodash/isObject';\nimport debounce from 'lodash/debounce';\nimport { isArrayLike } from 'mobx';\nimport { matchMediaPolifill } from '../_util/mediaQueryListPolyfill';\nimport { Breakpoint } from './enum';\nlet enquire;\nif (typeof window !== 'undefined') {\n window.matchMedia = window.matchMedia || matchMediaPolifill;\n // eslint-disable-next-line global-require\n enquire = require('enquire.js');\n}\nconst responsiveMap = {\n [Breakpoint.xxl]: '(min-width: 1600px)',\n [Breakpoint.xl]: '(min-width: 1200px)',\n [Breakpoint.lg]: '(min-width: 992px)',\n [Breakpoint.md]: '(min-width: 768px)',\n [Breakpoint.sm]: '(min-width: 576px)',\n [Breakpoint.xs]: '(max-width: 575px)',\n};\nconst responsiveArray = Object.keys(responsiveMap);\nfunction isBreakPointMap(item) {\n if (isObject(item)) {\n const keys = Object.keys(item);\n if (keys.length) {\n return keys.every(key => key in responsiveMap);\n }\n }\n return false;\n}\nexport function hasBreakPointMap(items) {\n // eslint-disable-next-line no-use-before-define\n return items.some(isOrHasBreakPointMap);\n}\nfunction isOrHasBreakPointMap(item) {\n return isArrayLike(item) ? hasBreakPointMap(item) : isBreakPointMap(item);\n}\nexport default class Responsive extends PureComponent {\n constructor() {\n super(...arguments);\n this.state = { breakpoints: {} };\n this.handlers = new Map();\n this.fireUpdate = debounce(() => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(this.getValues());\n }\n }, 10);\n }\n isDisabled(props) {\n const { disabled, items } = props;\n if (!disabled && items) {\n return !hasBreakPointMap(items);\n }\n return true;\n }\n componentDidMount() {\n if (!this.isDisabled(this.props)) {\n this.register();\n }\n }\n componentDidUpdate(prevProps) {\n const { props } = this;\n if (!this.isDisabled(prevProps) && this.isDisabled(props)) {\n this.unregister();\n }\n if (this.isDisabled(prevProps) && !this.isDisabled(props)) {\n this.register();\n }\n }\n componentWillUnmount() {\n if (!this.isDisabled(this.props)) {\n this.unregister();\n }\n }\n register() {\n if (enquire) {\n const { handlers } = this;\n responsiveArray.forEach((breakpoint) => {\n const query = responsiveMap[breakpoint];\n const handler = {\n match: () => {\n this.setState(prevState => ({\n breakpoints: {\n ...prevState.breakpoints,\n [breakpoint]: true,\n },\n }), this.fireUpdate);\n },\n unmatch: () => {\n this.setState(prevState => ({\n breakpoints: {\n ...prevState.breakpoints,\n [breakpoint]: false,\n },\n }), this.fireUpdate);\n },\n // Keep a empty destory to avoid triggering unmatch when unregister\n destroy() {\n },\n };\n enquire.register(query, handler);\n handlers.set(query, handler);\n });\n }\n }\n unregister() {\n const { handlers } = this;\n Object.keys(responsiveMap).forEach((breakpoint) => {\n const query = responsiveMap[breakpoint];\n const handler = handlers.get(query);\n if (handler) {\n enquire.unregister(query, handler);\n }\n });\n }\n processValue(value) {\n const { breakpoints } = this.state;\n if (isArrayLike(value) && hasBreakPointMap(value)) {\n return value.map(this.processValue, this);\n }\n if (isBreakPointMap(value)) {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (breakpoints[breakpoint] && value[breakpoint] !== undefined) {\n return value[breakpoint];\n }\n }\n return undefined;\n }\n return value;\n }\n getValues() {\n const { items } = this.props;\n if (items) {\n return items.map(this.processValue, this);\n }\n return [];\n }\n render() {\n const { props } = this;\n const { children } = props;\n if (typeof children === 'function') {\n return children(this.getValues(), this.isDisabled(props));\n }\n return children;\n }\n}\nResponsive.displayName = 'Responsive';\n","export var Breakpoint;\n(function (Breakpoint) {\n Breakpoint[\"xxl\"] = \"xxl\";\n Breakpoint[\"xl\"] = \"xl\";\n Breakpoint[\"lg\"] = \"lg\";\n Breakpoint[\"md\"] = \"md\";\n Breakpoint[\"sm\"] = \"sm\";\n Breakpoint[\"xs\"] = \"xs\";\n})(Breakpoint || (Breakpoint = {}));\n","import { cloneElement, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nfunction wrapEvent(element, eventName, callback) {\n return e => {\n const originalEvent = element.props[eventName];\n if (originalEvent) {\n originalEvent(e);\n }\n callback(e);\n };\n}\nexport default class MouseDown extends PureComponent {\n constructor() {\n super(...arguments);\n this.state = {};\n this.show = e => {\n const { currentTarget } = e;\n const pos = currentTarget.getBoundingClientRect();\n this.setState({\n size: {\n x: e.clientX - pos.left,\n y: e.clientY - pos.top,\n width: currentTarget.clientWidth,\n height: currentTarget.clientHeight,\n position: document.defaultView && document.defaultView.getComputedStyle(currentTarget).position,\n },\n });\n };\n this.hide = () => {\n this.setState({\n size: undefined,\n });\n };\n }\n render() {\n const { children, rippleChild } = this.props;\n const { size } = this.state;\n const element = children(rippleChild, size);\n const newProps = {\n onMouseDown: wrapEvent(element, 'onMouseDown', this.show),\n };\n if (size) {\n Object.assign(newProps, {\n onMouseUp: wrapEvent(element, 'onMouseUp', this.hide),\n onMouseLeave: wrapEvent(element, 'onMouseLeave', this.hide),\n onDragEnd: wrapEvent(element, 'onDragEnd', this.hide),\n });\n }\n return cloneElement(element, newProps);\n }\n}\nMouseDown.displayName = 'MouseDown';\nMouseDown.propTypes = { rippleChild: PropTypes.node };\n","import React, { Children, cloneElement, isValidElement, PureComponent } from 'react';\nimport Animate from '../animate';\nimport createChains from '../_util/createChains';\nimport MouseDown from './MouseDown';\nexport default class RippleChild extends PureComponent {\n constructor() {\n super(...arguments);\n this.handleMouseDown = (child, size) => {\n const { prefixCls, ...rest } = this.props;\n const { children, style } = child.props;\n if (size) {\n const { x, y, width, height } = size;\n const maxWidth = Math.max(width - x, x);\n const maxHeight = Math.max(height - y, y);\n const max = Math.sqrt(maxWidth * maxWidth + maxHeight * maxHeight);\n this.currentCircleStyle = {\n width: max + max,\n height: max + max,\n left: x - max,\n top: y - max,\n };\n }\n const newProps = {\n ...createChains(rest, child.props),\n children: [\n children,\n React.createElement(Animate, { key: \"ripple\", component: \"div\", componentProps: this.getComponentProps(prefixCls), transitionName: size ? 'zoom-small-slow' : 'fade', hiddenProp: \"hidden\" }, this.currentCircleStyle && (React.createElement(\"div\", { hidden: !size, className: prefixCls, key: \"circle\", style: this.currentCircleStyle }))),\n ],\n style: this.currentStyle || style,\n };\n if (size && size.position === 'static') {\n newProps.style = { ...style, position: 'relative' };\n this.currentStyle = newProps.style;\n }\n return cloneElement(child, newProps);\n };\n this.ripple = (child) => {\n if (isValidElement(child)) {\n return React.createElement(MouseDown, { rippleChild: child }, this.handleMouseDown);\n }\n return child;\n };\n }\n render() {\n const { children } = this.props;\n return this.ripple(Children.only(children));\n }\n getComponentProps(prefixCls) {\n const className = `${prefixCls}-wrapper`;\n const { componentProps } = this;\n if (!componentProps || className !== componentProps.className) {\n this.componentProps = {\n className,\n };\n }\n return this.componentProps;\n }\n}\nRippleChild.displayName = 'RippleChild';\n","import React, { Children, cloneElement, isValidElement, PureComponent } from 'react';\nimport RippleChild from './RippleChild';\nimport { getConfig, getPrefixCls } from '../configure';\nimport createChains from '../_util/createChains';\nexport default class Ripple extends PureComponent {\n render() {\n const { disabled, children, ...rest } = this.props;\n if (disabled || !children || !getConfig('ripple')) {\n if (children) {\n return Children.map(children, child => isValidElement(child) ? cloneElement(child, createChains(rest, child.props)) : child);\n }\n return children;\n }\n return Children.map(children, (child) => this.rippleChild(child, rest));\n }\n rippleChild(child, rest) {\n const { prefixCls } = this.props;\n return React.createElement(RippleChild, Object.assign({ prefixCls: getPrefixCls('ripple', prefixCls) }, rest), child);\n }\n}\nRipple.displayName = 'Ripple';\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import { Row, RowProps } from '../grid';\nexport { RowProps };\nexport default Row;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../input/style';\nimport '../../ripple/style';\n","import * as React from 'react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport { getPrefixCls } from '../configure';\nimport Element from './Element';\n// eslint-disable-next-line react/prefer-stateless-function\nclass SkeletonAvatar extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSkeletonAvatar = () => {\n const { prefixCls: customizePrefixCls, className, active } = this.props;\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const otherProps = omit(this.props, ['prefixCls']);\n const cls = classNames(prefixCls, className, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n });\n return (React.createElement(\"div\", { className: cls },\n React.createElement(Element, Object.assign({ prefixCls: `${prefixCls}-avatar` }, otherProps))));\n };\n }\n render() {\n return React.createElement(React.Fragment, null, this.renderSkeletonAvatar());\n }\n}\nSkeletonAvatar.defaultProps = {\n size: 'default',\n shape: 'circle',\n};\nexport default SkeletonAvatar;\n","import * as React from 'react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport Element from './Element';\nimport { getPrefixCls } from '../configure';\n// eslint-disable-next-line react/prefer-stateless-function\nclass SkeletonButton extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSkeletonButton = () => {\n const { prefixCls: customizePrefixCls, className, active } = this.props;\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const otherProps = omit(this.props, ['prefixCls']);\n const cls = classNames(prefixCls, className, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n });\n return (React.createElement(\"div\", { className: cls },\n React.createElement(Element, Object.assign({ prefixCls: `${prefixCls}-button` }, otherProps))));\n };\n }\n render() {\n return React.createElement(React.Fragment, null, this.renderSkeletonButton());\n }\n}\nSkeletonButton.defaultProps = {\n size: 'default',\n};\nexport default SkeletonButton;\n","import * as React from 'react';\nimport classNames from 'classnames';\n// eslint-disable-next-line react/prefer-stateless-function\nclass Element extends React.Component {\n render() {\n const { prefixCls, className, style, size, shape } = this.props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small',\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n [`${prefixCls}-round`]: shape === 'round',\n });\n const sizeStyle = typeof size === 'number'\n ? {\n width: size,\n height: size,\n lineHeight: `${size}px`,\n }\n : {};\n return (React.createElement(\"span\", { className: classNames(prefixCls, className, sizeCls, shapeCls), style: { ...sizeStyle, ...style } }));\n }\n}\nexport default Element;\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { Row, Col } from '../grid';\nfunction getGrid(grid, t) {\n return grid && grid[t] && Math.floor(24 / grid[t]);\n}\nconst Grid = (props) => {\n const renderContent = () => {\n const { column, prefixCls } = props;\n if (column) {\n let col = column;\n const cols = [];\n while (col && col > 0) {\n cols.push(React.createElement(Col, { span: getGrid(props, 'column'), xs: getGrid(props, 'xs'), sm: getGrid(props, 'sm'), md: getGrid(props, 'md'), lg: getGrid(props, 'lg'), xl: getGrid(props, 'xl'), xxl: getGrid(props, 'xxl') },\n React.createElement(\"div\", { className: `${prefixCls}-content` })));\n col--;\n }\n return cols;\n }\n return React.createElement(Col, null,\n React.createElement(\"div\", { className: `${prefixCls}-content` }));\n };\n const { prefixCls, className, style, rows, gutter } = props;\n const rowList = (React.createElement(Row, { gutter: gutter }, [...Array(rows)].map(() => renderContent())));\n return (React.createElement(\"div\", { className: classNames(prefixCls, className), style: style }, rowList));\n};\nexport default Grid;\n","import * as React from 'react';\nimport omit from 'lodash/omit';\nimport classNames from 'classnames';\nimport Element from './Element';\nimport { getPrefixCls } from '../configure';\n// eslint-disable-next-line react/prefer-stateless-function\nclass SkeletonInput extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSkeletonInput = () => {\n const { prefixCls: customizePrefixCls, className, active } = this.props;\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const otherProps = omit(this.props, ['prefixCls']);\n const cls = classNames(prefixCls, className, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n });\n return (React.createElement(\"div\", { className: cls },\n React.createElement(Element, Object.assign({ prefixCls: `${prefixCls}-input` }, otherProps))));\n };\n }\n render() {\n return React.createElement(React.Fragment, null, this.renderSkeletonInput());\n }\n}\nSkeletonInput.defaultProps = {\n size: 'default',\n};\nexport default SkeletonInput;\n","import * as React from 'react';\nimport classNames from 'classnames';\nclass Paragraph extends React.Component {\n getWidth(index) {\n const { width, rows = 2 } = this.props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n }\n render() {\n const { prefixCls, className, style, rows } = this.props;\n const rowList = [...Array(rows)].map((_, index) => (\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", { key: index, style: { width: this.getWidth(index) } })));\n return (React.createElement(\"ul\", { className: classNames(prefixCls, className), style: style }, rowList));\n }\n}\nexport default Paragraph;\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport Title from './Title';\nimport Grid from './Grid';\nimport Paragraph from './Paragraph';\nimport { getPrefixCls } from '../configure';\nimport Element from './Element';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return { size: 'large', shape: 'square' };\n }\n return { size: 'large', shape: 'circle' };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return { width: '38%' };\n }\n if (hasAvatar && hasParagraph) {\n return { width: '50%' };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n }\n else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nclass Skeleton extends React.Component {\n constructor() {\n super(...arguments);\n this.renderSkeleton = () => {\n const { prefixCls: customizePrefixCls, loading, className, children, avatar, title, paragraph, active, grid, } = this.props;\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n if (loading || !('loading' in this.props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n const hasGrid = !!grid;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = {\n prefixCls: `${prefixCls}-avatar`,\n ...getAvatarBasicProps(hasTitle, hasParagraph),\n ...getComponentProps(avatar),\n };\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = (React.createElement(\"div\", { className: `${prefixCls}-header` },\n React.createElement(Element, Object.assign({}, avatarProps))));\n }\n let contentNode;\n if (hasTitle || hasParagraph || hasGrid) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = {\n prefixCls: `${prefixCls}-title`,\n ...getTitleBasicProps(hasAvatar, hasParagraph || hasGrid),\n ...getComponentProps(title),\n };\n $title = React.createElement(Title, Object.assign({}, titleProps));\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = {\n prefixCls: `${prefixCls}-paragraph`,\n ...getParagraphBasicProps(hasAvatar, hasTitle),\n ...getComponentProps(paragraph),\n };\n paragraphNode = React.createElement(Paragraph, Object.assign({}, paragraphProps));\n }\n // Grid\n let gridNode;\n if (hasGrid) {\n const gridProps = {\n prefixCls: `${prefixCls}-grid`,\n ...getComponentProps(grid),\n };\n gridNode = React.createElement(Grid, Object.assign({}, gridProps));\n }\n contentNode = (React.createElement(\"div\", { className: `${prefixCls}-content` },\n $title,\n paragraphNode,\n gridNode));\n }\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-rtl`]: false,\n });\n return (React.createElement(\"div\", { className: cls },\n avatarNode,\n contentNode));\n }\n return children;\n };\n }\n render() {\n return React.createElement(React.Fragment, null, this.renderSkeleton());\n }\n}\nSkeleton.defaultProps = {\n avatar: false,\n title: true,\n paragraph: true,\n};\nexport default Skeleton;\n","/* eslint-disable jsx-a11y/heading-has-content */\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Title = ({ prefixCls, className, width, style }) => (React.createElement(\"h3\", { className: classNames(prefixCls, className), style: { width, ...style } }));\nexport default Title;\n","import Skeleton from './Skeleton';\nimport SkeletonButton from './Button';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonInput from './Input';\nexport { SkeletonProps } from './Skeleton';\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nexport default Skeleton;\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import React, { cloneElement, Component, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport isCssAnimationSupported from '../_util/isCssAnimationSupported';\nimport Animate from '../animate';\nimport Progress from '../progress/progress';\nimport { Size } from '../_util/enum';\nimport { ProgressType } from '../progress/enum';\nimport { getPrefixCls } from '../configure';\nexport default class Spin extends Component {\n constructor(props) {\n super(props);\n const spinning = props.spinning;\n this.state = {\n spinning,\n };\n }\n componentDidMount() {\n if (!isCssAnimationSupported()) {\n // Show text in IE9\n this.setState({\n notCssAnimationSupported: true,\n });\n }\n }\n componentWillUnmount() {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n }\n componentWillReceiveProps(nextProps) {\n const { spinning: currentSpinning } = this.props;\n const spinning = nextProps.spinning;\n const { delay } = this.props;\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n if (currentSpinning && !spinning) {\n this.debounceTimeout = window.setTimeout(() => this.setState({ spinning }), 200);\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n }\n else if (spinning && delay && !isNaN(Number(delay))) {\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n this.delayTimeout = window.setTimeout(() => this.setState({ spinning }), delay);\n }\n else {\n this.setState({ spinning });\n }\n }\n renderIndicator(prefixCls) {\n const { indicator, size } = this.props;\n const dotClassName = `${prefixCls}-dot`;\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName),\n });\n }\n return (React.createElement(Progress, { size: size, className: dotClassName, type: ProgressType.loading }));\n }\n render() {\n const { className, size, prefixCls: customizePrefixCls, tip, wrapperClassName, children, style, ...restProps } = this.props;\n const { spinning, notCssAnimationSupported } = this.state;\n const prefixCls = getPrefixCls('spin', customizePrefixCls);\n const spinClassName = classNames(prefixCls, {\n [`${prefixCls}-sm`]: size === Size.small,\n [`${prefixCls}-lg`]: size === Size.large,\n [`${prefixCls}-spinning`]: spinning,\n [`${prefixCls}-show-text`]: !!tip || notCssAnimationSupported,\n }, className);\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(restProps, ['spinning', 'delay', 'indicator']);\n const spinElement = (React.createElement(\"div\", Object.assign({}, divProps, { className: spinClassName, style: style, key: \"loading\" }),\n this.renderIndicator(prefixCls),\n tip ? React.createElement(\"div\", { className: `${prefixCls}-text` }, tip) : null));\n if (children) {\n let animateClassName = `${prefixCls}-nested-loading`;\n if (wrapperClassName) {\n animateClassName += ` ${wrapperClassName}`;\n }\n const containerClassName = classNames({\n [`${prefixCls}-container`]: true,\n [`${prefixCls}-blur`]: spinning,\n });\n return (React.createElement(Animate, Object.assign({}, divProps, { component: \"div\", className: animateClassName, transitionName: \"fade\" }),\n spinning && spinElement,\n React.createElement(\"div\", { className: containerClassName, key: \"container\" }, children)));\n }\n return spinElement;\n }\n}\nSpin.displayName = 'Spin';\nSpin.defaultProps = {\n spinning: true,\n size: Size.default,\n wrapperClassName: '',\n};\nSpin.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n spinning: PropTypes.bool,\n size: PropTypes.oneOf([Size.small, Size.default, Size.large]),\n wrapperClassName: PropTypes.string,\n indicator: PropTypes.node,\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../progress/style';\n","// extracted by mini-css-extract-plugin","import './index.less';\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nfunction getCount(count) {\n if (typeof count === 'function') {\n return count();\n }\n return count;\n}\nconst Count = observer(function Count(props) {\n const { count, overflowCount, prefixCls } = props;\n const number = getCount(count);\n if (number) {\n return (React.createElement(\"span\", { className: `${prefixCls}-tab-count` }, overflowCount && number > overflowCount ? `${overflowCount}+` : number));\n }\n return null;\n});\nCount.displayName = 'Count';\nexport default Count;\n","import React, { useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';\nimport classnames from 'classnames';\nimport noop from 'lodash/noop';\nimport debounce from 'lodash/debounce';\nimport Button from 'choerodon-ui/pro/lib/button';\nimport { FuncType } from 'choerodon-ui/pro/lib/button/enum';\nimport { useModal } from 'choerodon-ui/pro/lib/modal-provider/ModalProvider';\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\nimport { getActiveKeyByGroupKey, getDataAttr, getHeader, getLeft, getTop, isTransformSupported, isVertical, setTransform } from './utils';\nimport warning from '../_util/warning';\nimport Ripple from '../ripple';\nimport TabBarInner from './TabBarInner';\nimport EventManager from '../_util/EventManager';\nimport { TabsType } from './enum';\nimport Icon from '../icon';\nimport Menu from '../menu';\nimport MenuItem from '../menu/MenuItem';\nimport Badge from '../badge';\nimport TabsContext from './TabsContext';\nimport KeyCode from '../_util/KeyCode';\nimport { Size } from '../_util/enum';\nimport CustomizationSettings from './customization-settings';\nimport Count from './Count';\nconst TabBar = function TabBar(props) {\n const { scrollAnimated, className, style, inkBarStyle, extraContent, tabBarGutter, inkBarAnimated, type, onRemoveTab, ...restProps } = props;\n const { keyboard, customizable, prefixCls, activeKey, activeGroupKey, tabBarPosition, hideOnlyGroup = false, groupedPanelsMap, currentPanelMap, onTabClick, onPrevClick = noop, onNextClick = noop, changeActiveKey, } = useContext(TabsContext);\n const modal = useModal();\n const openCustomizationModal = useCallback(() => {\n if (customizable) {\n const modalProps = {\n drawer: true,\n size: Size.small,\n title: $l('Tabs', 'customization_settings'),\n children: React.createElement(CustomizationSettings, null),\n bodyStyle: {\n overflow: 'hidden auto',\n padding: 0,\n },\n };\n modalProps.okText = $l('Tabs', 'save');\n modal.open(modalProps);\n }\n }, [customizable, modal]);\n const getNextActiveKey = useCallback((next) => {\n const list = [];\n currentPanelMap.forEach((c, key) => {\n if (!c.disabled) {\n if (next) {\n list.push(key);\n }\n else {\n list.unshift(key);\n }\n }\n });\n const { length } = list;\n if (activeKey && length) {\n const i = list.indexOf(activeKey);\n const itemIndex = i === length - 1 ? 0 : i + 1;\n return list[itemIndex] || list[0];\n }\n return undefined;\n }, [activeKey, currentPanelMap]);\n const handleKeyDown = useCallback(e => {\n if (keyboard === false) {\n return noop;\n }\n const { keyCode } = e;\n if (keyCode === KeyCode.RIGHT || keyCode === KeyCode.DOWN) {\n e.preventDefault();\n const nextKey = getNextActiveKey(true);\n if (nextKey) {\n changeActiveKey(nextKey);\n }\n }\n else if (keyCode === KeyCode.LEFT || keyCode === KeyCode.UP) {\n e.preventDefault();\n const previousKey = getNextActiveKey(false);\n if (previousKey) {\n changeActiveKey(previousKey);\n }\n }\n }, [keyboard, changeActiveKey, getNextActiveKey]);\n const handleTabClick = useCallback((key) => {\n if (onTabClick) {\n onTabClick(key);\n }\n changeActiveKey(key);\n }, [changeActiveKey, onTabClick]);\n const handleGroupSelect = useCallback((param) => {\n const { key } = param;\n if (activeGroupKey !== key) {\n const newActiveKey = getActiveKeyByGroupKey(groupedPanelsMap, key);\n if (newActiveKey) {\n changeActiveKey(newActiveKey, true);\n }\n }\n }, [changeActiveKey, activeGroupKey, groupedPanelsMap]);\n const resizeEvent = useMemo(() => new EventManager(typeof window === 'undefined' ? undefined : window), []);\n const lastNextPrevShownRef = useRef();\n const offsetRef = useRef(0);\n const containerRef = useRef(null);\n const navWrapRef = useRef(null);\n const navRef = useRef(null);\n const rootRef = useRef(null);\n const activeTabRef = useRef(null);\n const inkBarRef = useRef(null);\n const [next, setNext] = useState(false);\n const [prev, setPrev] = useState(false);\n const [prevActiveKey, setActiveKey] = useState(activeKey);\n const getTabs = () => {\n return [...currentPanelMap.entries()].reduce((rst, [key, child], index, list) => {\n const { disabled, closable = true, count, overflowCount, showCount } = child;\n const classes = [`${prefixCls}-tab`];\n const tabProps = {\n tabKey: key,\n role: 'tab',\n 'aria-disabled': 'false',\n 'aria-selected': 'false',\n style: {\n marginRight: tabBarGutter && index === list.length - 1 ? 0 : tabBarGutter,\n },\n };\n if (disabled) {\n classes.push(`${prefixCls}-tab-disabled`);\n tabProps['aria-disabled'] = 'true';\n }\n else {\n tabProps.onTabClick = handleTabClick;\n }\n if (activeKey === key) {\n classes.push(`${prefixCls}-tab-active`);\n tabProps.ref = activeTabRef;\n tabProps['aria-selected'] = 'true';\n }\n tabProps.className = classes.join(' ');\n warning('tab' in child || 'title' in child, 'There must be `tab` or `title` property on children of Tabs.');\n const title = (React.createElement(React.Fragment, null,\n getHeader(child),\n showCount && React.createElement(Count, { prefixCls: prefixCls, count: count, overflowCount: overflowCount })));\n rst.push(React.createElement(Ripple, { disabled: disabled, key: key },\n React.createElement(TabBarInner, Object.assign({}, tabProps), type === TabsType['editable-card'] ? (React.createElement(\"div\", { className: closable ? undefined : `${prefixCls}-tab-unclosable` },\n title,\n closable && React.createElement(Icon, { type: \"close\", onClick: e => onRemoveTab(key, e) }))) : title)));\n return rst;\n }, []);\n };\n const getContent = (contents) => {\n if (extraContent || customizable) {\n return [\n contents,\n React.createElement(\"div\", { key: \"extra\", className: `${prefixCls}-extra-content` },\n customizable && (React.createElement(Button, { className: `${prefixCls}-hover-button`, funcType: FuncType.flat, icon: \"predefine\", size: Size.small, onClick: openCustomizationModal })),\n extraContent),\n ];\n }\n return [contents];\n };\n const getGroupNode = () => {\n if (groupedPanelsMap.size > Number(hideOnlyGroup)) {\n return (React.createElement(Menu, { prefixCls: `${prefixCls}-group`, selectedKeys: activeGroupKey ? [activeGroupKey] : [], onSelect: handleGroupSelect, mode: isVertical(tabBarPosition) ? 'vertical' : 'horizontal' }, [...groupedPanelsMap.entries()].map(([key, { group: { tab, disabled, dot } }]) => (React.createElement(MenuItem, { key: key, disabled: disabled },\n React.createElement(Badge, { dot: dot }, tab))))));\n }\n return undefined;\n };\n const getInkBarNode = () => {\n const inkBarClassName = `${prefixCls}-ink-bar`;\n const classes = classnames(inkBarClassName, inkBarAnimated ?\n `${inkBarClassName}-animated` :\n `${inkBarClassName}-no-animated`);\n return (React.createElement(\"div\", { style: inkBarStyle, className: classes, key: \"inkBar\", ref: inkBarRef }));\n };\n const getOffsetWH = useCallback((node) => {\n return node[isVertical(tabBarPosition) ? 'offsetHeight' : 'offsetWidth'];\n }, [tabBarPosition]);\n const getScrollWH = useCallback((node) => {\n return node[isVertical(tabBarPosition) ? 'scrollHeight' : 'scrollWidth'];\n }, [tabBarPosition]);\n const getOffsetLT = useCallback((node) => {\n return node.getBoundingClientRect()[isVertical(tabBarPosition) ? 'top' : 'left'];\n }, [tabBarPosition]);\n const setOffset = useCallback((offset, callback) => {\n const nav = navRef.current;\n if (nav) {\n const target = Math.min(0, offset);\n if (offsetRef.current !== target) {\n offsetRef.current = target;\n const navOffset = {};\n const navStyle = nav.style;\n const transformSupported = isTransformSupported(navStyle);\n if (isVertical(tabBarPosition)) {\n if (transformSupported) {\n navOffset.value = `translate3d(0,${target}px,0)`;\n }\n else {\n navOffset.name = 'top';\n navOffset.value = `${target}px`;\n }\n }\n else if (transformSupported) {\n navOffset.value = `translate3d(${target}px,0,0)`;\n }\n else {\n navOffset.name = 'left';\n navOffset.value = `${target}px`;\n }\n if (transformSupported) {\n setTransform(navStyle, navOffset.value);\n }\n else if (navOffset.name) {\n navStyle[navOffset.name] = navOffset.value;\n }\n if (callback) {\n callback();\n }\n }\n }\n }, [offsetRef, navRef, tabBarPosition]);\n const setNextPrev = useCallback(() => {\n const navNode = navRef.current;\n const container = containerRef.current;\n const navWrap = navWrapRef.current;\n if (navNode && container && navWrap) {\n const navNodeWH = getScrollWH(navNode);\n const containerWH = getOffsetWH(container);\n const navWrapNodeWH = getOffsetWH(navWrap);\n let offset = offsetRef.current;\n // 当容器小于tab的时候使用最小值才可以防止回弹问题。\n const navNodeWHValue = Math.min(containerWH, navWrapNodeWH);\n const minOffset = navNodeWHValue - navNodeWH; // -165\n let $next = next;\n let $prev = prev;\n if (minOffset >= 0) {\n $next = false;\n setOffset(0);\n offset = 0;\n }\n else if (minOffset < offset) {\n $next = true;\n }\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 setOffset(realOffset);\n offset = realOffset;\n }\n if (offset < 0) {\n $prev = true;\n }\n else {\n $prev = false;\n }\n if (prev !== $prev) {\n setPrev($prev);\n }\n if (next !== $next) {\n setNext($next);\n }\n return {\n next: $next,\n prev: $prev,\n };\n }\n }, [next, prev, navRef, containerRef, navWrapRef, offsetRef, getScrollWH, getOffsetWH, setOffset]);\n const isNextPrevShown = useCallback((state) => {\n if (state) {\n return state.next || state.prev;\n }\n return next || prev;\n }, [next, prev]);\n const toPrev = useCallback((e) => {\n onPrevClick(e);\n const navWrapNode = navWrapRef.current;\n if (navWrapNode) {\n const navWrapNodeWH = getOffsetWH(navWrapNode);\n setOffset(offsetRef.current + navWrapNodeWH, setNextPrev);\n }\n }, [getOffsetWH, setOffset, navWrapRef, onPrevClick, setNextPrev]);\n const toNext = useCallback((e) => {\n onNextClick(e);\n const navWrapNode = navWrapRef.current;\n if (navWrapNode) {\n const navWrapNodeWH = getOffsetWH(navWrapNode);\n const offset = offsetRef.current;\n setOffset(offset - navWrapNodeWH, setNextPrev);\n }\n }, [getOffsetWH, setOffset, navWrapRef, onNextClick, setNextPrev]);\n const scrollToActiveTab = useCallback((e) => {\n const activeTab = activeTabRef.current;\n const navWrap = navWrapRef.current;\n if (e && e.target !== e.currentTarget || !activeTab || !navWrap) {\n return;\n }\n // when not scrollable or enter scrollable first time, don't emit scrolling\n const needToSroll = isNextPrevShown() && lastNextPrevShownRef.current;\n lastNextPrevShownRef.current = isNextPrevShown();\n if (!needToSroll) {\n return;\n }\n const activeTabWH = getScrollWH(activeTab);\n const navWrapNodeWH = getOffsetWH(navWrap);\n let offset = offsetRef.current;\n const wrapOffset = getOffsetLT(navWrap);\n const activeTabOffset = getOffsetLT(activeTab);\n if (wrapOffset > activeTabOffset) {\n offset += (wrapOffset - activeTabOffset);\n setOffset(offset, setNextPrev);\n }\n else if ((wrapOffset + navWrapNodeWH) < (activeTabOffset + activeTabWH)) {\n offset -= (activeTabOffset + activeTabWH) - (wrapOffset + navWrapNodeWH);\n setOffset(offset, setNextPrev);\n }\n }, [activeTabRef, navWrapRef, lastNextPrevShownRef, getScrollWH, getOffsetWH, getOffsetLT, setOffset, setNextPrev, isNextPrevShown]);\n const prevTransitionEnd = useCallback((e) => {\n if (e.propertyName !== 'opacity') {\n return;\n }\n const { current } = containerRef;\n if (current) {\n scrollToActiveTab({\n target: current,\n currentTarget: current,\n });\n }\n }, [scrollToActiveTab, containerRef]);\n const getScrollBarNode = (content) => {\n const showNextPrev = prev || next;\n const prevButton = (React.createElement(\"span\", { onClick: prev ? toPrev : undefined, unselectable: \"on\", className: classnames(`${prefixCls}-tab-prev`, {\n [`${prefixCls}-tab-btn-disabled`]: !prev,\n [`${prefixCls}-tab-arrow-show`]: showNextPrev,\n }), onTransitionEnd: prevTransitionEnd },\n React.createElement(\"span\", { className: `${prefixCls}-tab-prev-icon` })));\n const nextButton = (React.createElement(\"span\", { onClick: next ? toNext : undefined, unselectable: \"on\", className: classnames({\n [`${prefixCls}-tab-next`]: 1,\n [`${prefixCls}-tab-btn-disabled`]: !next,\n [`${prefixCls}-tab-arrow-show`]: showNextPrev,\n }) },\n React.createElement(\"span\", { className: `${prefixCls}-tab-next-icon` })));\n const navClassName = `${prefixCls}-nav`;\n const navClasses = classnames(navClassName, scrollAnimated ? `${navClassName}-animated` : `${navClassName}-no-animated`);\n return (React.createElement(\"div\", { className: classnames({\n [`${prefixCls}-nav-container`]: 1,\n [`${prefixCls}-nav-container-scrolling`]: showNextPrev,\n }), key: \"container\", ref: containerRef },\n prevButton,\n nextButton,\n React.createElement(\"div\", { className: `${prefixCls}-nav-wrap`, ref: navWrapRef },\n React.createElement(\"div\", { className: `${prefixCls}-nav-scroll` },\n React.createElement(\"div\", { className: navClasses, ref: navRef }, content)))));\n };\n useLayoutEffect(() => {\n const inkBarNode = inkBarRef.current;\n if (inkBarNode) {\n const inkBarNodeStyle = inkBarNode.style;\n const activeTab = activeTabRef.current;\n const rootNode = rootRef.current;\n if (activeTab && rootNode) {\n const wrapNode = navRef.current || rootNode;\n const transformSupported = isTransformSupported(inkBarNodeStyle);\n if (!isVertical(tabBarPosition)) {\n let left = getLeft(activeTab, wrapNode);\n let width = activeTab.offsetWidth;\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 }\n else if (inkBarStyle && inkBarStyle.width !== undefined) {\n width = parseFloat(inkBarStyle.width);\n if (width) {\n left += (activeTab.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 }\n else {\n inkBarNodeStyle.left = `${left}px`;\n inkBarNodeStyle.top = '';\n inkBarNodeStyle.bottom = '';\n inkBarNodeStyle.right = `${wrapNode.offsetWidth - left - width}px`;\n }\n }\n else {\n let top = getTop(activeTab, wrapNode);\n let height = activeTab.offsetHeight;\n if (inkBarStyle && inkBarStyle.height !== undefined) {\n height = parseFloat(inkBarStyle.height);\n if (height) {\n top += (activeTab.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 }\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.visibility = activeTab ? 'visible' : 'hidden';\n }\n });\n useEffect(() => {\n setOffset(0, setNextPrev);\n }, [tabBarPosition]);\n useLayoutEffect(() => {\n const currentNextPrev = {\n prev, next,\n };\n const nextPrev = setNextPrev();\n // wait next, prev show hide\n /* eslint react/no-did-update-set-state:0 */\n if (isNextPrevShown(currentNextPrev) !== isNextPrevShown(nextPrev)) {\n scrollToActiveTab();\n }\n else if (activeKey !== prevActiveKey) {\n setActiveKey(activeKey);\n // can not use props.activeKey\n scrollToActiveTab();\n }\n }, [setNextPrev, isNextPrevShown, prev, next, activeKey, prevActiveKey]);\n useEffect(() => {\n const debouncedResize = debounce(() => {\n setNextPrev();\n scrollToActiveTab();\n }, 200);\n resizeEvent.addEventListener('resize', debouncedResize);\n return () => {\n resizeEvent.removeEventListener('resize', debouncedResize);\n debouncedResize.cancel();\n };\n }, [setNextPrev, scrollToActiveTab, resizeEvent]);\n const inkBarNode = getInkBarNode();\n const tabs = getTabs();\n const groupNode = getGroupNode();\n const scrollbarNode = getScrollBarNode([inkBarNode, tabs]);\n return (React.createElement(\"div\", Object.assign({ role: \"tablist\", className: classnames(`${prefixCls}-bar`, { [`${prefixCls}-bar-with-groups`]: groupNode }, className), tabIndex: 0, ref: rootRef, onKeyDown: handleKeyDown, style: style }, getDataAttr(restProps)),\n React.createElement(\"div\", { className: `${prefixCls}-bar-inner` },\n groupNode,\n groupNode && React.createElement(\"div\", { className: `${prefixCls}-bar-divider` }),\n getContent(scrollbarNode))));\n};\nTabBar.displayName = 'TabBar';\nTabBar.defaultProps = {\n inkBarAnimated: true,\n scrollAnimated: true,\n};\nexport default TabBar;\n","import React, { forwardRef, useCallback } from 'react';\nimport noop from 'lodash/noop';\nconst TabBarInner = forwardRef(function TabBarInner(props, ref) {\n const { onTabClick = noop, tabKey, ...rest } = props;\n const handleClick = useCallback(() => onTabClick(tabKey), [onTabClick, tabKey]);\n return (React.createElement(\"div\", Object.assign({}, rest, { onClick: handleClick, ref: ref })));\n});\nTabBarInner.displayName = 'TabBarInner';\nexport default TabBarInner;\n","import React, { createElement, forwardRef, useContext, useLayoutEffect, useState, } from 'react';\nimport classnames from 'classnames';\nimport { getActiveIndex, getMarginStyle, getTransformByIndex, getTransformPropValue } from './utils';\nimport TabsContext from './TabsContext';\nconst TabContent = forwardRef(function TabContent(props, ref) {\n const { destroyInactiveTabPane, animated, animatedWithMargin, style } = props;\n const { prefixCls, totalPanelsMap, activeKey, tabBarPosition } = useContext(TabsContext);\n const [mergedStyle, setMergedStyle] = useState(() => animated ? ({\n ...style,\n display: 'none',\n }) : style);\n const classes = classnames(`${prefixCls}-content`, animated ? `${prefixCls}-content-animated` : `${prefixCls}-content-no-animated`);\n useLayoutEffect(() => {\n if (animated) {\n const activeIndex = getActiveIndex(totalPanelsMap, activeKey);\n if (activeIndex !== -1) {\n const animatedStyle = animatedWithMargin ?\n getMarginStyle(activeIndex, tabBarPosition) :\n getTransformPropValue(getTransformByIndex(activeIndex, tabBarPosition));\n setMergedStyle({\n ...style,\n ...animatedStyle,\n });\n }\n else {\n setMergedStyle({\n ...style,\n display: 'none',\n });\n }\n }\n else {\n setMergedStyle(style);\n }\n }, [animated, totalPanelsMap, activeKey, tabBarPosition, style]);\n const getTabPanes = () => {\n return [...totalPanelsMap.entries()].map(([key, { type, ...child }]) => createElement(type, {\n ...child,\n key,\n active: activeKey === key,\n destroyInactiveTabPane,\n rootPrefixCls: prefixCls,\n }));\n };\n return (React.createElement(\"div\", { className: classes, style: mergedStyle, ref: ref }, getTabPanes()));\n});\nTabContent.defaultProps = {\n animated: true,\n};\nTabContent.displayName = 'TabContent';\nexport default TabContent;\n","import { isValidElement } from 'react';\nconst TabGroup = function TabGroup() {\n return null;\n};\nTabGroup.displayName = 'TabGroup';\nTabGroup.__IS_TAB_GROUP = true;\nexport function isTabGroup(el) {\n return isValidElement(el) && el.type.__IS_TAB_GROUP;\n}\nexport default TabGroup;\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport { getDataAttr } from './utils';\nconst TabPane = function TabPane(props) {\n const { className, destroyInactiveTabPane, active, forceRender, rootPrefixCls, style, children, placeholder, ...restProps } = props;\n const [rendered, setRendered] = useState(active);\n const prefixCls = `${rootPrefixCls}-tabpane`;\n const cls = classnames(prefixCls, active ? `${prefixCls}-active` : `${prefixCls}-inactive`, className);\n useEffect(() => {\n if (!destroyInactiveTabPane && active) {\n setRendered(true);\n }\n }, [destroyInactiveTabPane, active]);\n return (React.createElement(\"div\", Object.assign({ style: style, role: \"tabpanel\", \"aria-hidden\": active ? 'false' : 'true', className: cls }, getDataAttr(restProps)), forceRender || (destroyInactiveTabPane ? active : rendered) ? children : placeholder));\n};\nTabPane.displayName = 'TabPane';\nTabPane.defaultProps = {\n overflowCount: 99,\n showCount: true,\n};\nexport default TabPane;\n","import React, { useCallback, useEffect, useState, } from 'react';\nimport PropTypes from 'prop-types';\nimport noop from 'lodash/noop';\nimport { getConfig, getCustomizable } from '../configure';\nimport { TabsPosition, TabsType } from './enum';\nimport TabPane from './TabPane';\nimport TabGroup from './TabGroup';\nimport TabsWithContext from './TabsWithContext';\nconst Tabs = function Tabs(props) {\n const { customizedCode, customizable = customizedCode ? getCustomizable('Tabs') : undefined, } = props;\n const $customizable = customizedCode ? customizable : false;\n const [loaded, setLoaded] = useState(!$customizable);\n const [customized, setCustomized] = useState();\n const loadCustomized = useCallback(async () => {\n if (customizedCode) {\n setLoaded(false);\n const customizedLoad = getConfig('customizedLoad');\n try {\n const remoteCustomized = await customizedLoad(customizedCode, 'Tabs');\n setCustomized({ panes: {}, ...remoteCustomized });\n }\n finally {\n setLoaded(true);\n }\n }\n }, [customizedCode]);\n useEffect(() => {\n if ($customizable) {\n loadCustomized();\n }\n }, [$customizable, loadCustomized]);\n return loaded ? (React.createElement(TabsWithContext, Object.assign({}, props, { customized: customized, setCustomized: setCustomized, customizable: $customizable }))) : null;\n};\nTabs.displayName = 'Tabs';\nTabs.propTypes = {\n destroyInactiveTabPane: PropTypes.bool,\n onChange: PropTypes.func,\n children: PropTypes.any,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n activeKey: PropTypes.string,\n defaultActiveKey: PropTypes.string,\n keyboard: PropTypes.bool,\n hideAdd: PropTypes.bool,\n tabPosition: PropTypes.oneOf([TabsPosition.top, TabsPosition.right, TabsPosition.bottom, TabsPosition.left]),\n type: PropTypes.oneOf([TabsType.card, TabsType.line, TabsType['editable-card']]),\n};\nTabs.defaultProps = {\n hideAdd: false,\n destroyInactiveTabPane: false,\n onChange: noop,\n keyboard: true,\n tabPosition: TabsPosition.top,\n type: TabsType.line,\n};\nTabs.TabPane = TabPane;\nTabs.TabGroup = TabGroup;\nexport default Tabs;\n","import { createContext } from 'react';\nimport noop from 'lodash/noop';\nconst TabsContext = createContext({\n changeActiveKey: noop,\n saveCustomized: noop,\n groupedPanelsMap: new Map(),\n currentPanelMap: new Map(),\n totalPanelsMap: new Map(),\n});\nexport default TabsContext;\n","import React, { useCallback, useEffect, useMemo, useState, } from 'react';\nimport classnames from 'classnames';\nimport ModalProvider from 'choerodon-ui/pro/lib/modal-provider';\nimport { TabsPosition, TabsType } from './enum';\nimport { getDataAttr, getDefaultActiveKey, getDefaultActiveKeyInGroup, getDefaultGroupKey, isVertical, normalizePanes } from './utils';\nimport { Size } from '../_util/enum';\nimport { getConfig, getPrefixCls } from '../configure';\nimport warning from '../_util/warning';\nimport TabBar from './TabBar';\nimport Icon from '../icon';\nimport TabContent from './TabContent';\nimport isFlexSupported from '../_util/isFlexSupported';\nimport TabsContext from './TabsContext';\nfunction isAnimated(animated) {\n return typeof animated === 'object';\n}\nconst TabsWithContext = function TabsWithContext(props) {\n const { tabPosition, className, destroyInactiveTabPane, style, size, type, tabBarStyle, inkBarStyle = getConfig('tabsInkBarStyle'), hideAdd, animated = true, tabBarGutter, onEdit, tabBarExtraContent, hideOnlyGroup, customizedCode, customizable, children, defaultActiveKey: propDefaultActiveKey, setCustomized, customized, prefixCls: customizePrefixCls, activeKey: propActiveKey, onChange, onTabClick, onPrevClick, onNextClick, keyboard, ...restProps } = props;\n const hasPropActiveKey = 'activeKey' in props;\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\n const saveCustomized = useCallback((newCustomized) => {\n if (customizable) {\n setCustomized(newCustomized);\n if (customizedCode) {\n const customizedSave = getConfig('customizedSave');\n customizedSave(customizedCode, newCustomized, 'Tabs');\n }\n }\n }, [customizable, customizedCode]);\n const [totalPanelsMap, groupedPanelsMap] = useMemo(() => normalizePanes(children, customized), [children, customized]);\n const defaultActiveKey = useMemo(() => {\n const option = {\n activeKey: propActiveKey,\n defaultActiveKey: propDefaultActiveKey,\n };\n return getDefaultActiveKey(totalPanelsMap, groupedPanelsMap, option);\n }, []);\n const actuallyDefaultActiveKey = useMemo(() => {\n if (customized) {\n const $defaultActiveKey = customized.defaultActiveKey;\n if ($defaultActiveKey !== undefined) {\n if (onChange && $defaultActiveKey !== defaultActiveKey) {\n onChange($defaultActiveKey);\n }\n return $defaultActiveKey;\n }\n }\n return defaultActiveKey;\n }, [defaultActiveKey]);\n const [activeKey, setActiveKey] = useState(actuallyDefaultActiveKey);\n const activeGroupKey = useMemo(() => {\n if (groupedPanelsMap.size) {\n if (activeKey) {\n for (const [groupKey, { panelsMap }] of groupedPanelsMap) {\n for (const [panelKey] of panelsMap) {\n if (panelKey === activeKey) {\n return groupKey;\n }\n }\n }\n }\n return getDefaultGroupKey(groupedPanelsMap);\n }\n }, [groupedPanelsMap, activeKey]);\n const currentGroup = activeGroupKey && groupedPanelsMap.get(activeGroupKey);\n const currentPanelMap = currentGroup ? currentGroup.panelsMap : totalPanelsMap;\n const changeActiveKey = useCallback((key, byGroup) => {\n if (activeKey !== key) {\n if (!byGroup && currentGroup) {\n currentGroup.lastActiveKey = key;\n }\n if (!hasPropActiveKey) {\n setActiveKey(key);\n }\n if (onChange) {\n onChange(key);\n }\n }\n }, [hasPropActiveKey, activeKey, onChange, currentGroup]);\n const value = {\n defaultActiveKey: propDefaultActiveKey,\n actuallyDefaultActiveKey,\n propActiveKey,\n prefixCls,\n keyboard,\n tabBarPosition: tabPosition,\n hideOnlyGroup,\n customizable,\n customized,\n saveCustomized,\n activeKey,\n activeGroupKey,\n changeActiveKey,\n groupedPanelsMap,\n currentPanelMap,\n totalPanelsMap,\n onTabClick,\n onPrevClick,\n onNextClick,\n children,\n };\n const inkBarAnimated = isAnimated(animated) ? animated.inkBar : animated;\n let tabPaneAnimated = isAnimated(animated) ? animated.tabPane : animated;\n // card tabs should not have animation\n if (type !== TabsType.line) {\n tabPaneAnimated = 'animated' in props ? tabPaneAnimated : false;\n }\n const isCard = type === TabsType.card || type === TabsType['editable-card'];\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.');\n const createNewTab = useCallback((e) => {\n if (onEdit) {\n onEdit(e, 'add');\n }\n }, [onEdit]);\n const removeTab = useCallback((targetKey, e) => {\n e.stopPropagation();\n if (!targetKey) {\n return;\n }\n if (onEdit) {\n onEdit(targetKey, 'remove');\n }\n }, [onEdit]);\n useEffect(() => {\n if (hasPropActiveKey) {\n if (propActiveKey !== activeKey) {\n setActiveKey(propActiveKey);\n }\n }\n else if (activeKey === undefined || !totalPanelsMap.has(activeKey)) {\n setActiveKey(getDefaultActiveKeyInGroup(currentPanelMap));\n }\n }, [hasPropActiveKey, propActiveKey, activeKey, totalPanelsMap, currentPanelMap]);\n const cls = classnames(prefixCls, `${prefixCls}-${tabPosition}`, `${prefixCls}-${type}`, isVertical(tabPosition) ? `${prefixCls}-vertical` : `${prefixCls}-horizontal`, {\n [`${prefixCls}-${size}`]: !!size,\n [`${prefixCls}-card`]: isCard,\n [`${prefixCls}-no-animation`]: !tabPaneAnimated,\n 'no-flex': !isFlexSupported(),\n }, className);\n const extraContent = !hideAdd && type === TabsType['editable-card'] ? (\n // Add new tab handler\n React.createElement(\"span\", { key: \"tabBarExtraContent\" },\n React.createElement(Icon, { type: \"add\", className: `${prefixCls}-new-tab`, onClick: createNewTab }),\n tabBarExtraContent)) : tabBarExtraContent;\n const tabBarProps = {\n inkBarAnimated,\n extraContent,\n style: tabBarStyle,\n tabBarGutter,\n type,\n onRemoveTab: removeTab,\n inkBarStyle,\n };\n const tabContentProps = {\n animatedWithMargin: true,\n animated: tabPaneAnimated,\n destroyInactiveTabPane,\n };\n const contents = [\n React.createElement(TabBar, Object.assign({ key: \"tabBar\" }, tabBarProps)),\n React.createElement(TabContent, Object.assign({ key: \"tabContent\" }, tabContentProps)),\n ];\n if (tabPosition === TabsPosition.bottom) {\n contents.reverse();\n }\n const tabs = (React.createElement(\"div\", Object.assign({ className: cls, style: style }, getDataAttr(restProps)), contents));\n return (React.createElement(TabsContext.Provider, { value: value }, customizable ? (React.createElement(ModalProvider, null, tabs)) : tabs));\n};\nTabsWithContext.displayName = 'TabsWithContext';\nexport default TabsWithContext;\n","import React, { cloneElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport merge from 'lodash/merge';\nimport DataSet from 'choerodon-ui/pro/lib/data-set/DataSet';\nimport Button from 'choerodon-ui/pro/lib/button';\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\nimport { ButtonColor, FuncType } from 'choerodon-ui/pro/lib/button/enum';\nimport TabGroups from './tab-groups';\nimport TabsContext from '../TabsContext';\nimport { getDefaultActiveKey, normalizePanes } from '../utils';\nfunction processPaneToData(pane, key, group) {\n const { tab, title, sort, showCount } = pane;\n return {\n key,\n tab,\n title,\n sort,\n showCount,\n group,\n };\n}\nfunction normalizePanesToData(pair) {\n const [totalPanelsMap, groupPanelMap] = pair;\n if (groupPanelMap.size > 0) {\n return [...groupPanelMap.entries()].reduce((data, [key, paneMap]) => {\n const { panelsMap } = paneMap;\n [...panelsMap.entries()].forEach(([paneKey, pane]) => {\n data.push(processPaneToData(pane, paneKey, key));\n });\n return data;\n }, []);\n }\n return [...totalPanelsMap.entries()].map(([paneKey, pane]) => processPaneToData(pane, paneKey));\n}\nconst CustomizationSettings = observer(function CustomizationSettings(props) {\n const { modal } = props;\n const { customized, saveCustomized, totalPanelsMap, groupedPanelsMap, defaultActiveKey, actuallyDefaultActiveKey, propActiveKey, children } = useContext(TabsContext);\n const oldCustomized = useMemo(() => customized ? merge({}, customized) : { panes: {} }, [customized]);\n const tempCustomized = useRef(oldCustomized);\n const [customizedPanes, setCustomizedPanes] = useState(() => [totalPanelsMap, groupedPanelsMap]);\n const [defaultKey, setDefaultKey] = useState(actuallyDefaultActiveKey);\n const panesDataSet = useMemo(() => new DataSet({\n data: normalizePanesToData(customizedPanes),\n paging: false,\n primaryKey: 'key',\n fields: [\n { name: 'group', group: true },\n ],\n events: {\n update({ record, name, value }) {\n const { current } = tempCustomized;\n const { key } = record;\n if (!current.panes[key]) {\n current.panes[key] = {};\n }\n current.panes[key][name] = value;\n },\n },\n }), [customizedPanes, tempCustomized]);\n const handleRestorePanes = useCallback((e) => {\n e.stopPropagation();\n const [newTotalPanelsMap, newGroupedPanelsMap] = normalizePanes(children);\n setCustomizedPanes([newTotalPanelsMap, newGroupedPanelsMap]);\n setDefaultKey(getDefaultActiveKey(newTotalPanelsMap, newGroupedPanelsMap, { activeKey: propActiveKey, defaultActiveKey }));\n tempCustomized.current = { panes: {} };\n }, [defaultActiveKey, propActiveKey, tempCustomized, children]);\n const handleDefaultKeyChange = useCallback((key) => {\n tempCustomized.current.defaultActiveKey = key;\n setDefaultKey(key);\n }, [tempCustomized]);\n const handleOk = useCallback(() => {\n saveCustomized(tempCustomized.current);\n if (modal) {\n modal.close();\n }\n }, [saveCustomized, tempCustomized, modal]);\n useEffect(() => {\n if (modal) {\n modal.update({\n footer: (okBtn, cancelBtn) => (React.createElement(React.Fragment, null,\n cloneElement(okBtn, { onClick: handleOk }),\n cancelBtn,\n React.createElement(Button, { funcType: FuncType.link, color: ButtonColor.primary, onClick: handleRestorePanes, style: { float: 'right' } }, $l('Tabs', 'restore_default')))),\n });\n }\n }, [modal]);\n return (React.createElement(TabGroups, { dataSet: panesDataSet, defaultKey: defaultKey, onDefaultKeyChange: handleDefaultKeyChange }));\n});\nCustomizationSettings.displayName = 'CustomizationSettings';\nexport default CustomizationSettings;\n","import CustomizationSettings from './CustomizationSettings';\nexport default CustomizationSettings;\n","import React, { useContext } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Draggable, Droppable } from 'react-beautiful-dnd';\nimport sortBy from 'lodash/sortBy';\nimport TabsContext from '../../TabsContext';\nimport Item from './Item';\nconst Group = observer(function Group(props) {\n const { header, records, value, nodeSuffix, defaultKey } = props;\n const { prefixCls } = useContext(TabsContext);\n return (React.createElement(React.Fragment, null,\n header && (React.createElement(\"div\", { className: `${prefixCls}-customization-group-header` }, header)),\n React.createElement(Droppable, { droppableId: value, key: \"group\" }, (droppableProvided) => (React.createElement(\"div\", Object.assign({ ref: droppableProvided.innerRef, className: `${prefixCls}-customization-group` }, (droppableProvided && droppableProvided.droppableProps)),\n sortBy(records, [r => r.get('sort')]).map((record, index, list) => (React.createElement(Draggable, { key: record.key, draggableId: String(record.key), index: index }, (provided, snapshot) => (React.createElement(Item, { key: record.key, record: record, suffix: nodeSuffix, index: index, records: list, provided: provided, snapshot: snapshot, defaultKey: defaultKey }))))),\n droppableProvided && droppableProvided.placeholder)))));\n});\nGroup.displayName = 'Group';\nexport default Group;\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport classNames from 'classnames';\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\nimport Icon from '../../../icon';\nimport TabsContext from '../../TabsContext';\nimport ItemTitle from './ItemTitle';\nconst Item = observer(function TreeNode(props) {\n const { prefixCls } = useContext(TabsContext);\n const selfPrefixCls = `${prefixCls}-customization-group-item`;\n const { suffix, record, index, records, provided, snapshot, defaultKey } = props;\n const sort = record.get('sort');\n const [isHover, setIsHover] = useState(false);\n const handleMouseEnter = useCallback(() => setIsHover(true), []);\n const handleMouseLeave = useCallback(() => setIsHover(false), []);\n const { isDragging } = snapshot;\n useEffect(() => {\n setIsHover(false);\n }, [sort]);\n function getIcon() {\n const iconProps = { ...provided.dragHandleProps, style: { cursor: 'move' } };\n return (React.createElement(Icon, Object.assign({ className: `${selfPrefixCls}-drag-icon`, type: \"baseline-drag_indicator\" }, iconProps)));\n }\n return (React.createElement(\"div\", Object.assign({ ref: provided.innerRef }, provided.draggableProps, { className: classNames({ [`${selfPrefixCls}-dragging`]: isDragging }) }),\n React.createElement(\"div\", { className: classNames(selfPrefixCls, { [`${selfPrefixCls}-hover`]: isHover }), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },\n React.createElement(\"div\", { className: `${selfPrefixCls}-content` },\n getIcon(),\n React.createElement(\"div\", { className: `${selfPrefixCls}-title` },\n React.createElement(\"span\", { className: `${selfPrefixCls}-title-text` },\n React.createElement(ItemTitle, { record: record, provided: provided }),\n defaultKey === record.get('key') && (React.createElement(\"span\", { className: `${selfPrefixCls}-title-default` }, $l('Tabs', 'default'))))),\n suffix(record, index, records)))));\n});\nItem.displayName = 'TreeNode';\nexport default Item;\n","import React, { useCallback, useContext } from 'react';\nimport { observer } from 'mobx-react';\nimport Button from 'choerodon-ui/pro/lib/button/Button';\nimport { FuncType } from 'choerodon-ui/pro/lib/button/enum';\nimport Dropdown from 'choerodon-ui/pro/lib/dropdown/Dropdown';\nimport { Placements } from 'choerodon-ui/pro/lib/dropdown/enum';\nimport { $l } from 'choerodon-ui/pro/lib/locale-context';\nimport Tooltip from 'choerodon-ui/pro/lib/tooltip/Tooltip';\nimport Menu from '../../../menu';\nimport { Size } from '../../../_util/enum';\nimport TabsContext from '../../TabsContext';\nimport Icon from '../../../icon';\nconst { Item, SubMenu } = Menu;\nconst ItemSuffix = observer(function ItemSuffix(props) {\n const { record, defaultKey, onDefaultKeyChange } = props;\n const { prefixCls } = useContext(TabsContext);\n const itemKey = record.get('key');\n const showCount = record.get('showCount');\n const handleMenuClick = useCallback((arg) => {\n switch (arg.key) {\n case 'set_default':\n onDefaultKeyChange(itemKey);\n break;\n case 'rename':\n record.setState('editing', true);\n break;\n case 'show_count_yes':\n record.set('showCount', true);\n break;\n case 'show_count_no':\n record.set('showCount', false);\n break;\n default:\n }\n }, [record, onDefaultKeyChange, itemKey]);\n const renderCheckOption = (bool) => {\n if (showCount === bool) {\n return React.createElement(Icon, { type: \"check\", style: { float: 'right' } });\n }\n };\n const getTreeNodesMenus = () => {\n const menus = [];\n if (itemKey !== defaultKey) {\n menus.push(React.createElement(Item, { key: \"set_default\" },\n React.createElement(\"span\", null, $l('Tabs', 'set_default')),\n React.createElement(Tooltip, { title: $l('Tabs', 'set_default_tip') },\n React.createElement(Icon, { type: \"help\", className: `${prefixCls}-tip` }))));\n }\n menus.push(React.createElement(Item, { key: \"rename\" }, $l('Tabs', 'rename')), React.createElement(SubMenu, { key: \"show_count\", title: $l('Tabs', 'show_count') },\n React.createElement(Item, { key: \"show_count_yes\" },\n React.createElement(\"span\", null, $l('Tabs', 'yes')),\n renderCheckOption(true)),\n React.createElement(Item, { key: \"show_count_no\" },\n React.createElement(\"span\", null, $l('Tabs', 'no')),\n renderCheckOption(false))));\n return (React.createElement(Menu, { prefixCls: `${prefixCls}-dropdown-menu`, onClick: handleMenuClick, mode: \"vertical\" }, menus));\n };\n const menu = getTreeNodesMenus();\n return menu ? (React.createElement(Dropdown, { overlay: menu, placement: Placements.bottomRight },\n React.createElement(Button, { funcType: FuncType.flat, size: Size.small, icon: \"more_horiz\", className: `${prefixCls}-customization-group-item-hover-button` }))) : null;\n});\nItemSuffix.displayName = 'ItemSuffix';\nexport default ItemSuffix;\n","import React, { isValidElement, useCallback } from 'react';\nimport { toJS } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport ObserverTextField from 'choerodon-ui/pro/lib/text-field/TextField';\nimport { getHeader } from '../../utils';\nconst ItemTitle = observer(function ItemTitle(props) {\n const { record, provided } = props;\n const editing = record.getState('editing');\n const handleEditBlur = useCallback(() => {\n record.setState('editing', false);\n }, []);\n const handleHeaderChange = useCallback((value) => {\n record.set('title', value);\n }, [record]);\n const title = record.get('title');\n const header = getHeader({ tab: record.get('tab'), title });\n return (React.createElement(React.Fragment, null, editing ? (React.createElement(ObserverTextField, { onBlur: handleEditBlur, value: isValidElement(header) ? title : header, onChange: handleHeaderChange, autoFocus: true })) : (React.createElement(\"span\", Object.assign({}, provided.dragHandleProps, { style: { cursor: 'move' } }), toJS(header)))));\n});\nItemTitle.displayName = 'ItemTitle';\nexport default ItemTitle;\n","import React, { useCallback, useContext } from 'react';\nimport { action } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport sortBy from 'lodash/sortBy';\nimport Group from './Group';\nimport ItemSuffix from './ItemSuffix';\nimport TabsContext from '../../TabsContext';\nconst TabGroups = observer((props) => {\n const { dataSet, defaultKey, onDefaultKeyChange } = props;\n const { groupedTreeRecords } = dataSet;\n const { prefixCls, groupedPanelsMap } = useContext(TabsContext);\n const handleDragItem = useCallback(action((srcIndex, destIndex, groupKey) => {\n const group = groupedTreeRecords.find(({ value = 'default' }) => value === groupKey);\n if (group) {\n const records = sortBy(group.records, [r => r.get('sort')]);\n const [removed] = records.splice(srcIndex, 1);\n records.splice(destIndex, 0, removed);\n records.forEach((r, index) => r.set('sort', index));\n }\n }), [dataSet, groupedTreeRecords]);\n const handleDragEnd = useCallback(({ destination, source: { droppableId: srcDroppableId, index: srcIndex } }) => {\n if (destination) {\n const { index: destIndex } = destination;\n if (srcIndex !== destIndex) {\n handleDragItem(srcIndex, destIndex, srcDroppableId);\n }\n }\n }, [handleDragItem]);\n const treeNodeSuffix = useCallback((record, index, records) => (React.createElement(ItemSuffix, { record: record, index: index, records: records, groups: groupedTreeRecords, defaultKey: defaultKey, onDefaultKeyChange: onDefaultKeyChange })), [groupedTreeRecords, defaultKey]);\n function getGroupHeader(groupKey) {\n const groupPaneMap = groupedPanelsMap.get(groupKey);\n if (groupPaneMap) {\n return groupPaneMap.group.tab;\n }\n }\n const groups = groupedTreeRecords.map(({ value = 'default', records }) => (React.createElement(DragDropContext, { key: String(value), onDragEnd: handleDragEnd },\n React.createElement(Group, { value: value, header: getGroupHeader(value), records: records, nodeSuffix: treeNodeSuffix, defaultKey: defaultKey }))));\n return (React.createElement(\"div\", { className: `${prefixCls}-customization-panel-content` }, groups));\n});\nTabGroups.displayName = 'TabGroups';\nexport default TabGroups;\n","export var TabsType;\n(function (TabsType) {\n TabsType[\"line\"] = \"line\";\n TabsType[\"card\"] = \"card\";\n TabsType[\"editable-card\"] = \"editable-card\";\n})(TabsType || (TabsType = {}));\nexport var TabsPosition;\n(function (TabsPosition) {\n TabsPosition[\"top\"] = \"top\";\n TabsPosition[\"bottom\"] = \"bottom\";\n TabsPosition[\"left\"] = \"left\";\n TabsPosition[\"right\"] = \"right\";\n})(TabsPosition || (TabsPosition = {}));\n","import Tabs, { TabsProps } from './Tabs';\nimport { TabPaneProps } from './TabPane';\nimport { TabGroupProps } from './TabGroup';\nexport { TabsProps, TabPaneProps, TabGroupProps, };\nexport default Tabs;\n","// extracted by mini-css-extract-plugin","import 'choerodon-ui/pro/lib/tooltip/style';\nimport 'choerodon-ui/pro/lib/modal-provider/style';\nimport '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../ripple/style';\nimport '../../badge/style';\nimport '../../menu/style';\n","import { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport isNil from 'lodash/isNil';\nimport { TabsPosition } from './enum';\nimport { isTabGroup } from './TabGroup';\nexport function toGroups(children) {\n const c = [];\n Children.forEach(children, child => {\n if (child) {\n if (isFragment(child)) {\n c.push(...toGroups(child.props.children));\n }\n else if (isTabGroup(child)) {\n c.push(child);\n }\n }\n });\n return c;\n}\nexport function toArray(children) {\n const c = [];\n Children.forEach(children, child => {\n if (child) {\n if (isFragment(child)) {\n c.push(...toArray(child.props.children));\n }\n else if (isValidElement(child)) {\n c.push(child);\n }\n }\n });\n return c;\n}\nexport function getDefaultActiveKeyInGroup(panelMap) {\n for (const [key, panel] of panelMap) {\n if (!panel.disabled) {\n return key;\n }\n }\n}\nexport function getDefaultActiveKey(totalPanelsMap, groupedPanelsMap, option) {\n const { activeKey, defaultActiveKey } = option;\n if (activeKey !== undefined) {\n return activeKey;\n }\n if (defaultActiveKey !== undefined) {\n return defaultActiveKey;\n }\n const { value } = groupedPanelsMap.values().next();\n if (value) {\n const { group: { defaultActiveKey: groupDefaultActiveKey } } = value;\n if (groupDefaultActiveKey !== undefined) {\n return groupDefaultActiveKey;\n }\n }\n return getDefaultActiveKeyInGroup(totalPanelsMap);\n}\nexport function getDefaultGroupKey(groupedPanelsMap) {\n for (const [key, { panelsMap }] of groupedPanelsMap) {\n for (const [, panel] of panelsMap) {\n if (!panel.disabled) {\n return key;\n }\n }\n }\n}\nexport function getActiveKeyByGroupKey(groupedPanelsMap, key) {\n const map = groupedPanelsMap.get(key);\n if (map) {\n const { group, panelsMap, lastActiveKey } = map;\n if (lastActiveKey) {\n return lastActiveKey;\n }\n if ('defaultActiveKey' in group) {\n return group.defaultActiveKey;\n }\n return getDefaultActiveKeyInGroup(panelsMap);\n }\n}\nexport function generateKey(key, index) {\n return String(isNil(key) ? index : key);\n}\nexport function getActiveIndex(map, activeKey) {\n return activeKey === undefined ? -1 : [...map.keys()].findIndex(key => key === activeKey);\n}\nexport function setTransform(style, v = '') {\n style.transform = v;\n style.webkitTransform = v;\n}\nexport function isTransformSupported(style) {\n return 'transform' in style || 'webkitTransform' in style;\n}\nexport function setTransition(style, v = '') {\n style.transition = v;\n style.webkitTransition = v;\n}\nexport function getTransformPropValue(v) {\n return {\n transform: v,\n WebkitTransform: v,\n };\n}\nexport function isVertical(tabBarPosition) {\n return tabBarPosition === TabsPosition.left || tabBarPosition === TabsPosition.right;\n}\nexport function getTransformByIndex(index, tabBarPosition) {\n const translate = isVertical(tabBarPosition) ? 'translateY' : 'translateX';\n return `${translate}(${-index * 100}%) translateZ(0)`;\n}\nexport function getMarginStyle(index, tabBarPosition) {\n const marginDirection = isVertical(tabBarPosition) ? 'marginTop' : 'marginLeft';\n return {\n [marginDirection]: `${-index * 100}%`,\n };\n}\nexport function getStyle(el, property) {\n return +getComputedStyle(el).getPropertyValue(property).replace('px', '');\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}\nexport function getDataAttr(props) {\n return Object.keys(props).reduce((prev, key) => {\n if (key === 'role' || key.startsWith('aria-') || key.startsWith('data-')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}\nfunction toNum(style, property) {\n return +style.getPropertyValue(property).replace('px', '');\n}\nfunction getTypeValue(start, current, end, tabNode, wrapperNode) {\n let total = getStyle(wrapperNode, `padding-${start}`);\n const { parentNode } = tabNode;\n if (parentNode) {\n [...parentNode.childNodes].some((node) => {\n if (node !== tabNode) {\n // 此处对代码进行了修改 取自rc-tabs@9.4.2 这版本进行了计算方式的调整,避免了在类似modal等有动画的内容中使用的时候,计算出现错误的问题,因为在动画过程中的计算,会有一次Height width为0的情况\n // 在 9.4.2版本中 因为前几个版本的修改 refactor: rm mixin and react-create-class\n // 对dom结构进行了调整 bar不与item在一个父元素中,因此有如下代码,在c7n中暂时不进行dom结构调整\n if (node.className.includes('ink-bar')) {\n return false;\n }\n const style = getComputedStyle(node);\n total += toNum(style, `margin-${start}`);\n total += toNum(style, `margin-${end}`);\n total += toNum(style, current);\n if (style.boxSizing === 'content-box') {\n total += toNum(style, `border-${start}-width`) + toNum(style, `padding-${start}`) +\n toNum(style, `border-${end}-width`) + toNum(style, `padding-${end}`);\n }\n return false;\n }\n return true;\n });\n }\n return total;\n}\nexport function getLeft(tabNode, wrapperNode) {\n return getTypeValue('left', 'width', 'right', tabNode, wrapperNode);\n}\nexport function getTop(tabNode, wrapperNode) {\n return getTypeValue('top', 'height', 'bottom', tabNode, wrapperNode);\n}\nexport function getHeader(props) {\n const { tab, title } = props;\n if (typeof tab === 'function') {\n return tab(title);\n }\n if (title !== undefined) {\n return title;\n }\n if (tab !== undefined) {\n return tab;\n }\n}\nexport function normalizePanes(children, customized) {\n const groups = toGroups(children);\n const groupedPanels = new Map();\n const panelList = [];\n const panes = customized && customized.panes;\n const getCustomizedPane = (key) => {\n if (panes) {\n return panes[key];\n }\n };\n const sorter = (item1, item2) => {\n const { sort = 0 } = item1[1];\n const { sort: sort2 = 0 } = item2[1];\n return sort - sort2;\n };\n if (groups.length) {\n let index = 0;\n groups.forEach((group, i) => {\n const groupPanelList = [];\n toArray(group.props.children).forEach((child, j) => {\n const panelKey = generateKey(child.key, index);\n index += 1;\n groupPanelList.push([panelKey, { type: child.type, sort: j, ...child.props, ...getCustomizedPane(panelKey) }]);\n });\n groupPanelList.sort(sorter);\n panelList.push(...groupPanelList);\n const groupKey = generateKey(group.key, i);\n groupedPanels.set(groupKey, {\n group: { ...group.props },\n panelsMap: new Map(groupPanelList),\n });\n });\n }\n else {\n toArray(children).sort().forEach((child, index) => {\n const key = generateKey(child.key, index);\n panelList.push([key, { type: child.type, sort: index, ...child.props, ...getCustomizedPane(key) }]);\n });\n panelList.sort(sorter);\n }\n return [new Map(panelList), groupedPanels];\n}\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { getPrefixCls } from '../configure';\nexport default class CheckableTag extends Component {\n constructor() {\n super(...arguments);\n this.handleClick = () => {\n const { checked, onChange } = this.props;\n if (onChange) {\n onChange(!checked);\n }\n };\n }\n render() {\n const { prefixCls: customizePrefixCls, className, checked, ...restProps } = this.props;\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-checkable`]: true,\n [`${prefixCls}-checkable-checked`]: checked,\n }, className);\n delete restProps.onChange; // TypeScript cannot check delete now.\n return React.createElement(\"div\", Object.assign({}, restProps, { className: cls, onClick: this.handleClick }));\n }\n}\nCheckableTag.displayName = 'CheckableTag';\n","import React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport Icon from '../icon';\nimport CheckableTag from './CheckableTag';\nimport Animate from '../animate';\nimport { getPrefixCls } from '../configure';\nexport { CheckableTagProps } from './CheckableTag';\nexport default class Tag extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n closing: false,\n closed: false,\n };\n this.close = e => {\n const { onClose } = this.props;\n if (onClose) {\n onClose(e);\n }\n if (e.defaultPrevented) {\n return;\n }\n const dom = findDOMNode(this);\n dom.style.width = `${dom.getBoundingClientRect().width}px`;\n // It's Magic Code, don't know why\n dom.style.width = `${dom.getBoundingClientRect().width}px`;\n this.setState({\n closing: true,\n });\n };\n this.animationEnd = (_, existed) => {\n const { closed } = this.state;\n if (!existed && !closed) {\n this.setState({\n closed: true,\n closing: false,\n });\n const { afterClose } = this.props;\n if (afterClose) {\n afterClose();\n }\n }\n };\n }\n isPresetColor(color) {\n if (!color) {\n return false;\n }\n return /^(pink|red|yellow|orange|cyan|green|blue|purple|geekblue|magenta|volcano|gold|lime|gray)(-inverse)?$/.test(color);\n }\n render() {\n const { prefixCls: customizePrefixCls, closable, color, className, children, style, ...otherProps } = this.props;\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n const { closing, closed } = this.state;\n const closeIcon = closable ? React.createElement(Icon, { type: \"close\", onClick: this.close }) : '';\n const isPresetColor = this.isPresetColor(color);\n const classString = classNames(prefixCls, {\n [`${prefixCls}-${color}`]: isPresetColor,\n [`${prefixCls}-has-color`]: color && !isPresetColor,\n [`${prefixCls}-close`]: closing,\n }, className);\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(otherProps, ['onClose', 'afterClose']);\n const tagStyle = {\n ...style,\n };\n if (color && !isPresetColor) {\n tagStyle.backgroundColor = color;\n }\n const tag = closed ? null : (React.createElement(\"div\", Object.assign({ hidden: closing }, divProps, { className: classString, style: tagStyle }),\n children,\n closeIcon));\n return (React.createElement(Animate, { component: \"\", hiddenProp: \"hidden\", transitionName: `${prefixCls}-zoom`, transitionAppear: true, onEnd: this.animationEnd }, tag));\n }\n}\nTag.displayName = 'Tag';\nTag.CheckableTag = CheckableTag;\nTag.defaultProps = {\n closable: false,\n};\n","const locale = {\n placeholder: 'Select time',\n};\nexport default locale;\n","import React, { cloneElement, Component, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport getPlacements, { AdjustOverflow, PlacementsConfig } from './placements';\nimport RcTooltip from '../rc-components/tooltip';\nimport { getPrefixCls } from '../configure';\nimport { getTooltipTheme } from '../_util/TooltipUtils';\nexport { AdjustOverflow, PlacementsConfig };\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omited = { ...obj };\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omited[key];\n }\n });\n return { picked, omited };\n};\nexport default class Tooltip extends Component {\n constructor(props) {\n super(props);\n this.onVisibleChange = (visible) => {\n const { onVisibleChange } = this.props;\n if (!('visible' in this.props)) {\n this.setState({ visible: this.isNoTitle() ? false : visible });\n }\n if (onVisibleChange && !this.isNoTitle()) {\n onVisibleChange(visible);\n }\n };\n // 动态设置动画点\n this.onPopupAlign = (domNode, align) => {\n const placements = this.getPlacements();\n // 当前返回的位置\n const placement = Object.keys(placements).filter(key => placements[key].points[0] === align.points[0] &&\n placements[key].points[1] === align.points[1])[0];\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n const rect = domNode.getBoundingClientRect();\n const transformOrigin = {\n top: '50%',\n left: '50%',\n };\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = `${rect.height - align.offset[1]}px`;\n }\n else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = `${-align.offset[1]}px`;\n }\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = `${rect.width - align.offset[0]}px`;\n }\n else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = `${-align.offset[0]}px`;\n }\n domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\n };\n this.saveTooltip = (node) => {\n this.tooltip = node;\n };\n this.state = {\n visible: !!props.visible || !!props.defaultVisible,\n };\n }\n componentWillReceiveProps(nextProps) {\n if ('visible' in nextProps) {\n this.setState({ visible: nextProps.visible });\n }\n }\n getPopupDomNode() {\n return this.tooltip.getPopupDomNode();\n }\n getPlacements() {\n const { builtinPlacements, arrowPointAtCenter, autoAdjustOverflow } = this.props;\n return (builtinPlacements ||\n getPlacements({\n arrowPointAtCenter,\n verticalArrowShift: 8,\n autoAdjustOverflow,\n }));\n }\n isHoverTrigger() {\n const { trigger } = this.props;\n if (!trigger || trigger === 'hover') {\n return true;\n }\n if (Array.isArray(trigger)) {\n return trigger.indexOf('hover') >= 0;\n }\n return false;\n }\n // Fix Tooltip won't hide at disabled button\n // mouse events don't trigger at disabled button in Chrome\n // https://github.com/react-component/tooltip/issues/18\n getDisabledCompatibleChildren(element) {\n const elementType = element.type;\n if ((elementType.__PRO_SWITCH ||\n elementType.__PRO_CHECKBOX ||\n elementType.__PRO_RADIO ||\n elementType === 'button') && element.props.disabled && this.isHoverTrigger()) {\n // Pick some layout related style properties up to span\n const { picked, omited } = splitObject(element.props.style, [\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'float',\n 'display',\n 'zIndex',\n ]);\n const spanStyle = {\n display: 'inline-block',\n ...picked,\n cursor: 'not-allowed',\n };\n const buttonStyle = {\n ...omited,\n pointerEvents: 'none',\n };\n const child = cloneElement(element, {\n style: buttonStyle,\n className: null,\n });\n return (React.createElement(\"span\", { style: spanStyle, className: element.props.className }, child));\n }\n return element;\n }\n isNoTitle() {\n const { title, overlay } = this.props;\n return !title && !overlay; // overlay for old version compatibility\n }\n render() {\n const { props, state } = this;\n const { prefixCls: customizePrefixCls, title, overlay, openClassName, getPopupContainer, getTooltipContainer, theme = getTooltipTheme(), } = props;\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const children = props.children;\n let visible = state.visible;\n // Hide tooltip when there is no title\n if (!('visible' in props) && this.isNoTitle()) {\n visible = false;\n }\n const child = this.getDisabledCompatibleChildren(isValidElement(children) ? children : React.createElement(\"span\", null, children));\n const childProps = child.props;\n const childCls = classNames(childProps.className, {\n [openClassName || `${prefixCls}-open`]: true,\n });\n return (React.createElement(RcTooltip, Object.assign({}, this.props, { prefixCls: prefixCls, getTooltipContainer: getPopupContainer || getTooltipContainer, ref: this.saveTooltip, builtinPlacements: this.getPlacements(), overlay: overlay || title || '', visible: visible, onVisibleChange: this.onVisibleChange, onPopupAlign: this.onPopupAlign, theme: theme }), visible ? cloneElement(child, { className: childCls }) : child));\n }\n}\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big-fast',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true,\n};\n","import rcPlacements from '../rc-components/tooltip/placements';\nconst autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1,\n};\nconst autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0,\n};\nconst targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return {\n ...autoAdjustOverflowDisabled,\n ...autoAdjustOverflow,\n };\n}\nexport default function getPlacements(config = {}) {\n const { arrowWidth = 5, horizontalArrowShift = 16, verticalArrowShift = 12, autoAdjustOverflow = true } = config;\n const placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0],\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0],\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4],\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4],\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4],\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)],\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4],\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)],\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4],\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth],\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4],\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth],\n },\n };\n Object.keys(placementMap).forEach(key => {\n placementMap[key] = config.arrowPointAtCenter ? {\n ...placementMap[key],\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset,\n } : {\n ...rcPlacements[key],\n overflow: getOverflowOptions(autoAdjustOverflow),\n };\n });\n return placementMap;\n}\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\nimport debounce from 'lodash/debounce';\nimport Icon from '../icon';\nimport { conductExpandParent } from '../rc-components/tree/util';\nimport { convertDataToEntities, convertTreeToData } from '../rc-components/tree/utils/treeUtil';\nimport { getPrefixCls } from '../configure';\nimport Tree from './index';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n const { isLeaf, expanded, prefixCls } = props;\n const prefixCl = getPrefixCls('tree', prefixCls);\n if (isLeaf) {\n return React.createElement(Icon, { type: \"insert_drive_file\", className: `${prefixCl}-switcher-line-icon` });\n }\n return expanded ? React.createElement(Icon, { type: \"baseline-file_copy\", className: `${prefixCl}-switcher-line-icon` }) : React.createElement(Icon, { type: \"library_books\", className: `${prefixCl}-switcher-line-icon` });\n}\nfunction getTreeData({ treeData, children }) {\n return treeData || convertTreeToData(children);\n}\nclass DirectoryTree extends React.Component {\n constructor(props) {\n super(props);\n this.onExpand = (expandedKeys, info) => {\n const { onExpand } = this.props;\n this.setUncontrolledState({ expandedKeys });\n // Call origin function\n if (onExpand) {\n return onExpand(expandedKeys, info);\n }\n return undefined;\n };\n this.onClick = (event, node) => {\n const { onClick, expandAction } = this.props;\n // Expand the tree\n if (expandAction === 'click') {\n this.onDebounceExpand(event, node);\n }\n if (onClick) {\n onClick(event, node);\n }\n };\n this.onDoubleClick = (event, node) => {\n const { onDoubleClick, expandAction } = this.props;\n // Expand the tree\n if (expandAction === 'doubleClick') {\n this.onDebounceExpand(event, node);\n }\n if (onDoubleClick) {\n onDoubleClick(event, node);\n }\n };\n this.onSelect = (keys, event) => {\n const { onSelect, multiple } = this.props;\n const { expandedKeys = [] } = this.state;\n const { node, nativeEvent } = event;\n const { key = '' } = node;\n const treeData = getTreeData(this.props);\n const newState = {};\n // We need wrap this event since some value is not same\n const newEvent = {\n ...event,\n selected: true,\n };\n // Windows / Mac single pick\n const ctrlPick = nativeEvent.ctrlKey || nativeEvent.metaKey;\n const shiftPick = nativeEvent.shiftKey;\n // Generate new selected keys\n let newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n this.lastSelectedKey = key;\n this.cachedSelectedKeys = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([\n ...(this.cachedSelectedKeys || []),\n ...calcRangeKeys(treeData, expandedKeys, key, this.lastSelectedKey),\n ]));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n else {\n // Single click\n newSelectedKeys = [key];\n this.lastSelectedKey = key;\n this.cachedSelectedKeys = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n newState.selectedKeys = newSelectedKeys;\n if (onSelect) {\n onSelect(newSelectedKeys, newEvent);\n }\n this.setUncontrolledState(newState);\n };\n this.setTreeRef = (node) => {\n this.tree = node;\n };\n this.expandFolderNode = (event, node) => {\n const { isLeaf } = node;\n if (isLeaf || event.shiftKey || event.metaKey || event.ctrlKey) {\n return;\n }\n // Get internal rc-tree\n const internalTree = this.tree.tree;\n // Call internal rc-tree expand function\n // https://github.com/C7n-design/C7n-design/issues/12567\n internalTree.onNodeExpand(event, node);\n };\n this.setUncontrolledState = (state) => {\n const newState = omit(state, Object.keys(this.props));\n if (Object.keys(newState).length) {\n this.setState(newState);\n }\n };\n this.renderDirectoryTree = () => {\n const { className, ...props } = this.props;\n const { expandedKeys, selectedKeys } = this.state;\n const prefixCls = this.getPrefixCls();\n const connectClassName = classNames(`${prefixCls}-directory`, className, {\n [`${prefixCls}-directory-rtl`]: true,\n });\n return (React.createElement(Tree, Object.assign({ icon: getIcon, ref: this.setTreeRef, blockNode: true }, props, { prefixCls: prefixCls, className: connectClassName, expandedKeys: expandedKeys, selectedKeys: selectedKeys, onSelect: this.onSelect, onClick: this.onClick, onDoubleClick: this.onDoubleClick, onExpand: this.onExpand })));\n };\n const { defaultExpandAll, defaultExpandParent, expandedKeys, defaultExpandedKeys } = props;\n const { keyEntities } = convertDataToEntities(getTreeData(props));\n // Selected keys\n this.state = {\n selectedKeys: props.selectedKeys || props.defaultSelectedKeys || [],\n };\n // Expanded keys\n if (defaultExpandAll) {\n this.state.expandedKeys = Object.keys(keyEntities);\n }\n else if (defaultExpandParent) {\n this.state.expandedKeys = conductExpandParent(expandedKeys || defaultExpandedKeys || [], keyEntities);\n }\n else {\n this.state.expandedKeys = expandedKeys || defaultExpandedKeys;\n }\n this.onDebounceExpand = debounce(this.expandFolderNode, 200, {\n leading: true,\n });\n }\n static getDerivedStateFromProps(nextProps) {\n const newState = {};\n if ('expandedKeys' in nextProps) {\n newState.expandedKeys = nextProps.expandedKeys;\n }\n if ('selectedKeys' in nextProps) {\n newState.selectedKeys = nextProps.selectedKeys;\n }\n return newState;\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('tree', prefixCls);\n }\n render() {\n return this.renderDirectoryTree();\n }\n}\nDirectoryTree.defaultProps = {\n showIcon: true,\n expandAction: 'click',\n};\nexport default DirectoryTree;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport DirectoryTree from './DirectoryTree';\nimport animation from '../_util/openAnimation';\nimport RcTree, { TreeNode } from '../rc-components/tree';\nimport { TreeNodeProps } from '../rc-components/tree/TreeNode';\nimport Icon from '../icon';\nimport Progress from '../progress';\nimport { ProgressType } from '../progress/enum';\nimport { Size } from '../_util/enum';\nimport { getPrefixCls } from '../configure';\nimport { DataNode, EventDataNode } from '../rc-components/tree/interface';\nimport { isValidElement, cloneElement } from '../_util/reactNode';\nexport { TreeNode };\nexport { EventDataNode, DataNode, TreeNodeProps };\nexport { ExpandAction as DirectoryTreeExpandAction, DirectoryTreeProps } from './DirectoryTree';\nexport default class Tree extends Component {\n constructor() {\n super(...arguments);\n this.renderSwitcherIcon = ({ isLeaf, loading }) => {\n const { showLine, switcherIcon } = this.props;\n const prefixCls = this.getPrefixCls();\n if (loading) {\n return (React.createElement(Progress, { type: ProgressType.loading, className: `${prefixCls}-switcher-loading-icon`, size: Size.small }));\n }\n const switcherCls = `${prefixCls}-switcher-icon`;\n let showLeafIcon;\n if (showLine && typeof showLine === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (showLine) {\n if (typeof showLine === 'object' && !showLeafIcon) {\n return React.createElement(\"span\", { className: `${prefixCls}-switcher-leaf-line` });\n }\n return React.createElement(Icon, { type: \"note\", className: `${prefixCls}-switcher-line-icon` });\n }\n return null;\n }\n if (isValidElement(switcherIcon)) {\n const switcherOriginCls = switcherIcon.props.className || '';\n return cloneElement(switcherIcon, {\n className: [switcherOriginCls, switcherCls],\n });\n }\n return React.createElement(Icon, { type: \"arrow_drop_down\", className: switcherCls });\n };\n this.setTreeRef = (node) => {\n this.tree = node;\n };\n }\n getPrefixCls() {\n const { prefixCls } = this.props;\n return getPrefixCls('tree', prefixCls);\n }\n onKeyDown(e) {\n this.tree.onKeyDown(e);\n return e.isDefaultPrevented();\n }\n render() {\n const props = this.props;\n const { className, showIcon, showLine, children, checkable } = props;\n const prefixCls = this.getPrefixCls();\n const newProps = {\n ...props,\n showLine: Boolean(showLine),\n };\n return (React.createElement(RcTree, Object.assign({ itemHeight: 20, ref: this.setTreeRef }, newProps, { className: classNames(!showIcon && `${prefixCls}-icon-hide`, className), checkable: checkable ? React.createElement(\"span\", { className: `${prefixCls}-checkbox-inner` }) : 0, switcherIcon: this.renderSwitcherIcon, prefixCls: prefixCls }), children));\n }\n}\nTree.displayName = 'Tree';\nTree.TreeNode = TreeNode;\nTree.DirectoryTree = DirectoryTree;\nTree.defaultProps = {\n checkable: false,\n showIcon: false,\n openAnimation: animation,\n};\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n// style dependencies\nimport '../../checkbox/style';\nimport '../../pagination/style';\n","var Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n const { key, children } = dataNode;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(treeData, expandedKeys, startKey, endKey) {\n const keys = [];\n let record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, (key) => {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === Record.None) {\n record = Record.Start;\n }\n else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n }\n else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n if (expandedKeys.indexOf(key) === -1) {\n return false;\n }\n return true;\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n const restKeys = [...keys];\n const nodes = [];\n traverseNodesKey(treeData, (key, node) => {\n const index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\n}\n","var Popup_1;\nimport { __decorate } from \"tslib\";\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport omit from 'lodash/omit';\nimport shallowEqual from 'lodash/isEqual';\nimport noop from 'lodash/noop';\nimport isElement from 'lodash/isElement';\nimport ViewComponent from 'choerodon-ui/pro/lib/core/ViewComponent';\nimport autobind from 'choerodon-ui/pro/lib/_util/autobind';\nimport { findFocusableElements } from 'choerodon-ui/pro/lib/_util/focusable';\nimport { getDocument } from 'choerodon-ui/pro/lib/_util/DocumentUtils';\nimport Align from '../align';\nimport { getProPrefixCls } from '../configure';\nimport Animate from '../animate';\nimport PopupInner from './PopupInner';\n/**\n * 记录ID生成器\n */\nconst PopupKeyGen = (function* (start) {\n while (true) {\n yield `popup-key-${start++}`;\n }\n})(1);\nconst childrenProps = { hidden: 'hidden' };\nfunction newPopupContainer() {\n const doc = getDocument(window);\n const popupContainer = doc.createElement('div');\n popupContainer.className = getProPrefixCls('popup-container');\n return popupContainer;\n}\nlet Popup = Popup_1 = class Popup extends ViewComponent {\n constructor() {\n super(...arguments);\n this.contentRendered = false;\n this.popupKey = PopupKeyGen.next().value;\n this.saveRef = align => (this.align = align);\n }\n getOmitPropsKeys() {\n return super.getOmitPropsKeys().concat([\n 'align',\n 'transitionName',\n 'getRootDomNode',\n 'getPopupContainer',\n 'getClassNameFromAlign',\n 'getStyleFromAlign',\n 'onAlign',\n 'onAnimateAppear',\n 'onAnimateEnter',\n 'onAnimateLeave',\n 'onAnimateEnd',\n 'getFocusableElements',\n ]);\n }\n componentWillUnmount() {\n const { popupContainer } = this;\n if (popupContainer && popupContainer !== Popup_1.popupContainer && popupContainer.parentNode) {\n popupContainer.parentNode.removeChild(popupContainer);\n }\n }\n componentDidUpdate() {\n this.findFocusableElements();\n }\n componentDidMount() {\n super.componentDidMount();\n this.findFocusableElements();\n }\n findFocusableElements() {\n const { element } = this;\n const { getFocusableElements } = this.props;\n if (element && getFocusableElements) {\n const elements = findFocusableElements(element);\n getFocusableElements(elements && elements.filter(item => item.tabIndex !== -1).sort((e1, e2) => e1.tabIndex - e2.tabIndex));\n }\n }\n renderInner(innerRef) {\n const { children, getClassNameFromAlign = noop, align } = this.props;\n const className = this.getMergedClassNames(this.currentAlignClassName ||\n getClassNameFromAlign(align));\n return (React.createElement(PopupInner, Object.assign({}, omit(this.getMergedProps(), ['ref', 'className']), { className: className, innerRef: innerRef }), children));\n }\n render() {\n const { hidden, align, transitionName, getRootDomNode, onAnimateAppear = noop, onAnimateEnter = noop, onAnimateLeave = noop, onAnimateEnd = noop, } = this.props;\n if (!hidden) {\n this.contentRendered = true;\n }\n const container = this.getContainer();\n return container && this.contentRendered ? createPortal(React.createElement(Animate, { component: \"\", exclusive: true, transitionAppear: true, transitionName: transitionName, hiddenProp: \"hidden\", onAppear: onAnimateAppear, onEnter: onAnimateEnter, onLeave: onAnimateLeave, onEnd: onAnimateEnd },\n React.createElement(Align, { ref: this.saveRef, childrenRef: this.elementReference, key: \"align\", childrenProps: childrenProps, align: align, onAlign: this.onAlign, target: getRootDomNode, hidden: hidden, monitorWindowResize: true }, this.renderInner)), container, this.popupKey) : null;\n }\n getContainer() {\n if (typeof window === 'undefined') {\n return undefined;\n }\n const { getPopupContainer, getRootDomNode = noop } = this.props;\n const globalContainer = Popup_1.popupContainer;\n if (getPopupContainer) {\n const container = this.popupContainer;\n if (container) {\n return container;\n }\n }\n else if (globalContainer) {\n return globalContainer;\n }\n if (getPopupContainer) {\n const mountNode = getPopupContainer(getRootDomNode());\n const popupContainer = newPopupContainer();\n const root = window.document.body;\n if (mountNode === root) {\n if (globalContainer) {\n this.popupContainer = globalContainer;\n return globalContainer;\n }\n Popup_1.popupContainer = popupContainer;\n }\n (isElement(mountNode) ? mountNode : root).appendChild(popupContainer);\n this.popupContainer = popupContainer;\n return popupContainer;\n }\n // eslint-disable-next-line no-use-before-define\n return getGlobalPopupContainer();\n }\n onAlign(source, align, target, translate) {\n const { getClassNameFromAlign = noop, getStyleFromAlign = noop, onAlign = noop } = this.props;\n const currentAlignClassName = getClassNameFromAlign(align);\n const differentTarget = target !== this.target;\n if (differentTarget || this.currentAlignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n source.className = this.getMergedClassNames(currentAlignClassName);\n }\n const currentAlignStyle = getStyleFromAlign(target, align);\n if (differentTarget || !shallowEqual(this.currentAlignStyle, currentAlignStyle)) {\n this.currentAlignStyle = currentAlignStyle;\n Object.assign(source.style, currentAlignStyle);\n }\n onAlign(source, align, target, translate);\n this.target = source;\n }\n forceAlign() {\n if (this.align) {\n this.align.forceAlign();\n }\n }\n};\nPopup.displayName = 'Popup';\nPopup.propTypes = {\n align: PropTypes.object,\n onAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n getPopupContainer: PropTypes.func,\n transitionName: PropTypes.string,\n onAnimateAppear: PropTypes.func,\n onAnimateEnter: PropTypes.func,\n onAnimateLeave: PropTypes.func,\n onAnimateEnd: PropTypes.func,\n getStyleFromAlign: PropTypes.func,\n getClassNameFromAlign: PropTypes.func,\n ...ViewComponent.propTypes,\n};\nPopup.defaultProps = {\n suffixCls: 'popup',\n transitionName: 'zoom',\n};\n__decorate([\n autobind\n], Popup.prototype, \"renderInner\", null);\n__decorate([\n autobind\n], Popup.prototype, \"onAlign\", null);\nPopup = Popup_1 = __decorate([\n observer\n], Popup);\nexport default Popup;\nexport function getGlobalPopupContainer() {\n if (Popup.popupContainer) {\n return Popup.popupContainer;\n }\n const popupContainer = newPopupContainer();\n const root = getDocument(window).body;\n root.appendChild(popupContainer);\n Popup.popupContainer = popupContainer;\n return popupContainer;\n}\n","import React from 'react';\nconst PopupInner = ({ innerRef, ...props }) => (React.createElement(\"div\", Object.assign({}, props, { ref: innerRef })));\nexport default PopupInner;\n","import { __decorate } from \"tslib\";\nimport React, { Children, Component, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport { isFragment } from 'react-is';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { action as mobxAction, observable, runInAction } from 'mobx';\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\nimport noop from 'lodash/noop';\nimport isEqual from 'lodash/isEqual';\nimport autobind from 'choerodon-ui/pro/lib/_util/autobind';\nimport focusable, { findFocusableParent } from 'choerodon-ui/pro/lib/_util/focusable';\nimport { getIf } from 'choerodon-ui/pro/lib/data-set/utils';\nimport isIE from 'choerodon-ui/pro/lib/_util/isIE';\nimport KeyCode from '../_util/KeyCode';\nimport TaskRunner from '../_util/TaskRunner';\nimport Popup from './Popup';\nimport EventManager from '../_util/EventManager';\nimport { Action, HideAction, ShowAction } from './enum';\nimport TriggerChild from './TriggerChild';\nfunction isPointsEq(a1, a2) {\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nfunction getPopupClassNameFromAlign(builtinPlacements, prefixCls, align) {\n const { points } = align;\n const found = Object.keys(builtinPlacements).find(placement => ({}.hasOwnProperty.call(builtinPlacements, placement) &&\n isPointsEq(builtinPlacements[placement].points, points)));\n return found ? `${prefixCls}-popup-placement-${found}` : '';\n}\nfunction getAlignFromPlacement(builtinPlacements, placementStr, align) {\n const baseAlign = builtinPlacements[placementStr] || {};\n return {\n ...baseAlign,\n ...align,\n };\n}\nfunction getPopupAlign(props) {\n const { popupPlacement, popupAlign, builtinPlacements } = props;\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n}\nfunction contains(root, n) {\n if (root) {\n let node = n;\n while (node) {\n if (node === root || (root.contains && root.contains(node))) {\n return true;\n }\n node = node.parentNode;\n }\n }\n return false;\n}\nfunction isChildrenFunction(fn) {\n return typeof fn === 'function';\n}\nlet Trigger = class Trigger extends Component {\n constructor(props, context) {\n super(props, context);\n this.focusTime = 0;\n this.preClickTime = 0;\n this.animateFrameId = 0;\n runInAction(() => {\n this.popupHidden = 'popupHidden' in props ? props.popupHidden : props.defaultPopupHidden;\n this.align = getPopupAlign(props);\n });\n }\n saveRef(node) {\n this.popup = node;\n }\n getFocusableElements(elements) {\n this.focusElements = elements;\n const { target, targetEvent } = this;\n if (target && targetEvent && (!elements || !elements.includes(targetEvent.el))) {\n targetEvent.clear();\n delete this.targetEvent;\n target.focus();\n }\n }\n renderTriggerChild(child) {\n if (child) {\n if (isFragment(child)) {\n const { props: { children } } = child;\n return Children.map(children, (fragmentChild) => this.renderTriggerChild(fragmentChild));\n }\n if (isValidElement(child)) {\n const newChildProps = {\n key: child.key,\n };\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.handleEvent;\n }\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.handleEvent;\n newChildProps.onMouseDown = this.handleEvent;\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.handleEvent;\n const { mouseEnterDelay } = this.props;\n if (mouseEnterDelay && !this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.cancelPopupTask;\n }\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.handleEvent;\n const { mouseLeaveDelay } = this.props;\n if (mouseLeaveDelay && !this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.cancelPopupTask;\n }\n }\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.handleEvent;\n newChildProps.onBlur = this.handleEvent;\n }\n newChildProps.onKeyDown = this.handleEvent;\n newChildProps.popupHidden = this.popupHidden;\n return React.createElement(TriggerChild, Object.assign({}, newChildProps), child);\n }\n }\n return child;\n }\n render() {\n const { children, childrenProps } = this.props;\n const popup = this.getPopup();\n const newChildren = isChildrenFunction(children) ? children(this.renderTriggerChild, childrenProps) : Children.map(children, child => this.renderTriggerChild(child));\n return [newChildren, popup];\n }\n componentWillReceiveProps(nextProps) {\n const { popupHidden } = nextProps;\n if (popupHidden !== this.popupHidden && popupHidden !== undefined) {\n this.popupHidden = popupHidden;\n }\n const newAlign = getPopupAlign(nextProps);\n if (!isEqual(this.align, newAlign)) {\n this.align = newAlign;\n }\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentDidUpdate() {\n const { popupHidden } = this;\n if (this.documentEvent) {\n this.documentEvent.clear();\n }\n if (!popupHidden) {\n const documentEvent = getIf(this, 'documentEvent', () => new EventManager(typeof window === 'undefined' ? undefined : document));\n documentEvent.addEventListener('scroll', this.handleDocumentScroll, true);\n if ((this.isClickToHide() || this.isContextMenuToShow()) && !this.isBlurToHide()) {\n documentEvent.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n }\n }\n componentWillUnmount() {\n this.cancelPopupTask();\n if (this.documentEvent) {\n this.documentEvent.clear();\n }\n if (this.targetEvent) {\n this.targetEvent.clear();\n }\n }\n cancelPopupTask() {\n if (this.popupTask) {\n this.popupTask.cancel();\n }\n }\n handlePopupKeyDown(e) {\n const { focusTarget, activeElement } = this;\n if (activeElement && focusTarget && e.keyCode === KeyCode.TAB) {\n const { focusElements } = this;\n const { shiftKey } = e;\n if (focusElements && focusElements.indexOf(activeElement) === (shiftKey ? 0 : focusElements.length - 1)) {\n if (shiftKey) {\n e.preventDefault();\n }\n focusTarget.focus();\n }\n }\n }\n handleTargetBlur(e, child) {\n const { popup, focusTarget } = this;\n const relatedTarget = isIE() ? document.activeElement : e.relatedTarget;\n if (popup && popup.element.contains(relatedTarget)) {\n e.stopPropagation();\n this.activeElement = relatedTarget;\n this.currentTriggerChild = child;\n if (!focusTarget) {\n this.focusTarget = e.target;\n }\n return false;\n }\n if (focusTarget) {\n this.focusTarget = null;\n this.activeElement = null;\n this.currentTriggerChild = null;\n if (focusTarget !== relatedTarget) {\n this.handleTriggerEvent('Blur', child, e);\n }\n }\n return true;\n }\n handleTriggerEvent(eventName, child, e) {\n const { [`on${eventName}`]: handle } = this.props;\n const { [`on${eventName}`]: childHandle } = child.props;\n if (childHandle) {\n childHandle(e);\n }\n if (!e.isDefaultPrevented()) {\n if (handle) {\n handle(e);\n }\n if (!e.isDefaultPrevented()) {\n this[`handle${eventName}`].call(this, e);\n }\n }\n }\n handleEvent(eventName, child, e) {\n if (this.isBlurToHide() && eventName === 'Blur' && !this.handleTargetBlur(e, child)) {\n if (!this.target) {\n this.target = e.target;\n }\n }\n else {\n this.handleTriggerEvent(eventName, child, e);\n }\n }\n handlePopupMouseDown(e) {\n let fix = false;\n if (!e.isDefaultPrevented()) {\n const { target } = e;\n const { popup } = this;\n const element = focusable(target) ? target : findFocusableParent(target, popup && popup.element);\n if (element) {\n e.stopPropagation();\n }\n else {\n fix = true;\n }\n }\n else {\n fix = true;\n }\n if (fix && this.isBlurToHide()) {\n e.preventDefault();\n }\n }\n handlePopupBlur(e) {\n if (this.isBlurToHide()) {\n const { activeElement, currentTriggerChild } = this;\n if (activeElement && currentTriggerChild) {\n this.handleTargetBlur(e, currentTriggerChild);\n }\n }\n }\n handleContextMenu(e) {\n e.preventDefault();\n this.setPopupHidden(false);\n }\n handleKeyDown(e) {\n const { tabIntoPopupContent } = this.props;\n if (!this.popupHidden && tabIntoPopupContent && this.focusElements && e.keyCode === KeyCode.TAB && !e.shiftKey) {\n const [firstFocusElement] = this.focusElements;\n if (firstFocusElement) {\n e.preventDefault();\n firstFocusElement.focus();\n }\n }\n }\n handleFocus() {\n if (this.isFocusToShow()) {\n const { focusDelay } = this.props;\n this.focusTime = Date.now();\n this.delaySetPopupHidden(false, focusDelay);\n }\n }\n handleBlur() {\n if (this.isBlurToHide()) {\n const { blurDelay } = this.props;\n this.delaySetPopupHidden(true, blurDelay);\n }\n }\n handleDocumentMouseDown(e) {\n if (this.popup) {\n const { target } = e;\n if (!contains(findDOMNode(this), target) && !contains(findDOMNode(this.popup), target)) {\n this.setPopupHidden(true);\n }\n }\n }\n handleDocumentScroll({ target }) {\n if (this.popup && target !== document && !contains(findDOMNode(this.popup), target)) {\n if (this.animateFrameId) {\n raf.cancel(this.animateFrameId);\n }\n this.animateFrameId = raf(this.forcePopupAlign);\n }\n }\n handleMouseDown() {\n this.preClickTime = Date.now();\n }\n handleClick(e) {\n const { popupHidden } = this;\n if (this.focusTime) {\n if (Math.abs(this.preClickTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n if ((this.isClickToHide() && !popupHidden) || (popupHidden && this.isClickToShow())) {\n e.preventDefault();\n this.setPopupHidden(!popupHidden);\n }\n }\n handleMouseEnter() {\n const { mouseEnterDelay } = this.props;\n this.delaySetPopupHidden(false, mouseEnterDelay);\n }\n handleMouseLeave() {\n const { mouseLeaveDelay } = this.props;\n this.delaySetPopupHidden(true, mouseLeaveDelay);\n }\n handlePopupMouseEnter(e) {\n this.cancelPopupTask();\n const { onPopupMouseEnter } = this.props;\n if (onPopupMouseEnter) {\n onPopupMouseEnter(e);\n }\n }\n handlePopupMouseLeave(e) {\n const { mouseLeaveDelay, onPopupMouseLeave } = this.props;\n this.delaySetPopupHidden(true, mouseLeaveDelay);\n if (onPopupMouseLeave) {\n onPopupMouseLeave(e);\n }\n }\n getPopup() {\n const { prefixCls, popupCls, popupStyle, popupClassName, onPopupAnimateAppear, onPopupAnimateEnter, onPopupAnimateLeave, onPopupAnimateEnd, onPopupAlign, onPopupMouseEnter, onPopupMouseLeave, getPopupStyleFromAlign, getRootDomNode = this.getRootDomNode, transitionName, getPopupContainer, forceRender, } = this.props;\n if (this.mounted || !getPopupContainer) {\n const hidden = this.popupHidden;\n if (!hidden || this.popup || forceRender) {\n const mouseProps = {\n onMouseEnter: this.isMouseEnterToShow() ? this.handlePopupMouseEnter : onPopupMouseEnter,\n onMouseLeave: this.isMouseLeaveToHide() ? this.handlePopupMouseLeave : onPopupMouseLeave,\n };\n return (React.createElement(Popup, Object.assign({ key: \"popup\", ref: this.saveRef, transitionName: transitionName, className: classNames(`${prefixCls}-popup`, popupCls, popupClassName), style: popupStyle, hidden: hidden, align: this.align, onAlign: onPopupAlign, onMouseDown: this.handlePopupMouseDown, onKeyDown: this.handlePopupKeyDown, onBlur: this.handlePopupBlur, getFocusableElements: this.getFocusableElements, getRootDomNode: getRootDomNode, onAnimateAppear: onPopupAnimateAppear, onAnimateEnter: onPopupAnimateEnter, onAnimateLeave: onPopupAnimateLeave, onAnimateEnd: onPopupAnimateEnd, getStyleFromAlign: getPopupStyleFromAlign, getClassNameFromAlign: this.getPopupClassNameFromAlign, getPopupContainer: getPopupContainer }, mouseProps), this.getPopupContent()));\n }\n }\n }\n getRootDomNode() {\n return findDOMNode(this);\n }\n getPopupClassNameFromAlign(align) {\n const className = [];\n const { popupPlacement, builtinPlacements, prefixCls, getPopupClassNameFromAlign: getCls, } = this.props;\n if (popupPlacement && builtinPlacements) {\n className.push(getPopupClassNameFromAlign(builtinPlacements, prefixCls, align));\n }\n if (getCls) {\n const cls = getCls(align);\n if (cls) {\n className.push(cls);\n }\n }\n return className.join(' ');\n }\n forcePopupAlign() {\n if (!this.popupHidden && this.popup) {\n this.popup.forceAlign();\n }\n }\n getPopupContent() {\n const { popupContent, children } = this.props;\n return typeof popupContent === 'function' ? popupContent({ trigger: children }) : popupContent;\n }\n popupHiddenBeforeChange(hidden) {\n const { onPopupHiddenBeforeChange = noop } = this.props;\n if (onPopupHiddenBeforeChange(hidden) === false) {\n return false;\n }\n // if (hidden === false) {\n // return !isEmpty(this.getPopupContent());\n // }\n return true;\n }\n setPopupHidden(hidden) {\n this.cancelPopupTask();\n if (this.popupHidden !== hidden) {\n const { popupHidden, onPopupHiddenChange = noop } = this.props;\n if (this.popupHiddenBeforeChange(hidden) !== false) {\n if (popupHidden === undefined) {\n this.popupHidden = hidden;\n }\n onPopupHiddenChange(hidden);\n }\n }\n }\n delaySetPopupHidden(popupHidden, delay) {\n this.cancelPopupTask();\n if (delay) {\n getIf(this, 'popupTask', () => new TaskRunner()).delay(delay, () => {\n this.setPopupHidden(popupHidden);\n });\n }\n else {\n this.setPopupHidden(popupHidden);\n }\n }\n isClickToShow() {\n const { action = [], showAction = [] } = this.props;\n return action.indexOf(Action.click) !== -1 || showAction.indexOf(ShowAction.click) !== -1;\n }\n isContextMenuToShow() {\n const { action = [], showAction = [] } = this.props;\n return (action.indexOf(Action.contextMenu) !== -1 || showAction.indexOf(ShowAction.contextMenu) !== -1);\n }\n isClickToHide() {\n const { action = [], hideAction = [] } = this.props;\n return action.indexOf(Action.click) !== -1 || hideAction.indexOf(HideAction.click) !== -1;\n }\n isMouseEnterToShow() {\n const { action = [], showAction = [] } = this.props;\n return action.indexOf(Action.hover) !== -1 || showAction.indexOf(ShowAction.mouseEnter) !== -1;\n }\n isMouseLeaveToHide() {\n const { action = [], hideAction = [] } = this.props;\n return action.indexOf(Action.hover) !== -1 || hideAction.indexOf(HideAction.mouseLeave) !== -1;\n }\n isFocusToShow() {\n const { action = [], showAction = [] } = this.props;\n return action.indexOf(Action.focus) !== -1 || showAction.indexOf(ShowAction.focus) !== -1;\n }\n isBlurToHide() {\n const { action = [], hideAction = [] } = this.props;\n return action.indexOf(Action.focus) !== -1 || hideAction.indexOf(HideAction.blur) !== -1;\n }\n};\nTrigger.displayName = 'Trigger';\nTrigger.propTypes = {\n action: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([Action.hover, Action.contextMenu, Action.focus, Action.click])),\n showAction: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([\n ShowAction.mouseEnter,\n ShowAction.contextMenu,\n ShowAction.focus,\n ShowAction.click,\n ])),\n hideAction: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOf([HideAction.blur, HideAction.mouseLeave, HideAction.click])),\n popupContent: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n popupCls: PropTypes.string,\n popupStyle: PropTypes.object,\n popupHidden: PropTypes.bool,\n popupPlacement: PropTypes.string,\n popupAlign: PropTypes.object,\n builtinPlacements: PropTypes.any,\n onPopupAnimateAppear: PropTypes.func,\n onPopupAnimateEnter: PropTypes.func,\n onPopupAnimateLeave: PropTypes.func,\n onPopupAnimateEnd: PropTypes.func,\n onPopupAlign: PropTypes.func,\n onPopupHiddenChange: PropTypes.func,\n getPopupStyleFromAlign: PropTypes.func,\n getPopupContainer: PropTypes.func,\n focusDelay: PropTypes.number,\n blurDelay: PropTypes.number,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n transitionName: PropTypes.string,\n defaultPopupHidden: PropTypes.bool,\n popupClassName: PropTypes.string,\n tabIntoPopupContent: PropTypes.bool,\n};\nTrigger.defaultProps = {\n focusDelay: 150,\n blurDelay: 0,\n mouseEnterDelay: 100,\n mouseLeaveDelay: 100,\n transitionName: 'slide-up',\n defaultPopupHidden: true,\n};\n__decorate([\n observable\n], Trigger.prototype, \"popupHidden\", void 0);\n__decorate([\n observable\n], Trigger.prototype, \"mounted\", void 0);\n__decorate([\n autobind\n], Trigger.prototype, \"saveRef\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"getFocusableElements\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"renderTriggerChild\", null);\n__decorate([\n mobxAction\n], Trigger.prototype, \"componentWillReceiveProps\", null);\n__decorate([\n mobxAction\n], Trigger.prototype, \"componentDidMount\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"cancelPopupTask\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handlePopupKeyDown\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handleTargetBlur\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handleEvent\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handlePopupMouseDown\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handlePopupBlur\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handleDocumentMouseDown\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handleDocumentScroll\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handlePopupMouseEnter\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"handlePopupMouseLeave\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"getRootDomNode\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"getPopupClassNameFromAlign\", null);\n__decorate([\n autobind\n], Trigger.prototype, \"forcePopupAlign\", null);\n__decorate([\n mobxAction\n], Trigger.prototype, \"setPopupHidden\", null);\nTrigger = __decorate([\n observer\n], Trigger);\nexport default Trigger;\n","import { Children, cloneElement, PureComponent } from 'react';\nexport default class TriggerChild extends PureComponent {\n constructor(props, context) {\n super(props, context);\n const createChains = eventName => e => {\n const { [`on${eventName}`]: handle, children } = this.props;\n const child = Children.only(children);\n if (handle) {\n return handle(eventName, child, e);\n }\n if (child) {\n const { [`on${eventName}`]: childHandle } = child.props;\n if (childHandle) {\n return childHandle(e);\n }\n }\n };\n this.handleContextMenu = createChains('ContextMenu');\n this.handleClick = createChains('Click');\n this.handleMouseDown = createChains('MouseDown');\n this.handleMouseEnter = createChains('MouseEnter');\n this.handleMouseLeave = createChains('MouseLeave');\n this.handleFocus = createChains('Focus');\n this.handleBlur = createChains('Blur');\n this.handleKeyDown = createChains('KeyDown');\n }\n render() {\n const { children } = this.props;\n return cloneElement(Children.only(children), {\n onContextMenu: this.handleContextMenu,\n onClick: this.handleClick,\n onMouseDown: this.handleMouseDown,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n });\n }\n}\nTriggerChild.displayName = 'TriggerChild';\n","export var Action;\n(function (Action) {\n Action[\"click\"] = \"click\";\n Action[\"focus\"] = \"focus\";\n Action[\"hover\"] = \"hover\";\n Action[\"contextMenu\"] = \"contextMenu\";\n})(Action || (Action = {}));\nexport var ShowAction;\n(function (ShowAction) {\n ShowAction[\"click\"] = \"click\";\n ShowAction[\"focus\"] = \"focus\";\n ShowAction[\"mouseEnter\"] = \"mouseEnter\";\n ShowAction[\"contextMenu\"] = \"contextMenu\";\n})(ShowAction || (ShowAction = {}));\nexport var HideAction;\n(function (HideAction) {\n HideAction[\"click\"] = \"click\";\n HideAction[\"blur\"] = \"blur\";\n HideAction[\"mouseLeave\"] = \"mouseLeave\";\n})(HideAction || (HideAction = {}));\n","// extracted by mini-css-extract-plugin","import '../../style/index.less';\nimport './index.less';\n","export function T() {\n return true;\n}\n// Fix IE file.status problem\n// via coping a new Object\nexport function fileToObject(file) {\n return {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.filename || file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n response: file.response,\n error: file.error,\n percent: 0,\n originFileObj: file,\n };\n}\n/**\n * 生成Progress percent: 0.1 -> 0.98\n * - for ie\n */\nexport function genPercentAdd() {\n let k = 0.1;\n const i = 0.01;\n const end = 0.98;\n return function (s) {\n let start = s;\n if (start >= end) {\n return start;\n }\n start += k;\n k -= i;\n if (k < 0.001) {\n k = 0.001;\n }\n return start * 100;\n };\n}\nexport function getFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(item => item[matchKey] === file[matchKey])[0];\n}\nexport function removeFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\nconst isImageFileType = (type) => type.indexOf('image/') === 0;\nconst MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(resolve => {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n const canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = `position: fixed; left: 0; top: 0; width: ${MEASURE_SIZE}px; height: ${MEASURE_SIZE}px; z-index: 9999; display: none;`;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n const { width, height } = img;\n let drawWidth = MEASURE_SIZE;\n let drawHeight = MEASURE_SIZE;\n let offsetX = 0;\n let offsetY = 0;\n if (width < height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n }\n else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n const dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n resolve(dataURL);\n };\n img.src = window.URL.createObjectURL(file);\n });\n}\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;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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}","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;","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(Object(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(Object(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 _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(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\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 * better-scroll / core\n * (c) 2016-2021 ustbhuangyi\n * Released under the MIT License.\n */\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\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 __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}\n\nvar propertiesConfig = [\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.currentPos',\r\n key: 'x'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.currentPos',\r\n key: 'y'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.hasScroll',\r\n key: 'hasHorizontalScroll'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.hasScroll',\r\n key: 'hasVerticalScroll'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.contentSize',\r\n key: 'scrollerWidth'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.contentSize',\r\n key: 'scrollerHeight'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.maxScrollPos',\r\n key: 'maxScrollX'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.maxScrollPos',\r\n key: 'maxScrollY'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.minScrollPos',\r\n key: 'minScrollX'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.minScrollPos',\r\n key: 'minScrollY'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.movingDirection',\r\n key: 'movingDirectionX'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.movingDirection',\r\n key: 'movingDirectionY'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorX.direction',\r\n key: 'directionX'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBehaviorY.direction',\r\n key: 'directionY'\r\n },\r\n {\r\n sourceKey: 'scroller.actions.enabled',\r\n key: 'enabled'\r\n },\r\n {\r\n sourceKey: 'scroller.animater.pending',\r\n key: 'pending'\r\n },\r\n {\r\n sourceKey: 'scroller.animater.stop',\r\n key: 'stop'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollTo',\r\n key: 'scrollTo'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollBy',\r\n key: 'scrollBy'\r\n },\r\n {\r\n sourceKey: 'scroller.scrollToElement',\r\n key: 'scrollToElement'\r\n },\r\n {\r\n sourceKey: 'scroller.resetPosition',\r\n key: 'resetPosition'\r\n }\r\n];\n\nfunction warn(msg) {\r\n console.error(\"[BScroll warn]: \" + msg);\r\n}\n\n// ssr support\r\nvar inBrowser = typeof window !== 'undefined';\r\nvar ua = inBrowser && navigator.userAgent.toLowerCase();\r\nvar isWeChatDevTools = !!(ua && /wechatdevtools/.test(ua));\r\nvar isAndroid = ua && ua.indexOf('android') > 0;\r\n/* istanbul ignore next */\r\nvar isIOSBadVersion = (function () {\r\n if (typeof ua === 'string') {\r\n var regex = /os (\\d\\d?_\\d(_\\d)?)/;\r\n var matches = regex.exec(ua);\r\n if (!matches)\r\n return false;\r\n var parts = matches[1].split('_').map(function (item) {\r\n return parseInt(item, 10);\r\n });\r\n // ios version >= 13.4 issue 982\r\n return !!(parts[0] === 13 && parts[1] >= 4);\r\n }\r\n return false;\r\n})();\r\n/* istanbul ignore next */\r\nvar supportsPassive = false;\r\n/* istanbul ignore next */\r\nif (inBrowser) {\r\n var EventName = 'test-passive';\r\n try {\r\n var opts = {};\r\n Object.defineProperty(opts, 'passive', {\r\n get: function () {\r\n supportsPassive = true;\r\n },\r\n }); // https://github.com/facebook/flow/issues/285\r\n window.addEventListener(EventName, function () { }, opts);\r\n }\r\n catch (e) { }\r\n}\n\nfunction getNow() {\r\n return window.performance &&\r\n window.performance.now &&\r\n window.performance.timing\r\n ? window.performance.now() + window.performance.timing.navigationStart\r\n : +new Date();\r\n}\r\nvar extend = function (target, source) {\r\n for (var key in source) {\r\n target[key] = source[key];\r\n }\r\n return target;\r\n};\r\nfunction isUndef(v) {\r\n return v === undefined || v === null;\r\n}\r\nfunction between(x, min, max) {\r\n if (x < min) {\r\n return min;\r\n }\r\n if (x > max) {\r\n return max;\r\n }\r\n return x;\r\n}\n\nvar elementStyle = (inBrowser &&\r\n document.createElement('div').style);\r\nvar vendor = (function () {\r\n /* istanbul ignore if */\r\n if (!inBrowser) {\r\n return false;\r\n }\r\n var transformNames = [\r\n {\r\n key: 'standard',\r\n value: 'transform',\r\n },\r\n {\r\n key: 'webkit',\r\n value: 'webkitTransform',\r\n },\r\n {\r\n key: 'Moz',\r\n value: 'MozTransform',\r\n },\r\n {\r\n key: 'O',\r\n value: 'OTransform',\r\n },\r\n {\r\n key: 'ms',\r\n value: 'msTransform',\r\n },\r\n ];\r\n for (var _i = 0, transformNames_1 = transformNames; _i < transformNames_1.length; _i++) {\r\n var obj = transformNames_1[_i];\r\n if (elementStyle[obj.value] !== undefined) {\r\n return obj.key;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n})();\r\n/* istanbul ignore next */\r\nfunction prefixStyle(style) {\r\n if (vendor === false) {\r\n return style;\r\n }\r\n if (vendor === 'standard') {\r\n if (style === 'transitionEnd') {\r\n return 'transitionend';\r\n }\r\n return style;\r\n }\r\n return vendor + style.charAt(0).toUpperCase() + style.substr(1);\r\n}\r\nfunction getElement(el) {\r\n return (typeof el === 'string'\r\n ? document.querySelector(el)\r\n : el);\r\n}\r\nfunction addEvent(el, type, fn, capture) {\r\n var useCapture = supportsPassive\r\n ? {\r\n passive: false,\r\n capture: !!capture,\r\n }\r\n : !!capture;\r\n el.addEventListener(type, fn, useCapture);\r\n}\r\nfunction removeEvent(el, type, fn, capture) {\r\n el.removeEventListener(type, fn, {\r\n capture: !!capture,\r\n });\r\n}\r\nfunction offset(el) {\r\n var left = 0;\r\n var top = 0;\r\n while (el) {\r\n left -= el.offsetLeft;\r\n top -= el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n };\r\n}\r\nvendor && vendor !== 'standard' ? '-' + vendor.toLowerCase() + '-' : '';\r\nvar transform = prefixStyle('transform');\r\nvar transition = prefixStyle('transition');\r\nvar hasPerspective = inBrowser && prefixStyle('perspective') in elementStyle;\r\n// fix issue #361\r\nvar hasTouch = inBrowser && ('ontouchstart' in window || isWeChatDevTools);\r\nvar hasTransition = inBrowser && transition in elementStyle;\r\nvar style = {\r\n transform: transform,\r\n transition: transition,\r\n transitionTimingFunction: prefixStyle('transitionTimingFunction'),\r\n transitionDuration: prefixStyle('transitionDuration'),\r\n transitionDelay: prefixStyle('transitionDelay'),\r\n transformOrigin: prefixStyle('transformOrigin'),\r\n transitionEnd: prefixStyle('transitionEnd'),\r\n transitionProperty: prefixStyle('transitionProperty'),\r\n};\r\nvar eventTypeMap = {\r\n touchstart: 1,\r\n touchmove: 1,\r\n touchend: 1,\r\n touchcancel: 1,\r\n mousedown: 2,\r\n mousemove: 2,\r\n mouseup: 2,\r\n};\r\nfunction getRect(el) {\r\n /* istanbul ignore if */\r\n if (el instanceof window.SVGElement) {\r\n var rect = el.getBoundingClientRect();\r\n return {\r\n top: rect.top,\r\n left: rect.left,\r\n width: rect.width,\r\n height: rect.height,\r\n };\r\n }\r\n else {\r\n return {\r\n top: el.offsetTop,\r\n left: el.offsetLeft,\r\n width: el.offsetWidth,\r\n height: el.offsetHeight,\r\n };\r\n }\r\n}\r\nfunction preventDefaultExceptionFn(el, exceptions) {\r\n for (var i in exceptions) {\r\n if (exceptions[i].test(el[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nvar tagExceptionFn = preventDefaultExceptionFn;\r\nfunction tap(e, eventName) {\r\n var ev = document.createEvent('Event');\r\n ev.initEvent(eventName, true, true);\r\n ev.pageX = e.pageX;\r\n ev.pageY = e.pageY;\r\n e.target.dispatchEvent(ev);\r\n}\r\nfunction click(e, event) {\r\n if (event === void 0) { event = 'click'; }\r\n var eventSource;\r\n if (e.type === 'mouseup') {\r\n eventSource = e;\r\n }\r\n else if (e.type === 'touchend' || e.type === 'touchcancel') {\r\n eventSource = e.changedTouches[0];\r\n }\r\n var posSrc = {};\r\n if (eventSource) {\r\n posSrc.screenX = eventSource.screenX || 0;\r\n posSrc.screenY = eventSource.screenY || 0;\r\n posSrc.clientX = eventSource.clientX || 0;\r\n posSrc.clientY = eventSource.clientY || 0;\r\n }\r\n var ev;\r\n var bubbles = true;\r\n var cancelable = true;\r\n var ctrlKey = e.ctrlKey, shiftKey = e.shiftKey, altKey = e.altKey, metaKey = e.metaKey;\r\n var pressedKeysMap = {\r\n ctrlKey: ctrlKey,\r\n shiftKey: shiftKey,\r\n altKey: altKey,\r\n metaKey: metaKey,\r\n };\r\n if (typeof MouseEvent !== 'undefined') {\r\n try {\r\n ev = new MouseEvent(event, extend(__assign({ bubbles: bubbles,\r\n cancelable: cancelable }, pressedKeysMap), posSrc));\r\n }\r\n catch (e) {\r\n /* istanbul ignore next */\r\n createEvent();\r\n }\r\n }\r\n else {\r\n createEvent();\r\n }\r\n function createEvent() {\r\n ev = document.createEvent('Event');\r\n ev.initEvent(event, bubbles, cancelable);\r\n extend(ev, posSrc);\r\n }\r\n // forwardedTouchEvent set to true in case of the conflict with fastclick\r\n ev.forwardedTouchEvent = true;\r\n ev._constructed = true;\r\n e.target.dispatchEvent(ev);\r\n}\r\nfunction dblclick(e) {\r\n click(e, 'dblclick');\r\n}\n\nvar ease = {\r\n // easeOutQuint\r\n swipe: {\r\n style: 'cubic-bezier(0.23, 1, 0.32, 1)',\r\n fn: function (t) {\r\n return 1 + --t * t * t * t * t;\r\n }\r\n },\r\n // easeOutQuard\r\n swipeBounce: {\r\n style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\r\n fn: function (t) {\r\n return t * (2 - t);\r\n }\r\n },\r\n // easeOutQuart\r\n bounce: {\r\n style: 'cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n fn: function (t) {\r\n return 1 - --t * t * t * t;\r\n }\r\n }\r\n};\n\nvar DEFAULT_INTERVAL = 1000 / 60;\r\nvar windowCompat = inBrowser && window;\r\n/* istanbul ignore next */\r\nfunction noop$1() { }\r\nvar requestAnimationFrame = (function () {\r\n /* istanbul ignore if */\r\n if (!inBrowser) {\r\n return noop$1;\r\n }\r\n return (windowCompat.requestAnimationFrame ||\r\n windowCompat.webkitRequestAnimationFrame ||\r\n windowCompat.mozRequestAnimationFrame ||\r\n windowCompat.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, callback.interval || DEFAULT_INTERVAL); // make interval as precise as possible.\r\n });\r\n})();\r\nvar cancelAnimationFrame = (function () {\r\n /* istanbul ignore if */\r\n if (!inBrowser) {\r\n return noop$1;\r\n }\r\n return (windowCompat.cancelAnimationFrame ||\r\n windowCompat.webkitCancelAnimationFrame ||\r\n windowCompat.mozCancelAnimationFrame ||\r\n windowCompat.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n });\r\n})();\n\n/* istanbul ignore next */\r\nvar noop = function (val) { };\r\nvar sharedPropertyDefinition = {\r\n enumerable: true,\r\n configurable: true,\r\n get: noop,\r\n set: noop,\r\n};\r\nvar getProperty = function (obj, key) {\r\n var keys = key.split('.');\r\n for (var i = 0; i < keys.length - 1; i++) {\r\n obj = obj[keys[i]];\r\n if (typeof obj !== 'object' || !obj)\r\n return;\r\n }\r\n var lastKey = keys.pop();\r\n if (typeof obj[lastKey] === 'function') {\r\n return function () {\r\n return obj[lastKey].apply(obj, arguments);\r\n };\r\n }\r\n else {\r\n return obj[lastKey];\r\n }\r\n};\r\nvar setProperty = function (obj, key, value) {\r\n var keys = key.split('.');\r\n var temp;\r\n for (var i = 0; i < keys.length - 1; i++) {\r\n temp = keys[i];\r\n if (!obj[temp])\r\n obj[temp] = {};\r\n obj = obj[temp];\r\n }\r\n obj[keys.pop()] = value;\r\n};\r\nfunction propertiesProxy(target, sourceKey, key) {\r\n sharedPropertyDefinition.get = function proxyGetter() {\r\n return getProperty(this, sourceKey);\r\n };\r\n sharedPropertyDefinition.set = function proxySetter(val) {\r\n setProperty(this, sourceKey, val);\r\n };\r\n Object.defineProperty(target, key, sharedPropertyDefinition);\r\n}\n\nvar EventEmitter = /** @class */ (function () {\r\n function EventEmitter(names) {\r\n this.events = {};\r\n this.eventTypes = {};\r\n this.registerType(names);\r\n }\r\n EventEmitter.prototype.on = function (type, fn, context) {\r\n if (context === void 0) { context = this; }\r\n this.hasType(type);\r\n if (!this.events[type]) {\r\n this.events[type] = [];\r\n }\r\n this.events[type].push([fn, context]);\r\n return this;\r\n };\r\n EventEmitter.prototype.once = function (type, fn, context) {\r\n var _this = this;\r\n if (context === void 0) { context = this; }\r\n this.hasType(type);\r\n var magic = 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 _this.off(type, magic);\r\n var ret = fn.apply(context, args);\r\n if (ret === true) {\r\n return ret;\r\n }\r\n };\r\n magic.fn = fn;\r\n this.on(type, magic);\r\n return this;\r\n };\r\n EventEmitter.prototype.off = function (type, fn) {\r\n if (!type && !fn) {\r\n this.events = {};\r\n return this;\r\n }\r\n if (type) {\r\n this.hasType(type);\r\n if (!fn) {\r\n this.events[type] = [];\r\n return this;\r\n }\r\n var events = this.events[type];\r\n if (!events) {\r\n return this;\r\n }\r\n var count = events.length;\r\n while (count--) {\r\n if (events[count][0] === fn ||\r\n (events[count][0] && events[count][0].fn === fn)) {\r\n events.splice(count, 1);\r\n }\r\n }\r\n return this;\r\n }\r\n };\r\n EventEmitter.prototype.trigger = function (type) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n this.hasType(type);\r\n var events = this.events[type];\r\n if (!events) {\r\n return;\r\n }\r\n var len = events.length;\r\n var eventsCopy = __spreadArrays(events);\r\n var ret;\r\n for (var i = 0; i < len; i++) {\r\n var event_1 = eventsCopy[i];\r\n var fn = event_1[0], context = event_1[1];\r\n if (fn) {\r\n ret = fn.apply(context, args);\r\n if (ret === true) {\r\n return ret;\r\n }\r\n }\r\n }\r\n };\r\n EventEmitter.prototype.registerType = function (names) {\r\n var _this = this;\r\n names.forEach(function (type) {\r\n _this.eventTypes[type] = type;\r\n });\r\n };\r\n EventEmitter.prototype.destroy = function () {\r\n this.events = {};\r\n this.eventTypes = {};\r\n };\r\n EventEmitter.prototype.hasType = function (type) {\r\n var types = this.eventTypes;\r\n var isType = types[type] === type;\r\n if (!isType) {\r\n warn(\"EventEmitter has used unknown event type: \\\"\" + type + \"\\\", should be oneof [\" +\r\n (\"\" + Object.keys(types).map(function (_) { return JSON.stringify(_); })) +\r\n \"]\");\r\n }\r\n };\r\n return EventEmitter;\r\n}());\r\nvar EventRegister = /** @class */ (function () {\r\n function EventRegister(wrapper, events) {\r\n this.wrapper = wrapper;\r\n this.events = events;\r\n this.addDOMEvents();\r\n }\r\n EventRegister.prototype.destroy = function () {\r\n this.removeDOMEvents();\r\n this.events = [];\r\n };\r\n EventRegister.prototype.addDOMEvents = function () {\r\n this.handleDOMEvents(addEvent);\r\n };\r\n EventRegister.prototype.removeDOMEvents = function () {\r\n this.handleDOMEvents(removeEvent);\r\n };\r\n EventRegister.prototype.handleDOMEvents = function (eventOperation) {\r\n var _this = this;\r\n var wrapper = this.wrapper;\r\n this.events.forEach(function (event) {\r\n eventOperation(wrapper, event.name, _this, !!event.capture);\r\n });\r\n };\r\n EventRegister.prototype.handleEvent = function (e) {\r\n var eventType = e.type;\r\n this.events.some(function (event) {\r\n if (event.name === eventType) {\r\n event.handler(e);\r\n return true;\r\n }\r\n return false;\r\n });\r\n };\r\n return EventRegister;\r\n}());\n\nvar CustomOptions = /** @class */ (function () {\r\n function CustomOptions() {\r\n }\r\n return CustomOptions;\r\n}());\r\nvar OptionsConstructor = /** @class */ (function (_super) {\r\n __extends(OptionsConstructor, _super);\r\n function OptionsConstructor() {\r\n var _this = _super.call(this) || this;\r\n _this.startX = 0;\r\n _this.startY = 0;\r\n _this.scrollX = false;\r\n _this.scrollY = true;\r\n _this.freeScroll = false;\r\n _this.directionLockThreshold = 0;\r\n _this.eventPassthrough = \"\" /* None */;\r\n _this.click = false;\r\n _this.dblclick = false;\r\n _this.tap = '';\r\n _this.bounce = {\r\n top: true,\r\n bottom: true,\r\n left: true,\r\n right: true,\r\n };\r\n _this.bounceTime = 800;\r\n _this.momentum = true;\r\n _this.momentumLimitTime = 300;\r\n _this.momentumLimitDistance = 15;\r\n _this.swipeTime = 2500;\r\n _this.swipeBounceTime = 500;\r\n _this.deceleration = 0.0015;\r\n _this.flickLimitTime = 200;\r\n _this.flickLimitDistance = 100;\r\n _this.resizePolling = 60;\r\n _this.probeType = 0 /* Default */;\r\n _this.stopPropagation = false;\r\n _this.preventDefault = true;\r\n _this.preventDefaultException = {\r\n tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/,\r\n };\r\n _this.tagException = {\r\n tagName: /^TEXTAREA$/,\r\n };\r\n _this.HWCompositing = true;\r\n _this.useTransition = true;\r\n _this.bindToWrapper = false;\r\n _this.bindToTarget = false;\r\n _this.disableMouse = hasTouch;\r\n _this.disableTouch = !hasTouch;\r\n _this.autoBlur = true;\r\n _this.autoEndDistance = 5;\r\n _this.outOfBoundaryDampingFactor = 1 / 3;\r\n _this.specifiedIndexAsContent = 0;\r\n _this.quadrant = 1 /* First */;\r\n return _this;\r\n }\r\n OptionsConstructor.prototype.merge = function (options) {\r\n if (!options)\r\n return this;\r\n for (var key in options) {\r\n if (key === 'bounce') {\r\n this.bounce = this.resolveBounce(options[key]);\r\n continue;\r\n }\r\n this[key] = options[key];\r\n }\r\n return this;\r\n };\r\n OptionsConstructor.prototype.process = function () {\r\n this.translateZ =\r\n this.HWCompositing && hasPerspective ? ' translateZ(1px)' : '';\r\n this.useTransition = this.useTransition && hasTransition;\r\n this.preventDefault = !this.eventPassthrough && this.preventDefault;\r\n // If you want eventPassthrough I have to lock one of the axes\r\n this.scrollX =\r\n this.eventPassthrough === \"horizontal\" /* Horizontal */\r\n ? false\r\n : this.scrollX;\r\n this.scrollY =\r\n this.eventPassthrough === \"vertical\" /* Vertical */ ? false : this.scrollY;\r\n // With eventPassthrough we also need lockDirection mechanism\r\n this.freeScroll = this.freeScroll && !this.eventPassthrough;\r\n // force true when freeScroll is true\r\n this.scrollX = this.freeScroll ? true : this.scrollX;\r\n this.scrollY = this.freeScroll ? true : this.scrollY;\r\n this.directionLockThreshold = this.eventPassthrough\r\n ? 0\r\n : this.directionLockThreshold;\r\n return this;\r\n };\r\n OptionsConstructor.prototype.resolveBounce = function (bounceOptions) {\r\n var DEFAULT_BOUNCE = {\r\n top: true,\r\n right: true,\r\n bottom: true,\r\n left: true,\r\n };\r\n var NEGATED_BOUNCE = {\r\n top: false,\r\n right: false,\r\n bottom: false,\r\n left: false,\r\n };\r\n var ret;\r\n if (typeof bounceOptions === 'object') {\r\n ret = extend(DEFAULT_BOUNCE, bounceOptions);\r\n }\r\n else {\r\n ret = bounceOptions ? DEFAULT_BOUNCE : NEGATED_BOUNCE;\r\n }\r\n return ret;\r\n };\r\n return OptionsConstructor;\r\n}(CustomOptions));\n\nvar ActionsHandler = /** @class */ (function () {\r\n function ActionsHandler(wrapper, options) {\r\n this.wrapper = wrapper;\r\n this.options = options;\r\n this.hooks = new EventEmitter([\r\n 'beforeStart',\r\n 'start',\r\n 'move',\r\n 'end',\r\n 'click',\r\n ]);\r\n this.handleDOMEvents();\r\n }\r\n ActionsHandler.prototype.handleDOMEvents = function () {\r\n var _a = this.options, bindToWrapper = _a.bindToWrapper, disableMouse = _a.disableMouse, disableTouch = _a.disableTouch, click = _a.click;\r\n var wrapper = this.wrapper;\r\n var target = bindToWrapper ? wrapper : window;\r\n var wrapperEvents = [];\r\n var targetEvents = [];\r\n var shouldRegisterTouch = !disableTouch;\r\n var shouldRegisterMouse = !disableMouse;\r\n if (click) {\r\n wrapperEvents.push({\r\n name: 'click',\r\n handler: this.click.bind(this),\r\n capture: true,\r\n });\r\n }\r\n if (shouldRegisterTouch) {\r\n wrapperEvents.push({\r\n name: 'touchstart',\r\n handler: this.start.bind(this),\r\n });\r\n targetEvents.push({\r\n name: 'touchmove',\r\n handler: this.move.bind(this),\r\n }, {\r\n name: 'touchend',\r\n handler: this.end.bind(this),\r\n }, {\r\n name: 'touchcancel',\r\n handler: this.end.bind(this),\r\n });\r\n }\r\n if (shouldRegisterMouse) {\r\n wrapperEvents.push({\r\n name: 'mousedown',\r\n handler: this.start.bind(this),\r\n });\r\n targetEvents.push({\r\n name: 'mousemove',\r\n handler: this.move.bind(this),\r\n }, {\r\n name: 'mouseup',\r\n handler: this.end.bind(this),\r\n });\r\n }\r\n this.wrapperEventRegister = new EventRegister(wrapper, wrapperEvents);\r\n this.targetEventRegister = new EventRegister(target, targetEvents);\r\n };\r\n ActionsHandler.prototype.beforeHandler = function (e, type) {\r\n var _a = this.options, preventDefault = _a.preventDefault, stopPropagation = _a.stopPropagation, preventDefaultException = _a.preventDefaultException;\r\n var preventDefaultConditions = {\r\n start: function () {\r\n return (preventDefault &&\r\n !preventDefaultExceptionFn(e.target, preventDefaultException));\r\n },\r\n end: function () {\r\n return (preventDefault &&\r\n !preventDefaultExceptionFn(e.target, preventDefaultException));\r\n },\r\n move: function () {\r\n return preventDefault;\r\n },\r\n };\r\n if (preventDefaultConditions[type]()) {\r\n e.preventDefault();\r\n }\r\n if (stopPropagation) {\r\n e.stopPropagation();\r\n }\r\n };\r\n ActionsHandler.prototype.setInitiated = function (type) {\r\n if (type === void 0) { type = 0; }\r\n this.initiated = type;\r\n };\r\n ActionsHandler.prototype.start = function (e) {\r\n var _eventType = eventTypeMap[e.type];\r\n if (this.initiated && this.initiated !== _eventType) {\r\n return;\r\n }\r\n this.setInitiated(_eventType);\r\n // if textarea or other html tags in options.tagException is manipulated\r\n // do not make bs scroll\r\n if (tagExceptionFn(e.target, this.options.tagException)) {\r\n this.setInitiated();\r\n return;\r\n }\r\n // only allow mouse left button\r\n if (_eventType === 2 /* Mouse */ && e.button !== 0 /* Left */)\r\n return;\r\n if (this.hooks.trigger(this.hooks.eventTypes.beforeStart, e)) {\r\n return;\r\n }\r\n this.beforeHandler(e, 'start');\r\n var point = (e.touches ? e.touches[0] : e);\r\n this.pointX = point.pageX;\r\n this.pointY = point.pageY;\r\n this.hooks.trigger(this.hooks.eventTypes.start, e);\r\n };\r\n ActionsHandler.prototype.move = function (e) {\r\n if (eventTypeMap[e.type] !== this.initiated) {\r\n return;\r\n }\r\n this.beforeHandler(e, 'move');\r\n var point = (e.touches ? e.touches[0] : e);\r\n var deltaX = point.pageX - this.pointX;\r\n var deltaY = point.pageY - this.pointY;\r\n this.pointX = point.pageX;\r\n this.pointY = point.pageY;\r\n if (this.hooks.trigger(this.hooks.eventTypes.move, {\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n e: e,\r\n })) {\r\n return;\r\n }\r\n // auto end when out of viewport\r\n var scrollLeft = document.documentElement.scrollLeft ||\r\n window.pageXOffset ||\r\n document.body.scrollLeft;\r\n var scrollTop = document.documentElement.scrollTop ||\r\n window.pageYOffset ||\r\n document.body.scrollTop;\r\n var pX = this.pointX - scrollLeft;\r\n var pY = this.pointY - scrollTop;\r\n var autoEndDistance = this.options.autoEndDistance;\r\n if (pX > document.documentElement.clientWidth - autoEndDistance ||\r\n pY > document.documentElement.clientHeight - autoEndDistance ||\r\n pX < autoEndDistance ||\r\n pY < autoEndDistance) {\r\n this.end(e);\r\n }\r\n };\r\n ActionsHandler.prototype.end = function (e) {\r\n if (eventTypeMap[e.type] !== this.initiated) {\r\n return;\r\n }\r\n this.setInitiated();\r\n this.beforeHandler(e, 'end');\r\n this.hooks.trigger(this.hooks.eventTypes.end, e);\r\n };\r\n ActionsHandler.prototype.click = function (e) {\r\n this.hooks.trigger(this.hooks.eventTypes.click, e);\r\n };\r\n ActionsHandler.prototype.setContent = function (content) {\r\n if (content !== this.wrapper) {\r\n this.wrapper = content;\r\n this.rebindDOMEvents();\r\n }\r\n };\r\n ActionsHandler.prototype.rebindDOMEvents = function () {\r\n this.wrapperEventRegister.destroy();\r\n this.targetEventRegister.destroy();\r\n this.handleDOMEvents();\r\n };\r\n ActionsHandler.prototype.destroy = function () {\r\n this.wrapperEventRegister.destroy();\r\n this.targetEventRegister.destroy();\r\n this.hooks.destroy();\r\n };\r\n return ActionsHandler;\r\n}());\n\nvar translaterMetaData = {\r\n x: ['translateX', 'px'],\r\n y: ['translateY', 'px'],\r\n};\r\nvar Translater = /** @class */ (function () {\r\n function Translater(content) {\r\n this.setContent(content);\r\n this.hooks = new EventEmitter(['beforeTranslate', 'translate']);\r\n }\r\n Translater.prototype.getComputedPosition = function () {\r\n var cssStyle = window.getComputedStyle(this.content, null);\r\n var matrix = cssStyle[style.transform].split(')')[0].split(', ');\r\n var x = +(matrix[12] || matrix[4]) || 0;\r\n var y = +(matrix[13] || matrix[5]) || 0;\r\n return {\r\n x: x,\r\n y: y,\r\n };\r\n };\r\n Translater.prototype.translate = function (point) {\r\n var transformStyle = [];\r\n Object.keys(point).forEach(function (key) {\r\n if (!translaterMetaData[key]) {\r\n return;\r\n }\r\n var transformFnName = translaterMetaData[key][0];\r\n if (transformFnName) {\r\n var transformFnArgUnit = translaterMetaData[key][1];\r\n var transformFnArg = point[key];\r\n transformStyle.push(transformFnName + \"(\" + transformFnArg + transformFnArgUnit + \")\");\r\n }\r\n });\r\n this.hooks.trigger(this.hooks.eventTypes.beforeTranslate, transformStyle, point);\r\n this.style[style.transform] = transformStyle.join(' ');\r\n this.hooks.trigger(this.hooks.eventTypes.translate, point);\r\n };\r\n Translater.prototype.setContent = function (content) {\r\n if (this.content !== content) {\r\n this.content = content;\r\n this.style = content.style;\r\n }\r\n };\r\n Translater.prototype.destroy = function () {\r\n this.hooks.destroy();\r\n };\r\n return Translater;\r\n}());\n\nvar Base = /** @class */ (function () {\r\n function Base(content, translater, options) {\r\n this.translater = translater;\r\n this.options = options;\r\n this.timer = 0;\r\n this.hooks = new EventEmitter([\r\n 'move',\r\n 'end',\r\n 'beforeForceStop',\r\n 'forceStop',\r\n 'callStop',\r\n 'time',\r\n 'timeFunction',\r\n ]);\r\n this.setContent(content);\r\n }\r\n Base.prototype.translate = function (endPoint) {\r\n this.translater.translate(endPoint);\r\n };\r\n Base.prototype.setPending = function (pending) {\r\n this.pending = pending;\r\n };\r\n Base.prototype.setForceStopped = function (forceStopped) {\r\n this.forceStopped = forceStopped;\r\n };\r\n Base.prototype.setCallStop = function (called) {\r\n this.callStopWhenPending = called;\r\n };\r\n Base.prototype.setContent = function (content) {\r\n if (this.content !== content) {\r\n this.content = content;\r\n this.style = content.style;\r\n this.stop();\r\n }\r\n };\r\n Base.prototype.clearTimer = function () {\r\n if (this.timer) {\r\n cancelAnimationFrame(this.timer);\r\n this.timer = 0;\r\n }\r\n };\r\n Base.prototype.destroy = function () {\r\n this.hooks.destroy();\r\n cancelAnimationFrame(this.timer);\r\n };\r\n return Base;\r\n}());\n\n// iOS 13.6 - 14.x, window.getComputedStyle sometimes will get wrong transform value\r\n// when bs use transition mode\r\n// eg: translateY -100px -> -200px, when the last frame which is about to scroll to -200px\r\n// window.getComputedStyle(this.content) will calculate transformY to be -100px(startPoint)\r\n// it is weird\r\n// so we should validate position caculated by 'window.getComputedStyle'\r\nvar isValidPostion = function (startPoint, endPoint, currentPos, prePos) {\r\n var computeDirection = function (endValue, startValue) {\r\n var delta = endValue - startValue;\r\n var direction = delta > 0\r\n ? -1 /* Negative */\r\n : delta < 0\r\n ? 1 /* Positive */\r\n : 0 /* Default */;\r\n return direction;\r\n };\r\n var directionX = computeDirection(endPoint.x, startPoint.x);\r\n var directionY = computeDirection(endPoint.y, startPoint.y);\r\n var deltaX = currentPos.x - prePos.x;\r\n var deltaY = currentPos.y - prePos.y;\r\n return directionX * deltaX <= 0 && directionY * deltaY <= 0;\r\n};\n\nvar Transition = /** @class */ (function (_super) {\r\n __extends(Transition, _super);\r\n function Transition() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Transition.prototype.startProbe = function (startPoint, endPoint) {\r\n var _this = this;\r\n var prePos = startPoint;\r\n var probe = function () {\r\n var pos = _this.translater.getComputedPosition();\r\n if (isValidPostion(startPoint, endPoint, pos, prePos)) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.move, pos);\r\n }\r\n // call bs.stop() should not dispatch end hook again.\r\n // forceStop hook will do this.\r\n /* istanbul ignore if */\r\n if (!_this.pending) {\r\n if (_this.callStopWhenPending) {\r\n _this.callStopWhenPending = false;\r\n }\r\n else {\r\n // transition ends should dispatch end hook.\r\n _this.hooks.trigger(_this.hooks.eventTypes.end, pos);\r\n }\r\n }\r\n prePos = pos;\r\n if (_this.pending) {\r\n _this.timer = requestAnimationFrame(probe);\r\n }\r\n };\r\n // when manually call bs.stop(), then bs.scrollTo()\r\n // we should reset callStopWhenPending to dispatch end hook\r\n if (this.callStopWhenPending) {\r\n this.setCallStop(false);\r\n }\r\n cancelAnimationFrame(this.timer);\r\n probe();\r\n };\r\n Transition.prototype.transitionTime = function (time) {\r\n if (time === void 0) { time = 0; }\r\n this.style[style.transitionDuration] = time + 'ms';\r\n this.hooks.trigger(this.hooks.eventTypes.time, time);\r\n };\r\n Transition.prototype.transitionTimingFunction = function (easing) {\r\n this.style[style.transitionTimingFunction] = easing;\r\n this.hooks.trigger(this.hooks.eventTypes.timeFunction, easing);\r\n };\r\n Transition.prototype.transitionProperty = function () {\r\n this.style[style.transitionProperty] = style.transform;\r\n };\r\n Transition.prototype.move = function (startPoint, endPoint, time, easingFn) {\r\n this.setPending(time > 0);\r\n this.transitionTimingFunction(easingFn);\r\n this.transitionProperty();\r\n this.transitionTime(time);\r\n this.translate(endPoint);\r\n var isRealtimeProbeType = this.options.probeType === 3 /* Realtime */;\r\n if (time && isRealtimeProbeType) {\r\n this.startProbe(startPoint, endPoint);\r\n }\r\n // if we change content's transformY in a tick\r\n // such as: 0 -> 50px -> 0\r\n // transitionend will not be triggered\r\n // so we forceupdate by reflow\r\n if (!time) {\r\n this._reflow = this.content.offsetHeight;\r\n if (isRealtimeProbeType) {\r\n this.hooks.trigger(this.hooks.eventTypes.move, endPoint);\r\n }\r\n this.hooks.trigger(this.hooks.eventTypes.end, endPoint);\r\n }\r\n };\r\n Transition.prototype.doStop = function () {\r\n var pending = this.pending;\r\n this.setForceStopped(false);\r\n this.setCallStop(false);\r\n // still in transition\r\n if (pending) {\r\n this.setPending(false);\r\n cancelAnimationFrame(this.timer);\r\n var _a = this.translater.getComputedPosition(), x = _a.x, y = _a.y;\r\n this.transitionTime();\r\n this.translate({ x: x, y: y });\r\n this.setForceStopped(true);\r\n this.setCallStop(true);\r\n this.hooks.trigger(this.hooks.eventTypes.forceStop, { x: x, y: y });\r\n }\r\n return pending;\r\n };\r\n Transition.prototype.stop = function () {\r\n var stopFromTransition = this.doStop();\r\n if (stopFromTransition) {\r\n this.hooks.trigger(this.hooks.eventTypes.callStop);\r\n }\r\n };\r\n return Transition;\r\n}(Base));\n\nvar Animation = /** @class */ (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Animation.prototype.move = function (startPoint, endPoint, time, easingFn) {\r\n // time is 0\r\n if (!time) {\r\n this.translate(endPoint);\r\n if (this.options.probeType === 3 /* Realtime */) {\r\n this.hooks.trigger(this.hooks.eventTypes.move, endPoint);\r\n }\r\n this.hooks.trigger(this.hooks.eventTypes.end, endPoint);\r\n return;\r\n }\r\n this.animate(startPoint, endPoint, time, easingFn);\r\n };\r\n Animation.prototype.animate = function (startPoint, endPoint, duration, easingFn) {\r\n var _this = this;\r\n var startTime = getNow();\r\n var destTime = startTime + duration;\r\n var isRealtimeProbeType = this.options.probeType === 3 /* Realtime */;\r\n var step = function () {\r\n var now = getNow();\r\n // js animation end\r\n if (now >= destTime) {\r\n _this.translate(endPoint);\r\n if (isRealtimeProbeType) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.move, endPoint);\r\n }\r\n _this.hooks.trigger(_this.hooks.eventTypes.end, endPoint);\r\n return;\r\n }\r\n now = (now - startTime) / duration;\r\n var easing = easingFn(now);\r\n var newPoint = {};\r\n Object.keys(endPoint).forEach(function (key) {\r\n var startValue = startPoint[key];\r\n var endValue = endPoint[key];\r\n newPoint[key] = (endValue - startValue) * easing + startValue;\r\n });\r\n _this.translate(newPoint);\r\n if (isRealtimeProbeType) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.move, newPoint);\r\n }\r\n if (_this.pending) {\r\n _this.timer = requestAnimationFrame(step);\r\n }\r\n // call bs.stop() should not dispatch end hook again.\r\n // forceStop hook will do this.\r\n /* istanbul ignore if */\r\n if (!_this.pending) {\r\n if (_this.callStopWhenPending) {\r\n _this.callStopWhenPending = false;\r\n }\r\n else {\r\n // raf ends should dispatch end hook.\r\n _this.hooks.trigger(_this.hooks.eventTypes.end, endPoint);\r\n }\r\n }\r\n };\r\n this.setPending(true);\r\n // when manually call bs.stop(), then bs.scrollTo()\r\n // we should reset callStopWhenPending to dispatch end hook\r\n if (this.callStopWhenPending) {\r\n this.setCallStop(false);\r\n }\r\n cancelAnimationFrame(this.timer);\r\n step();\r\n };\r\n Animation.prototype.doStop = function () {\r\n var pending = this.pending;\r\n this.setForceStopped(false);\r\n this.setCallStop(false);\r\n // still in requestFrameAnimation\r\n if (pending) {\r\n this.setPending(false);\r\n cancelAnimationFrame(this.timer);\r\n var pos = this.translater.getComputedPosition();\r\n this.setForceStopped(true);\r\n this.setCallStop(true);\r\n this.hooks.trigger(this.hooks.eventTypes.forceStop, pos);\r\n }\r\n return pending;\r\n };\r\n Animation.prototype.stop = function () {\r\n var stopFromAnimation = this.doStop();\r\n if (stopFromAnimation) {\r\n this.hooks.trigger(this.hooks.eventTypes.callStop);\r\n }\r\n };\r\n return Animation;\r\n}(Base));\n\nfunction createAnimater(element, translater, options) {\r\n var useTransition = options.useTransition;\r\n var animaterOptions = {};\r\n Object.defineProperty(animaterOptions, 'probeType', {\r\n enumerable: true,\r\n configurable: false,\r\n get: function () {\r\n return options.probeType;\r\n },\r\n });\r\n if (useTransition) {\r\n return new Transition(element, translater, animaterOptions);\r\n }\r\n else {\r\n return new Animation(element, translater, animaterOptions);\r\n }\r\n}\n\nvar Behavior = /** @class */ (function () {\r\n function Behavior(wrapper, content, options) {\r\n this.wrapper = wrapper;\r\n this.options = options;\r\n this.hooks = new EventEmitter([\r\n 'beforeComputeBoundary',\r\n 'computeBoundary',\r\n 'momentum',\r\n 'end',\r\n 'ignoreHasScroll'\r\n ]);\r\n this.refresh(content);\r\n }\r\n Behavior.prototype.start = function () {\r\n this.dist = 0;\r\n this.setMovingDirection(0 /* Default */);\r\n this.setDirection(0 /* Default */);\r\n };\r\n Behavior.prototype.move = function (delta) {\r\n delta = this.hasScroll ? delta : 0;\r\n this.setMovingDirection(delta);\r\n return this.performDampingAlgorithm(delta, this.options.outOfBoundaryDampingFactor);\r\n };\r\n Behavior.prototype.setMovingDirection = function (delta) {\r\n this.movingDirection =\r\n delta > 0\r\n ? -1 /* Negative */\r\n : delta < 0\r\n ? 1 /* Positive */\r\n : 0 /* Default */;\r\n };\r\n Behavior.prototype.setDirection = function (delta) {\r\n this.direction =\r\n delta > 0\r\n ? -1 /* Negative */\r\n : delta < 0\r\n ? 1 /* Positive */\r\n : 0 /* Default */;\r\n };\r\n Behavior.prototype.performDampingAlgorithm = function (delta, dampingFactor) {\r\n var newPos = this.currentPos + delta;\r\n // Slow down or stop if outside of the boundaries\r\n if (newPos > this.minScrollPos || newPos < this.maxScrollPos) {\r\n if ((newPos > this.minScrollPos && this.options.bounces[0]) ||\r\n (newPos < this.maxScrollPos && this.options.bounces[1])) {\r\n newPos = this.currentPos + delta * dampingFactor;\r\n }\r\n else {\r\n newPos =\r\n newPos > this.minScrollPos ? this.minScrollPos : this.maxScrollPos;\r\n }\r\n }\r\n return newPos;\r\n };\r\n Behavior.prototype.end = function (duration) {\r\n var momentumInfo = {\r\n duration: 0\r\n };\r\n var absDist = Math.abs(this.currentPos - this.startPos);\r\n // start momentum animation if needed\r\n if (this.options.momentum &&\r\n duration < this.options.momentumLimitTime &&\r\n absDist > this.options.momentumLimitDistance) {\r\n var wrapperSize = (this.direction === -1 /* Negative */ && this.options.bounces[0]) ||\r\n (this.direction === 1 /* Positive */ && this.options.bounces[1])\r\n ? this.wrapperSize\r\n : 0;\r\n momentumInfo = this.hasScroll\r\n ? this.momentum(this.currentPos, this.startPos, duration, this.maxScrollPos, this.minScrollPos, wrapperSize, this.options)\r\n : { destination: this.currentPos, duration: 0 };\r\n }\r\n else {\r\n this.hooks.trigger(this.hooks.eventTypes.end, momentumInfo);\r\n }\r\n return momentumInfo;\r\n };\r\n Behavior.prototype.momentum = function (current, start, time, lowerMargin, upperMargin, wrapperSize, options) {\r\n if (options === void 0) { options = this.options; }\r\n var distance = current - start;\r\n var speed = Math.abs(distance) / time;\r\n var deceleration = options.deceleration, swipeBounceTime = options.swipeBounceTime, swipeTime = options.swipeTime;\r\n var duration = Math.min(swipeTime, (speed * 2) / deceleration);\r\n var momentumData = {\r\n destination: current + ((speed * speed) / deceleration) * (distance < 0 ? -1 : 1),\r\n duration: duration,\r\n rate: 15\r\n };\r\n this.hooks.trigger(this.hooks.eventTypes.momentum, momentumData, distance);\r\n if (momentumData.destination < lowerMargin) {\r\n momentumData.destination = wrapperSize\r\n ? Math.max(lowerMargin - wrapperSize / 4, lowerMargin - (wrapperSize / momentumData.rate) * speed)\r\n : lowerMargin;\r\n momentumData.duration = swipeBounceTime;\r\n }\r\n else if (momentumData.destination > upperMargin) {\r\n momentumData.destination = wrapperSize\r\n ? Math.min(upperMargin + wrapperSize / 4, upperMargin + (wrapperSize / momentumData.rate) * speed)\r\n : upperMargin;\r\n momentumData.duration = swipeBounceTime;\r\n }\r\n momentumData.destination = Math.round(momentumData.destination);\r\n return momentumData;\r\n };\r\n Behavior.prototype.updateDirection = function () {\r\n var absDist = this.currentPos - this.absStartPos;\r\n this.setDirection(absDist);\r\n };\r\n Behavior.prototype.refresh = function (content) {\r\n var _a = this.options.rect, size = _a.size, position = _a.position;\r\n var isWrapperStatic = window.getComputedStyle(this.wrapper, null).position === 'static';\r\n // Force reflow\r\n var wrapperRect = getRect(this.wrapper);\r\n // use client is more fair than offset\r\n this.wrapperSize = this.wrapper[size === 'width' ? 'clientWidth' : 'clientHeight'];\r\n this.setContent(content);\r\n var contentRect = getRect(this.content);\r\n this.contentSize = contentRect[size];\r\n this.relativeOffset = contentRect[position];\r\n /* istanbul ignore if */\r\n if (isWrapperStatic) {\r\n this.relativeOffset -= wrapperRect[position];\r\n }\r\n this.computeBoundary();\r\n this.setDirection(0 /* Default */);\r\n };\r\n Behavior.prototype.setContent = function (content) {\r\n if (content !== this.content) {\r\n this.content = content;\r\n this.resetState();\r\n }\r\n };\r\n Behavior.prototype.resetState = function () {\r\n this.currentPos = 0;\r\n this.startPos = 0;\r\n this.dist = 0;\r\n this.setDirection(0 /* Default */);\r\n this.setMovingDirection(0 /* Default */);\r\n this.resetStartPos();\r\n };\r\n Behavior.prototype.computeBoundary = function () {\r\n this.hooks.trigger(this.hooks.eventTypes.beforeComputeBoundary);\r\n var boundary = {\r\n minScrollPos: 0,\r\n maxScrollPos: this.wrapperSize - this.contentSize\r\n };\r\n if (boundary.maxScrollPos < 0) {\r\n boundary.maxScrollPos -= this.relativeOffset;\r\n if (this.options.specifiedIndexAsContent === 0) {\r\n boundary.minScrollPos = -this.relativeOffset;\r\n }\r\n }\r\n this.hooks.trigger(this.hooks.eventTypes.computeBoundary, boundary);\r\n this.minScrollPos = boundary.minScrollPos;\r\n this.maxScrollPos = boundary.maxScrollPos;\r\n this.hasScroll =\r\n this.options.scrollable && this.maxScrollPos < this.minScrollPos;\r\n if (!this.hasScroll && this.minScrollPos < this.maxScrollPos) {\r\n this.maxScrollPos = this.minScrollPos;\r\n this.contentSize = this.wrapperSize;\r\n }\r\n };\r\n Behavior.prototype.updatePosition = function (pos) {\r\n this.currentPos = pos;\r\n };\r\n Behavior.prototype.getCurrentPos = function () {\r\n return this.currentPos;\r\n };\r\n Behavior.prototype.checkInBoundary = function () {\r\n var position = this.adjustPosition(this.currentPos);\r\n var inBoundary = position === this.getCurrentPos();\r\n return {\r\n position: position,\r\n inBoundary: inBoundary\r\n };\r\n };\r\n // adjust position when out of boundary\r\n Behavior.prototype.adjustPosition = function (pos) {\r\n if (!this.hasScroll &&\r\n !this.hooks.trigger(this.hooks.eventTypes.ignoreHasScroll)) {\r\n pos = this.minScrollPos;\r\n }\r\n else if (pos > this.minScrollPos) {\r\n pos = this.minScrollPos;\r\n }\r\n else if (pos < this.maxScrollPos) {\r\n pos = this.maxScrollPos;\r\n }\r\n return pos;\r\n };\r\n Behavior.prototype.updateStartPos = function () {\r\n this.startPos = this.currentPos;\r\n };\r\n Behavior.prototype.updateAbsStartPos = function () {\r\n this.absStartPos = this.currentPos;\r\n };\r\n Behavior.prototype.resetStartPos = function () {\r\n this.updateStartPos();\r\n this.updateAbsStartPos();\r\n };\r\n Behavior.prototype.getAbsDist = function (delta) {\r\n this.dist += delta;\r\n return Math.abs(this.dist);\r\n };\r\n Behavior.prototype.destroy = function () {\r\n this.hooks.destroy();\r\n };\r\n return Behavior;\r\n}());\n\nvar _a, _b, _c, _d;\r\nvar PassthroughHandlers = (_a = {},\r\n _a[\"yes\" /* Yes */] = function (e) {\r\n return true;\r\n },\r\n _a[\"no\" /* No */] = function (e) {\r\n e.preventDefault();\r\n return false;\r\n },\r\n _a);\r\nvar DirectionMap = (_b = {},\r\n _b[\"horizontal\" /* Horizontal */] = (_c = {},\r\n _c[\"yes\" /* Yes */] = \"horizontal\" /* Horizontal */,\r\n _c[\"no\" /* No */] = \"vertical\" /* Vertical */,\r\n _c),\r\n _b[\"vertical\" /* Vertical */] = (_d = {},\r\n _d[\"yes\" /* Yes */] = \"vertical\" /* Vertical */,\r\n _d[\"no\" /* No */] = \"horizontal\" /* Horizontal */,\r\n _d),\r\n _b);\r\nvar DirectionLockAction = /** @class */ (function () {\r\n function DirectionLockAction(directionLockThreshold, freeScroll, eventPassthrough) {\r\n this.directionLockThreshold = directionLockThreshold;\r\n this.freeScroll = freeScroll;\r\n this.eventPassthrough = eventPassthrough;\r\n this.reset();\r\n }\r\n DirectionLockAction.prototype.reset = function () {\r\n this.directionLocked = \"\" /* Default */;\r\n };\r\n DirectionLockAction.prototype.checkMovingDirection = function (absDistX, absDistY, e) {\r\n this.computeDirectionLock(absDistX, absDistY);\r\n return this.handleEventPassthrough(e);\r\n };\r\n DirectionLockAction.prototype.adjustDelta = function (deltaX, deltaY) {\r\n if (this.directionLocked === \"horizontal\" /* Horizontal */) {\r\n deltaY = 0;\r\n }\r\n else if (this.directionLocked === \"vertical\" /* Vertical */) {\r\n deltaX = 0;\r\n }\r\n return {\r\n deltaX: deltaX,\r\n deltaY: deltaY\r\n };\r\n };\r\n DirectionLockAction.prototype.computeDirectionLock = function (absDistX, absDistY) {\r\n // If you are scrolling in one direction, lock it\r\n if (this.directionLocked === \"\" /* Default */ && !this.freeScroll) {\r\n if (absDistX > absDistY + this.directionLockThreshold) {\r\n this.directionLocked = \"horizontal\" /* Horizontal */; // lock horizontally\r\n }\r\n else if (absDistY >= absDistX + this.directionLockThreshold) {\r\n this.directionLocked = \"vertical\" /* Vertical */; // lock vertically\r\n }\r\n else {\r\n this.directionLocked = \"none\" /* None */; // no lock\r\n }\r\n }\r\n };\r\n DirectionLockAction.prototype.handleEventPassthrough = function (e) {\r\n var handleMap = DirectionMap[this.directionLocked];\r\n if (handleMap) {\r\n if (this.eventPassthrough === handleMap[\"yes\" /* Yes */]) {\r\n return PassthroughHandlers[\"yes\" /* Yes */](e);\r\n }\r\n else if (this.eventPassthrough === handleMap[\"no\" /* No */]) {\r\n return PassthroughHandlers[\"no\" /* No */](e);\r\n }\r\n }\r\n return false;\r\n };\r\n return DirectionLockAction;\r\n}());\n\nvar applyQuadrantTransformation = function (deltaX, deltaY, quadrant) {\r\n if (quadrant === 2 /* Second */) {\r\n return [deltaY, -deltaX];\r\n }\r\n else if (quadrant === 3 /* Third */) {\r\n return [-deltaX, -deltaY];\r\n }\r\n else if (quadrant === 4 /* Forth */) {\r\n return [-deltaY, deltaX];\r\n }\r\n else {\r\n return [deltaX, deltaY];\r\n }\r\n};\r\nvar ScrollerActions = /** @class */ (function () {\r\n function ScrollerActions(scrollBehaviorX, scrollBehaviorY, actionsHandler, animater, options) {\r\n this.hooks = new EventEmitter([\r\n 'start',\r\n 'beforeMove',\r\n 'scrollStart',\r\n 'scroll',\r\n 'beforeEnd',\r\n 'end',\r\n 'scrollEnd',\r\n 'contentNotMoved',\r\n 'detectMovingDirection',\r\n 'coordinateTransformation',\r\n ]);\r\n this.scrollBehaviorX = scrollBehaviorX;\r\n this.scrollBehaviorY = scrollBehaviorY;\r\n this.actionsHandler = actionsHandler;\r\n this.animater = animater;\r\n this.options = options;\r\n this.directionLockAction = new DirectionLockAction(options.directionLockThreshold, options.freeScroll, options.eventPassthrough);\r\n this.enabled = true;\r\n this.bindActionsHandler();\r\n }\r\n ScrollerActions.prototype.bindActionsHandler = function () {\r\n var _this = this;\r\n // [mouse|touch]start event\r\n this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.start, function (e) {\r\n if (!_this.enabled)\r\n return true;\r\n return _this.handleStart(e);\r\n });\r\n // [mouse|touch]move event\r\n this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.move, function (_a) {\r\n var deltaX = _a.deltaX, deltaY = _a.deltaY, e = _a.e;\r\n if (!_this.enabled)\r\n return true;\r\n var _b = applyQuadrantTransformation(deltaX, deltaY, _this.options.quadrant), transformateDeltaX = _b[0], transformateDeltaY = _b[1];\r\n var transformateDeltaData = {\r\n deltaX: transformateDeltaX,\r\n deltaY: transformateDeltaY,\r\n };\r\n _this.hooks.trigger(_this.hooks.eventTypes.coordinateTransformation, transformateDeltaData);\r\n return _this.handleMove(transformateDeltaData.deltaX, transformateDeltaData.deltaY, e);\r\n });\r\n // [mouse|touch]end event\r\n this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.end, function (e) {\r\n if (!_this.enabled)\r\n return true;\r\n return _this.handleEnd(e);\r\n });\r\n // click\r\n this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.click, function (e) {\r\n // handle native click event\r\n if (_this.enabled && !e._constructed) {\r\n _this.handleClick(e);\r\n }\r\n });\r\n };\r\n ScrollerActions.prototype.handleStart = function (e) {\r\n var timestamp = getNow();\r\n this.fingerMoved = false;\r\n this.contentMoved = false;\r\n this.startTime = timestamp;\r\n this.directionLockAction.reset();\r\n this.scrollBehaviorX.start();\r\n this.scrollBehaviorY.start();\r\n // force stopping last transition or animation\r\n this.animater.doStop();\r\n this.scrollBehaviorX.resetStartPos();\r\n this.scrollBehaviorY.resetStartPos();\r\n this.hooks.trigger(this.hooks.eventTypes.start, e);\r\n };\r\n ScrollerActions.prototype.handleMove = function (deltaX, deltaY, e) {\r\n if (this.hooks.trigger(this.hooks.eventTypes.beforeMove, e)) {\r\n return;\r\n }\r\n var absDistX = this.scrollBehaviorX.getAbsDist(deltaX);\r\n var absDistY = this.scrollBehaviorY.getAbsDist(deltaY);\r\n var timestamp = getNow();\r\n // We need to move at least momentumLimitDistance pixels\r\n // for the scrolling to initiate\r\n if (this.checkMomentum(absDistX, absDistY, timestamp)) {\r\n return true;\r\n }\r\n if (this.directionLockAction.checkMovingDirection(absDistX, absDistY, e)) {\r\n this.actionsHandler.setInitiated();\r\n return true;\r\n }\r\n var delta = this.directionLockAction.adjustDelta(deltaX, deltaY);\r\n var prevX = this.scrollBehaviorX.getCurrentPos();\r\n var newX = this.scrollBehaviorX.move(delta.deltaX);\r\n var prevY = this.scrollBehaviorY.getCurrentPos();\r\n var newY = this.scrollBehaviorY.move(delta.deltaY);\r\n if (this.hooks.trigger(this.hooks.eventTypes.detectMovingDirection)) {\r\n return;\r\n }\r\n if (!this.fingerMoved) {\r\n this.fingerMoved = true;\r\n }\r\n var positionChanged = newX !== prevX || newY !== prevY;\r\n if (!this.contentMoved && !positionChanged) {\r\n this.hooks.trigger(this.hooks.eventTypes.contentNotMoved);\r\n }\r\n if (!this.contentMoved && positionChanged) {\r\n this.contentMoved = true;\r\n this.hooks.trigger(this.hooks.eventTypes.scrollStart);\r\n }\r\n if (this.contentMoved && positionChanged) {\r\n this.animater.translate({\r\n x: newX,\r\n y: newY,\r\n });\r\n this.dispatchScroll(timestamp);\r\n }\r\n };\r\n ScrollerActions.prototype.dispatchScroll = function (timestamp) {\r\n // dispatch scroll in interval time\r\n if (timestamp - this.startTime > this.options.momentumLimitTime) {\r\n // refresh time and starting position to initiate a momentum\r\n this.startTime = timestamp;\r\n this.scrollBehaviorX.updateStartPos();\r\n this.scrollBehaviorY.updateStartPos();\r\n if (this.options.probeType === 1 /* Throttle */) {\r\n this.hooks.trigger(this.hooks.eventTypes.scroll, this.getCurrentPos());\r\n }\r\n }\r\n // dispatch scroll all the time\r\n if (this.options.probeType > 1 /* Throttle */) {\r\n this.hooks.trigger(this.hooks.eventTypes.scroll, this.getCurrentPos());\r\n }\r\n };\r\n ScrollerActions.prototype.checkMomentum = function (absDistX, absDistY, timestamp) {\r\n return (timestamp - this.endTime > this.options.momentumLimitTime &&\r\n absDistY < this.options.momentumLimitDistance &&\r\n absDistX < this.options.momentumLimitDistance);\r\n };\r\n ScrollerActions.prototype.handleEnd = function (e) {\r\n if (this.hooks.trigger(this.hooks.eventTypes.beforeEnd, e)) {\r\n return;\r\n }\r\n var currentPos = this.getCurrentPos();\r\n this.scrollBehaviorX.updateDirection();\r\n this.scrollBehaviorY.updateDirection();\r\n if (this.hooks.trigger(this.hooks.eventTypes.end, e, currentPos)) {\r\n return true;\r\n }\r\n currentPos = this.ensureIntegerPos(currentPos);\r\n this.animater.translate(currentPos);\r\n this.endTime = getNow();\r\n var duration = this.endTime - this.startTime;\r\n this.hooks.trigger(this.hooks.eventTypes.scrollEnd, currentPos, duration);\r\n };\r\n ScrollerActions.prototype.ensureIntegerPos = function (currentPos) {\r\n this.ensuringInteger = true;\r\n var x = currentPos.x, y = currentPos.y;\r\n var _a = this.scrollBehaviorX, minScrollPosX = _a.minScrollPos, maxScrollPosX = _a.maxScrollPos;\r\n var _b = this.scrollBehaviorY, minScrollPosY = _b.minScrollPos, maxScrollPosY = _b.maxScrollPos;\r\n x = x > 0 ? Math.ceil(x) : Math.floor(x);\r\n y = y > 0 ? Math.ceil(y) : Math.floor(y);\r\n x = between(x, maxScrollPosX, minScrollPosX);\r\n y = between(y, maxScrollPosY, minScrollPosY);\r\n return { x: x, y: y };\r\n };\r\n ScrollerActions.prototype.handleClick = function (e) {\r\n if (!preventDefaultExceptionFn(e.target, this.options.preventDefaultException)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n };\r\n ScrollerActions.prototype.getCurrentPos = function () {\r\n return {\r\n x: this.scrollBehaviorX.getCurrentPos(),\r\n y: this.scrollBehaviorY.getCurrentPos(),\r\n };\r\n };\r\n ScrollerActions.prototype.refresh = function () {\r\n this.endTime = 0;\r\n };\r\n ScrollerActions.prototype.destroy = function () {\r\n this.hooks.destroy();\r\n };\r\n return ScrollerActions;\r\n}());\n\nfunction createActionsHandlerOptions(bsOptions) {\r\n var options = [\r\n 'click',\r\n 'bindToWrapper',\r\n 'disableMouse',\r\n 'disableTouch',\r\n 'preventDefault',\r\n 'stopPropagation',\r\n 'tagException',\r\n 'preventDefaultException',\r\n 'autoEndDistance',\r\n ].reduce(function (prev, cur) {\r\n prev[cur] = bsOptions[cur];\r\n return prev;\r\n }, {});\r\n return options;\r\n}\r\nfunction createBehaviorOptions(bsOptions, extraProp, bounces, rect) {\r\n var options = [\r\n 'momentum',\r\n 'momentumLimitTime',\r\n 'momentumLimitDistance',\r\n 'deceleration',\r\n 'swipeBounceTime',\r\n 'swipeTime',\r\n 'outOfBoundaryDampingFactor',\r\n 'specifiedIndexAsContent',\r\n ].reduce(function (prev, cur) {\r\n prev[cur] = bsOptions[cur];\r\n return prev;\r\n }, {});\r\n // add extra property\r\n options.scrollable = !!bsOptions[extraProp];\r\n options.bounces = bounces;\r\n options.rect = rect;\r\n return options;\r\n}\n\nfunction bubbling(source, target, events) {\r\n events.forEach(function (event) {\r\n var sourceEvent;\r\n var targetEvent;\r\n if (typeof event === 'string') {\r\n sourceEvent = targetEvent = event;\r\n }\r\n else {\r\n sourceEvent = event.source;\r\n targetEvent = event.target;\r\n }\r\n source.on(sourceEvent, 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 target.trigger.apply(target, __spreadArrays([targetEvent], args));\r\n });\r\n });\r\n}\n\nfunction isSamePoint(startPoint, endPoint) {\r\n // keys of startPoint and endPoint should be equal\r\n var keys = Object.keys(startPoint);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n if (startPoint[key] !== endPoint[key])\r\n return false;\r\n }\r\n return true;\r\n}\n\nvar MIN_SCROLL_DISTANCE = 1;\r\nvar Scroller = /** @class */ (function () {\r\n function Scroller(wrapper, content, options) {\r\n this.wrapper = wrapper;\r\n this.content = content;\r\n this.resizeTimeout = 0;\r\n this.hooks = new EventEmitter([\r\n 'beforeStart',\r\n 'beforeMove',\r\n 'beforeScrollStart',\r\n 'scrollStart',\r\n 'scroll',\r\n 'beforeEnd',\r\n 'scrollEnd',\r\n 'resize',\r\n 'touchEnd',\r\n 'end',\r\n 'flick',\r\n 'scrollCancel',\r\n 'momentum',\r\n 'scrollTo',\r\n 'minDistanceScroll',\r\n 'scrollToElement',\r\n 'beforeRefresh',\r\n ]);\r\n this.options = options;\r\n var _a = this.options.bounce, left = _a.left, right = _a.right, top = _a.top, bottom = _a.bottom;\r\n // direction X\r\n this.scrollBehaviorX = new Behavior(wrapper, content, createBehaviorOptions(options, 'scrollX', [left, right], {\r\n size: 'width',\r\n position: 'left',\r\n }));\r\n // direction Y\r\n this.scrollBehaviorY = new Behavior(wrapper, content, createBehaviorOptions(options, 'scrollY', [top, bottom], {\r\n size: 'height',\r\n position: 'top',\r\n }));\r\n this.translater = new Translater(this.content);\r\n this.animater = createAnimater(this.content, this.translater, this.options);\r\n this.actionsHandler = new ActionsHandler(this.options.bindToTarget ? this.content : wrapper, createActionsHandlerOptions(this.options));\r\n this.actions = new ScrollerActions(this.scrollBehaviorX, this.scrollBehaviorY, this.actionsHandler, this.animater, this.options);\r\n var resizeHandler = this.resize.bind(this);\r\n this.resizeRegister = new EventRegister(window, [\r\n {\r\n name: 'orientationchange',\r\n handler: resizeHandler,\r\n },\r\n {\r\n name: 'resize',\r\n handler: resizeHandler,\r\n },\r\n ]);\r\n this.registerTransitionEnd();\r\n this.init();\r\n }\r\n Scroller.prototype.init = function () {\r\n var _this = this;\r\n this.bindTranslater();\r\n this.bindAnimater();\r\n this.bindActions();\r\n // enable pointer events when scrolling ends\r\n this.hooks.on(this.hooks.eventTypes.scrollEnd, function () {\r\n _this.togglePointerEvents(true);\r\n });\r\n };\r\n Scroller.prototype.registerTransitionEnd = function () {\r\n this.transitionEndRegister = new EventRegister(this.content, [\r\n {\r\n name: style.transitionEnd,\r\n handler: this.transitionEnd.bind(this),\r\n },\r\n ]);\r\n };\r\n Scroller.prototype.bindTranslater = function () {\r\n var _this = this;\r\n var hooks = this.translater.hooks;\r\n hooks.on(hooks.eventTypes.beforeTranslate, function (transformStyle) {\r\n if (_this.options.translateZ) {\r\n transformStyle.push(_this.options.translateZ);\r\n }\r\n });\r\n // disable pointer events when scrolling\r\n hooks.on(hooks.eventTypes.translate, function (pos) {\r\n var prevPos = _this.getCurrentPos();\r\n _this.updatePositions(pos);\r\n // scrollEnd will dispatch when scroll is force stopping in touchstart handler\r\n // so in touchend handler, don't toggle pointer-events\r\n if (_this.actions.ensuringInteger === true) {\r\n _this.actions.ensuringInteger = false;\r\n return;\r\n }\r\n // a valid translate\r\n if (pos.x !== prevPos.x || pos.y !== prevPos.y) {\r\n _this.togglePointerEvents(false);\r\n }\r\n });\r\n };\r\n Scroller.prototype.bindAnimater = function () {\r\n var _this = this;\r\n // reset position\r\n this.animater.hooks.on(this.animater.hooks.eventTypes.end, function (pos) {\r\n if (!_this.resetPosition(_this.options.bounceTime)) {\r\n _this.animater.setPending(false);\r\n _this.hooks.trigger(_this.hooks.eventTypes.scrollEnd, pos);\r\n }\r\n });\r\n bubbling(this.animater.hooks, this.hooks, [\r\n {\r\n source: this.animater.hooks.eventTypes.move,\r\n target: this.hooks.eventTypes.scroll,\r\n },\r\n {\r\n source: this.animater.hooks.eventTypes.forceStop,\r\n target: this.hooks.eventTypes.scrollEnd,\r\n },\r\n ]);\r\n };\r\n Scroller.prototype.bindActions = function () {\r\n var _this = this;\r\n var actions = this.actions;\r\n bubbling(actions.hooks, this.hooks, [\r\n {\r\n source: actions.hooks.eventTypes.start,\r\n target: this.hooks.eventTypes.beforeStart,\r\n },\r\n {\r\n source: actions.hooks.eventTypes.start,\r\n target: this.hooks.eventTypes.beforeScrollStart,\r\n },\r\n {\r\n source: actions.hooks.eventTypes.beforeMove,\r\n target: this.hooks.eventTypes.beforeMove,\r\n },\r\n {\r\n source: actions.hooks.eventTypes.scrollStart,\r\n target: this.hooks.eventTypes.scrollStart,\r\n },\r\n {\r\n source: actions.hooks.eventTypes.scroll,\r\n target: this.hooks.eventTypes.scroll,\r\n },\r\n {\r\n source: actions.hooks.eventTypes.beforeEnd,\r\n target: this.hooks.eventTypes.beforeEnd,\r\n },\r\n ]);\r\n actions.hooks.on(actions.hooks.eventTypes.end, function (e, pos) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.touchEnd, pos);\r\n if (_this.hooks.trigger(_this.hooks.eventTypes.end, pos)) {\r\n return true;\r\n }\r\n // check if it is a click operation\r\n if (!actions.fingerMoved) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.scrollCancel);\r\n if (_this.checkClick(e)) {\r\n return true;\r\n }\r\n }\r\n // reset if we are outside of the boundaries\r\n if (_this.resetPosition(_this.options.bounceTime, ease.bounce)) {\r\n _this.animater.setForceStopped(false);\r\n return true;\r\n }\r\n });\r\n actions.hooks.on(actions.hooks.eventTypes.scrollEnd, function (pos, duration) {\r\n var deltaX = Math.abs(pos.x - _this.scrollBehaviorX.startPos);\r\n var deltaY = Math.abs(pos.y - _this.scrollBehaviorY.startPos);\r\n if (_this.checkFlick(duration, deltaX, deltaY)) {\r\n _this.animater.setForceStopped(false);\r\n _this.hooks.trigger(_this.hooks.eventTypes.flick);\r\n return;\r\n }\r\n if (_this.momentum(pos, duration)) {\r\n _this.animater.setForceStopped(false);\r\n return;\r\n }\r\n if (actions.contentMoved) {\r\n _this.hooks.trigger(_this.hooks.eventTypes.scrollEnd, pos);\r\n }\r\n if (_this.animater.forceStopped) {\r\n _this.animater.setForceStopped(false);\r\n }\r\n });\r\n };\r\n Scroller.prototype.checkFlick = function (duration, deltaX, deltaY) {\r\n var flickMinMovingDistance = 1; // distinguish flick from click\r\n if (this.hooks.events.flick.length > 1 &&\r\n duration < this.options.flickLimitTime &&\r\n deltaX < this.options.flickLimitDistance &&\r\n deltaY < this.options.flickLimitDistance &&\r\n (deltaY > flickMinMovingDistance || deltaX > flickMinMovingDistance)) {\r\n return true;\r\n }\r\n };\r\n Scroller.prototype.momentum = function (pos, duration) {\r\n var meta = {\r\n time: 0,\r\n easing: ease.swiper,\r\n newX: pos.x,\r\n newY: pos.y,\r\n };\r\n // start momentum animation if needed\r\n var momentumX = this.scrollBehaviorX.end(duration);\r\n var momentumY = this.scrollBehaviorY.end(duration);\r\n meta.newX = isUndef(momentumX.destination)\r\n ? meta.newX\r\n : momentumX.destination;\r\n meta.newY = isUndef(momentumY.destination)\r\n ? meta.newY\r\n : momentumY.destination;\r\n meta.time = Math.max(momentumX.duration, momentumY.duration);\r\n this.hooks.trigger(this.hooks.eventTypes.momentum, meta, this);\r\n // when x or y changed, do momentum animation now!\r\n if (meta.newX !== pos.x || meta.newY !== pos.y) {\r\n // change easing function when scroller goes out of the boundaries\r\n if (meta.newX > this.scrollBehaviorX.minScrollPos ||\r\n meta.newX < this.scrollBehaviorX.maxScrollPos ||\r\n meta.newY > this.scrollBehaviorY.minScrollPos ||\r\n meta.newY < this.scrollBehaviorY.maxScrollPos) {\r\n meta.easing = ease.swipeBounce;\r\n }\r\n this.scrollTo(meta.newX, meta.newY, meta.time, meta.easing);\r\n return true;\r\n }\r\n };\r\n Scroller.prototype.checkClick = function (e) {\r\n var cancelable = {\r\n preventClick: this.animater.forceStopped,\r\n };\r\n // we scrolled less than momentumLimitDistance pixels\r\n if (this.hooks.trigger(this.hooks.eventTypes.checkClick)) {\r\n this.animater.setForceStopped(false);\r\n return true;\r\n }\r\n if (!cancelable.preventClick) {\r\n var _dblclick = this.options.dblclick;\r\n var dblclickTrigged = false;\r\n if (_dblclick && this.lastClickTime) {\r\n var _a = _dblclick.delay, delay = _a === void 0 ? 300 : _a;\r\n if (getNow() - this.lastClickTime < delay) {\r\n dblclickTrigged = true;\r\n dblclick(e);\r\n }\r\n }\r\n if (this.options.tap) {\r\n tap(e, this.options.tap);\r\n }\r\n if (this.options.click &&\r\n !preventDefaultExceptionFn(e.target, this.options.preventDefaultException)) {\r\n click(e);\r\n }\r\n this.lastClickTime = dblclickTrigged ? null : getNow();\r\n return true;\r\n }\r\n return false;\r\n };\r\n Scroller.prototype.resize = function () {\r\n var _this = this;\r\n if (!this.actions.enabled) {\r\n return;\r\n }\r\n // fix a scroll problem under Android condition\r\n /* istanbul ignore if */\r\n if (isAndroid) {\r\n this.wrapper.scrollTop = 0;\r\n }\r\n clearTimeout(this.resizeTimeout);\r\n this.resizeTimeout = window.setTimeout(function () {\r\n _this.hooks.trigger(_this.hooks.eventTypes.resize);\r\n }, this.options.resizePolling);\r\n };\r\n /* istanbul ignore next */\r\n Scroller.prototype.transitionEnd = function (e) {\r\n if (e.target !== this.content || !this.animater.pending) {\r\n return;\r\n }\r\n var animater = this.animater;\r\n animater.transitionTime();\r\n if (!this.resetPosition(this.options.bounceTime, ease.bounce)) {\r\n this.animater.setPending(false);\r\n if (this.options.probeType !== 3 /* Realtime */) {\r\n this.hooks.trigger(this.hooks.eventTypes.scrollEnd, this.getCurrentPos());\r\n }\r\n }\r\n };\r\n Scroller.prototype.togglePointerEvents = function (enabled) {\r\n if (enabled === void 0) { enabled = true; }\r\n var el = this.content.children.length\r\n ? this.content.children\r\n : [this.content];\r\n var pointerEvents = enabled ? 'auto' : 'none';\r\n for (var i = 0; i < el.length; i++) {\r\n var node = el[i];\r\n // ignore BetterScroll instance's wrapper DOM\r\n /* istanbul ignore if */\r\n if (node.isBScrollContainer) {\r\n continue;\r\n }\r\n node.style.pointerEvents = pointerEvents;\r\n }\r\n };\r\n Scroller.prototype.refresh = function (content) {\r\n var contentChanged = this.setContent(content);\r\n this.hooks.trigger(this.hooks.eventTypes.beforeRefresh);\r\n this.scrollBehaviorX.refresh(content);\r\n this.scrollBehaviorY.refresh(content);\r\n if (contentChanged) {\r\n this.translater.setContent(content);\r\n this.animater.setContent(content);\r\n this.transitionEndRegister.destroy();\r\n this.registerTransitionEnd();\r\n if (this.options.bindToTarget) {\r\n this.actionsHandler.setContent(content);\r\n }\r\n }\r\n this.actions.refresh();\r\n this.wrapperOffset = offset(this.wrapper);\r\n };\r\n Scroller.prototype.setContent = function (content) {\r\n var contentChanged = content !== this.content;\r\n if (contentChanged) {\r\n this.content = content;\r\n }\r\n return contentChanged;\r\n };\r\n Scroller.prototype.scrollBy = function (deltaX, deltaY, time, easing) {\r\n if (time === void 0) { time = 0; }\r\n var _a = this.getCurrentPos(), x = _a.x, y = _a.y;\r\n easing = !easing ? ease.bounce : easing;\r\n deltaX += x;\r\n deltaY += y;\r\n this.scrollTo(deltaX, deltaY, time, easing);\r\n };\r\n Scroller.prototype.scrollTo = function (x, y, time, easing, extraTransform) {\r\n if (time === void 0) { time = 0; }\r\n if (easing === void 0) { easing = ease.bounce; }\r\n if (extraTransform === void 0) { extraTransform = {\r\n start: {},\r\n end: {},\r\n }; }\r\n var easingFn = this.options.useTransition ? easing.style : easing.fn;\r\n var currentPos = this.getCurrentPos();\r\n var startPoint = __assign({ x: currentPos.x, y: currentPos.y }, extraTransform.start);\r\n var endPoint = __assign({ x: x,\r\n y: y }, extraTransform.end);\r\n this.hooks.trigger(this.hooks.eventTypes.scrollTo, endPoint);\r\n // it is an useless move\r\n if (isSamePoint(startPoint, endPoint))\r\n return;\r\n var deltaX = Math.abs(endPoint.x - startPoint.x);\r\n var deltaY = Math.abs(endPoint.y - startPoint.y);\r\n // considering of browser compatibility for decimal transform value\r\n // force translating immediately\r\n if (deltaX < MIN_SCROLL_DISTANCE && deltaY < MIN_SCROLL_DISTANCE) {\r\n time = 0;\r\n this.hooks.trigger(this.hooks.eventTypes.minDistanceScroll);\r\n }\r\n this.animater.move(startPoint, endPoint, time, easingFn);\r\n };\r\n Scroller.prototype.scrollToElement = function (el, time, offsetX, offsetY, easing) {\r\n var targetEle = getElement(el);\r\n var pos = offset(targetEle);\r\n var getOffset = function (offset, size, wrapperSize) {\r\n if (typeof offset === 'number') {\r\n return offset;\r\n }\r\n // if offsetX/Y are true we center the element to the screen\r\n return offset ? Math.round(size / 2 - wrapperSize / 2) : 0;\r\n };\r\n offsetX = getOffset(offsetX, targetEle.offsetWidth, this.wrapper.offsetWidth);\r\n offsetY = getOffset(offsetY, targetEle.offsetHeight, this.wrapper.offsetHeight);\r\n var getPos = function (pos, wrapperPos, offset, scrollBehavior) {\r\n pos -= wrapperPos;\r\n pos = scrollBehavior.adjustPosition(pos - offset);\r\n return pos;\r\n };\r\n pos.left = getPos(pos.left, this.wrapperOffset.left, offsetX, this.scrollBehaviorX);\r\n pos.top = getPos(pos.top, this.wrapperOffset.top, offsetY, this.scrollBehaviorY);\r\n if (this.hooks.trigger(this.hooks.eventTypes.scrollToElement, targetEle, pos)) {\r\n return;\r\n }\r\n this.scrollTo(pos.left, pos.top, time, easing);\r\n };\r\n Scroller.prototype.resetPosition = function (time, easing) {\r\n if (time === void 0) { time = 0; }\r\n if (easing === void 0) { easing = ease.bounce; }\r\n var _a = this.scrollBehaviorX.checkInBoundary(), x = _a.position, xInBoundary = _a.inBoundary;\r\n var _b = this.scrollBehaviorY.checkInBoundary(), y = _b.position, yInBoundary = _b.inBoundary;\r\n if (xInBoundary && yInBoundary) {\r\n return false;\r\n }\r\n /* istanbul ignore if */\r\n if (isIOSBadVersion) {\r\n // fix ios 13.4 bouncing\r\n // see it in issues 982\r\n this.reflow();\r\n }\r\n // out of boundary\r\n this.scrollTo(x, y, time, easing);\r\n return true;\r\n };\r\n /* istanbul ignore next */\r\n Scroller.prototype.reflow = function () {\r\n this._reflow = this.content.offsetHeight;\r\n };\r\n Scroller.prototype.updatePositions = function (pos) {\r\n this.scrollBehaviorX.updatePosition(pos.x);\r\n this.scrollBehaviorY.updatePosition(pos.y);\r\n };\r\n Scroller.prototype.getCurrentPos = function () {\r\n return this.actions.getCurrentPos();\r\n };\r\n Scroller.prototype.enable = function () {\r\n this.actions.enabled = true;\r\n };\r\n Scroller.prototype.disable = function () {\r\n cancelAnimationFrame(this.animater.timer);\r\n this.actions.enabled = false;\r\n };\r\n Scroller.prototype.destroy = function () {\r\n var _this = this;\r\n var keys = [\r\n 'resizeRegister',\r\n 'transitionEndRegister',\r\n 'actionsHandler',\r\n 'actions',\r\n 'hooks',\r\n 'animater',\r\n 'translater',\r\n 'scrollBehaviorX',\r\n 'scrollBehaviorY',\r\n ];\r\n keys.forEach(function (key) { return _this[key].destroy(); });\r\n };\r\n return Scroller;\r\n}());\n\nvar BScrollConstructor = /** @class */ (function (_super) {\r\n __extends(BScrollConstructor, _super);\r\n function BScrollConstructor(el, options) {\r\n var _this = _super.call(this, [\r\n 'refresh',\r\n 'contentChanged',\r\n 'enable',\r\n 'disable',\r\n 'beforeScrollStart',\r\n 'scrollStart',\r\n 'scroll',\r\n 'scrollEnd',\r\n 'scrollCancel',\r\n 'touchEnd',\r\n 'flick',\r\n 'destroy'\r\n ]) || this;\r\n var wrapper = getElement(el);\r\n if (!wrapper) {\r\n warn('Can not resolve the wrapper DOM.');\r\n return _this;\r\n }\r\n _this.plugins = {};\r\n _this.options = new OptionsConstructor().merge(options).process();\r\n if (!_this.setContent(wrapper).valid) {\r\n return _this;\r\n }\r\n _this.hooks = new EventEmitter([\r\n 'refresh',\r\n 'enable',\r\n 'disable',\r\n 'destroy',\r\n 'beforeInitialScrollTo',\r\n 'contentChanged'\r\n ]);\r\n _this.init(wrapper);\r\n return _this;\r\n }\r\n BScrollConstructor.use = function (ctor) {\r\n var name = ctor.pluginName;\r\n var installed = BScrollConstructor.plugins.some(function (plugin) { return ctor === plugin.ctor; });\r\n if (installed)\r\n return BScrollConstructor;\r\n if (isUndef(name)) {\r\n warn(\"Plugin Class must specify plugin's name in static property by 'pluginName' field.\");\r\n return BScrollConstructor;\r\n }\r\n BScrollConstructor.pluginsMap[name] = true;\r\n BScrollConstructor.plugins.push({\r\n name: name,\r\n applyOrder: ctor.applyOrder,\r\n ctor: ctor\r\n });\r\n return BScrollConstructor;\r\n };\r\n BScrollConstructor.prototype.setContent = function (wrapper) {\r\n var contentChanged = false;\r\n var valid = true;\r\n var content = wrapper.children[this.options.specifiedIndexAsContent];\r\n if (!content) {\r\n warn('The wrapper need at least one child element to be content element to scroll.');\r\n valid = false;\r\n }\r\n else {\r\n contentChanged = this.content !== content;\r\n if (contentChanged) {\r\n this.content = content;\r\n }\r\n }\r\n return {\r\n valid: valid,\r\n contentChanged: contentChanged\r\n };\r\n };\r\n BScrollConstructor.prototype.init = function (wrapper) {\r\n var _this = this;\r\n this.wrapper = wrapper;\r\n // mark wrapper to recognize bs instance by DOM attribute\r\n wrapper.isBScrollContainer = true;\r\n this.scroller = new Scroller(wrapper, this.content, this.options);\r\n this.scroller.hooks.on(this.scroller.hooks.eventTypes.resize, function () {\r\n _this.refresh();\r\n });\r\n this.eventBubbling();\r\n this.handleAutoBlur();\r\n this.enable();\r\n this.proxy(propertiesConfig);\r\n this.applyPlugins();\r\n // maybe boundary has changed, should refresh\r\n this.refreshWithoutReset(this.content);\r\n var _a = this.options, startX = _a.startX, startY = _a.startY;\r\n var position = {\r\n x: startX,\r\n y: startY\r\n };\r\n // maybe plugins want to control scroll position\r\n if (this.hooks.trigger(this.hooks.eventTypes.beforeInitialScrollTo, position)) {\r\n return;\r\n }\r\n this.scroller.scrollTo(position.x, position.y);\r\n };\r\n BScrollConstructor.prototype.applyPlugins = function () {\r\n var _this = this;\r\n var options = this.options;\r\n BScrollConstructor.plugins\r\n .sort(function (a, b) {\r\n var _a;\r\n var applyOrderMap = (_a = {},\r\n _a[\"pre\" /* Pre */] = -1,\r\n _a[\"post\" /* Post */] = 1,\r\n _a);\r\n var aOrder = a.applyOrder ? applyOrderMap[a.applyOrder] : 0;\r\n var bOrder = b.applyOrder ? applyOrderMap[b.applyOrder] : 0;\r\n return aOrder - bOrder;\r\n })\r\n .forEach(function (item) {\r\n var ctor = item.ctor;\r\n if (options[item.name] && typeof ctor === 'function') {\r\n _this.plugins[item.name] = new ctor(_this);\r\n }\r\n });\r\n };\r\n BScrollConstructor.prototype.handleAutoBlur = function () {\r\n /* istanbul ignore if */\r\n if (this.options.autoBlur) {\r\n this.on(this.eventTypes.beforeScrollStart, function () {\r\n var activeElement = document.activeElement;\r\n if (activeElement &&\r\n (activeElement.tagName === 'INPUT' ||\r\n activeElement.tagName === 'TEXTAREA')) {\r\n activeElement.blur();\r\n }\r\n });\r\n }\r\n };\r\n BScrollConstructor.prototype.eventBubbling = function () {\r\n bubbling(this.scroller.hooks, this, [\r\n this.eventTypes.beforeScrollStart,\r\n this.eventTypes.scrollStart,\r\n this.eventTypes.scroll,\r\n this.eventTypes.scrollEnd,\r\n this.eventTypes.scrollCancel,\r\n this.eventTypes.touchEnd,\r\n this.eventTypes.flick\r\n ]);\r\n };\r\n BScrollConstructor.prototype.refreshWithoutReset = function (content) {\r\n this.scroller.refresh(content);\r\n this.hooks.trigger(this.hooks.eventTypes.refresh, content);\r\n this.trigger(this.eventTypes.refresh, content);\r\n };\r\n BScrollConstructor.prototype.proxy = function (propertiesConfig) {\r\n var _this = this;\r\n propertiesConfig.forEach(function (_a) {\r\n var key = _a.key, sourceKey = _a.sourceKey;\r\n propertiesProxy(_this, sourceKey, key);\r\n });\r\n };\r\n BScrollConstructor.prototype.refresh = function () {\r\n var _a = this.setContent(this.wrapper), contentChanged = _a.contentChanged, valid = _a.valid;\r\n if (valid) {\r\n var content = this.content;\r\n this.refreshWithoutReset(content);\r\n if (contentChanged) {\r\n this.hooks.trigger(this.hooks.eventTypes.contentChanged, content);\r\n this.trigger(this.eventTypes.contentChanged, content);\r\n }\r\n this.scroller.resetPosition();\r\n }\r\n };\r\n BScrollConstructor.prototype.enable = function () {\r\n this.scroller.enable();\r\n this.hooks.trigger(this.hooks.eventTypes.enable);\r\n this.trigger(this.eventTypes.enable);\r\n };\r\n BScrollConstructor.prototype.disable = function () {\r\n this.scroller.disable();\r\n this.hooks.trigger(this.hooks.eventTypes.disable);\r\n this.trigger(this.eventTypes.disable);\r\n };\r\n BScrollConstructor.prototype.destroy = function () {\r\n this.hooks.trigger(this.hooks.eventTypes.destroy);\r\n this.trigger(this.eventTypes.destroy);\r\n this.scroller.destroy();\r\n };\r\n BScrollConstructor.prototype.eventRegister = function (names) {\r\n this.registerType(names);\r\n };\r\n BScrollConstructor.plugins = [];\r\n BScrollConstructor.pluginsMap = {};\r\n return BScrollConstructor;\r\n}(EventEmitter));\r\nfunction createBScroll(el, options) {\r\n var bs = new BScrollConstructor(el, options);\r\n return bs;\r\n}\r\ncreateBScroll.use = BScrollConstructor.use;\r\ncreateBScroll.plugins = BScrollConstructor.plugins;\r\ncreateBScroll.pluginsMap = BScrollConstructor.pluginsMap;\r\nvar BScroll = createBScroll;\n\nexport default BScroll;\nexport { Behavior, CustomOptions, createBScroll };\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { TinyColor } from './index';\nimport { convertToPercentage } from './util';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","import { rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv, numberInputToObject } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this.roundA + \")\";\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this.roundA + \")\";\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\" + r + \", \" + g + \", \" + b + \")\" : \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + this.roundA + \")\";\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return Math.round(bound01(x, 255) * 100) + \"%\"; };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\" + rnd(this.r) + \"%, \" + rnd(this.g) + \"%, \" + rnd(this.b) + \"%)\"\n : \"rgba(\" + rnd(this.r) + \"%, \" + rnd(this.g) + \"%, \" + rnd(this.b) + \"%, \" + this.roundA + \")\";\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","export {};\n","import { tinycolor } from './index';\nexport * from './index';\nexport * from './css-color-names';\nexport * from './readability';\nexport * from './to-ms-filter';\nexport * from './from-ratio';\nexport * from './format-input';\nexport * from './random';\nexport * from './interfaces';\nexport * from './conversion';\n// kept for backwards compatability with v1\nexport default tinycolor;\n","// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { TinyColor } from './index';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion';\nimport { TinyColor } from './index';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return Number(n) * 100 + \"%\";\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","/**\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'];","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.arrayTreeFilter = factory());\n}(this, (function () { 'use strict';\n\nfunction arrayTreeFilter(data, filterFn, options) {\n options = options || {};\n options.childrenKeyName = options.childrenKeyName || \"children\";\n var children = data || [];\n var result = [];\n var level = 0;\n do {\n var foundItem = children.filter(function (item) {\n return filterFn(item, level);\n })[0];\n if (!foundItem) {\n break;\n }\n result.push(foundItem);\n children = foundItem[options.childrenKeyName] || [];\n level += 1;\n } while (children.length > 0);\n return result;\n}\n\nreturn arrayTreeFilter;\n\n})));\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\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 var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, 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 var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, 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(fullPath)) && 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 (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\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\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\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 isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\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');\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 // 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 var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, 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(defaultToConfig2Keys, 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 var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(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 if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\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');\nvar isValidXss = require('./isValidXss');\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 (isValidXss(url)) {\n throw new Error('URL contains XSS injection attempt');\n }\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\nmodule.exports = function isValidXss(requestURL) {\n var xssRegex = /(\\b)(on\\w+)=|javascript|(<\\s*)(\\/*)script/gi;\n return xssRegex.test(requestURL);\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');\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 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 a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\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 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/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","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 _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _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\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true,\n});\n\nvar categories = {\n whatsNew: [\n 'agile_equalizer', 'agile_schedule', 'agile_stage', 'sports_rugby-24px', 'no_food-o', 'upload_black-o', 'download_black-o', 'file_download_black-o', 'file_upload_black-o', 'k_plus', 'k', 'k_plus1', 'k1', 'mp', 'k_plus2', 'k2', 'mp1', 'p', 'k_plus3', 'k3', 'mp2', 'k_plus4', 'k4', 'mp3', 'ft_apart', 'k_plus5', 'k5', 'mp4', 'k_plus6', 'k6', 'mp5', 'k_plus7', 'k7', 'mp6', 'k_plus8', 'k8', 'mp7', 'k9', 'mp8', 'mp9', 'mp10', 'mp11', 'mp12', 'mp13', 'mp14', 'mp15', 'mp16', 'mp17', 'mp18', 'mp19', 'mp20', 'mp21', 'mp22', 'fps_select-2', 'fps_select', 'fps_select1', '360', 'access_time_filled', 'accessible_forward', 'account_tree-2', 'account_tree', 'ad_units', 'add_business', 'add_call', 'add_comment1', 'add_location_alt', 'add_location1', 'add_moderator-2', 'add_moderator', 'add_photo_alternate', 'add_reaction', 'add_to_drive', 'add_to_photos', 'admin_panel_settings', 'agriculture', 'airline_seat_flat_angled1', 'airline_seat_flat1', 'airline_seat_individual_suite1', 'airline_seat_legroom_extra1', 'airline_seat_legroom_normal1', 'airline_seat_legroom_reduced1', 'airline_seat_recline_extra1', 'airline_seat_recline_normal1', 'airplane_ticket', 'all_inbox', 'amp_stories', 'analytics', 'android1', 'aod', 'api', 'app_blocking', 'app_registration', 'app_settings_alt', 'approval', 'architecture', 'area_chart', 'assistant_direction', 'assistant_navigation', 'atm', 'attach_email', 'attractions', 'attribution', 'auto_awesome_mosaic-2', 'auto_awesome_mosaic', 'auto_awesome_motion', 'auto_awesome', 'auto_delete', 'auto_fix_high', 'auto_fix_normal', 'auto_fix_off', 'auto_graph', 'auto_stories', 'autofps_select', 'baby_changing_station', 'backpack', 'badge', 'bakery_dining', 'balcony', 'bar_chart1', 'batch_prediction', 'bathroom', 'bathtub', 'battery_saver', 'bedroom_baby', 'bedroom_child', 'bedroom_parent', 'bento', 'bike_scooter', 'biotech', 'blender', 'bloodtype', 'bluetooth_drive', 'bolt', 'book_online', 'book1', 'bookmark_add', 'bookmark_added', 'bookmark_remove', 'bookmarks', 'breakfast_dining', 'browser_not_supported', 'brunch_dining', 'build_circle', 'bungalow', 'bus_alert-2', 'bus_alert', 'cabin', 'cable', 'calculate', 'camera_indoor', 'camera_outdoor', 'cameraswitch', 'campaign', 'cancel_presentation', 'cancel_schedule_send', 'car_rental-2', 'car_rental', 'car_repair-2', 'car_repair', 'carpenter', 'cases', 'catching_pokemon', 'celebration', 'cell_wifi', 'chalet', 'change_circle', 'charging_station', 'checklist_rtl', 'checklist', 'checkroom', 'circle_notifications', 'clean_hands', 'cleaning_services-2', 'cleaning_services', 'close_fullscreen', 'closed_caption_disabled', 'code_off', 'coffee_maker', 'coffee', 'comment_bank-2', 'comment_bank', 'commute', 'compass_calibration', 'compost', 'compress', 'connect_without_contact', 'construction', 'contact_page', 'content_paste_off', 'control_camera', 'copy_all', 'coronavirus', 'corporate_fare', 'cottage', 'countertops', 'credit_card_off', 'credit_card', 'credit_score', 'crib', 'cruelty_free', 'dangerous', 'dashboard_customize', 'data_exploration', 'data_saver_on', 'deck', 'delivery_dining', 'departure_board', 'design_services', 'desktop_access_disabled', 'details1', 'developer_board_off', 'device_thermostat', 'device_unknown', 'dining', 'dinner_dining', 'directions_off', 'dirty_lens', 'disabled_by_default', 'disabled_visible', 'do_not_disturb_on_total_silence', 'do_not_step', 'do_not_touch', 'document_scanner', 'domain_disabled', 'domain_verification', 'done_outline', 'door_back', 'door_front', 'door_sliding', 'doorbell', 'double_arrow', 'downhill_skiing', 'download_done', 'download_for_offline', 'downloading', 'draw', 'drive_file_move_rtl', 'drive_file_move', 'drive_file_rename_outline', 'drive_folder_upload', 'dry', 'duo', 'dynamic_form', 'e_mobiledata', 'earbuds_battery', 'earbuds', 'eco', 'edgesensor_high', 'edgesensor_low', 'edit_attributes', 'edit_calendar', 'edit_location_alt', 'edit_note', 'edit_notifications', 'edit_off', 'edit_road', 'elderly', 'electric_bike', 'electric_car', 'electric_moped', 'electric_rickshaw', 'electric_scooter', 'electrical_services', 'elevator', 'emergency', 'emoji_events', 'emoji_flags', 'emoji_food_beverage', 'emoji_nature', 'emoji_objects', 'emoji_people', 'emoji_symbols', 'emoji_transportation', 'engineering', 'escalator_warning', 'escalator', 'expand', 'extension_off', 'face_retouching_natural', 'face_retouching_off', 'facebook', 'fact_check', 'family_restroom', 'fastfood', 'feed', 'fence', 'festival', 'file_download_off-2', 'file_download_off', 'file_present', 'filter_alt', 'fire_extinguisher', 'fireplace', 'fit_screen', 'flaky', 'flashlight_off', 'flashlight_on', 'flatware', 'flip_camera_android', 'flourescent', 'flutter_dash', 'fmd_bad', 'fmd_good', 'follow_the_signs', 'font_download_off', 'food_bank', 'format_list_numbered_rtl', 'foundation', 'free_cancellation', 'front_hand', 'g_mobiledata', 'garage', 'generating_tokens', 'gite', 'gpp_bad', 'gpp_maybe', 'grading', 'grass', 'grid_3x3', 'grid_4x4', 'grid_goldenratio', 'group_off', 'groups', 'h_mobiledata', 'h_plus_mobiledata', 'hail', 'handyman', 'hardware', 'hdr_auto_select', 'hdr_enhanced_select', 'hdr_off_select', 'hdr_on_select', 'hdr_plus', 'headphones_battery', 'headset_off-2', 'headset_off', 'health_and_safety', 'hearing_disabled', 'height', 'hevc', 'hide_image', 'hide_source', 'highlight_alt', 'hiking', 'history_edu', 'history_toggle_off', 'holiday_village', 'home_max', 'home_mini', 'home_repair_service', 'horizontal_distribute', 'horizontal_rule', 'horizontal_split', 'hotel_class', 'hourglass_bottom', 'hourglass_disabled', 'hourglass_top', 'house_siding', 'house', 'houseboat', 'how_to_reg', 'how_to_vote', 'https', 'hvac', 'ice_skating', 'icecream', 'image_not_supported', 'image_search', 'imagesearch_roller', 'incomplete_circle', 'insert_emoticon', 'insights', 'integration_instructions', 'inventory_2', 'inventory', 'ios_share', 'iron', 'kayaking', 'king_bed', 'kitesurfing', 'label_important', 'landscape', 'launch', 'leaderboard', 'legend_toggle', 'light', 'lightbulb', 'linear_scale1', 'liquor', 'living', 'local_convenience_store1', 'local_fire_department', 'local_police', 'local_see', 'location_city1', 'lock_clock-2', 'lock_clock', 'login', 'logout', 'loop', 'lte_mobiledata', 'lte_plus_mobiledata', 'luggage', 'lunch_dining', 'male', 'manage_accounts', 'manage_search', 'maps_home_work', 'maps_ugc', 'margin', 'mark_as_unread', 'mark_chat_read', 'mark_chat_unread', 'mark_email_read', 'mark_email_unread', 'masks', 'media_bluetooth_off', 'media_bluetooth_on', 'mediation', 'medical_services', 'medication', 'meeting_room', 'menu_book', 'menu_open', 'mic_external_off', 'mic_external_on', 'microwave', 'military_tech', 'miscellaneous_services', 'missed_video_call', 'mobile_off', 'mobile_screen_share', 'mobiledata_off', 'model_training', 'money', 'monitor_weight', 'mood', 'moped', 'more_time', 'motion_photos_auto', 'motion_photos_off', 'motion_photos_on', 'motion_photos_pause', 'move_to_inbox1', 'mp23', 'multiple_stop', 'museum', 'nat', 'near_me_disabled', 'nearby_error', 'nearby_off', 'network_cell1', 'network_wifi1', 'new_label', 'next_plan', 'night_shelter', 'nightlife', 'no_accounts', 'no_backpack', 'no_cell', 'no_drinks', 'no_flash', 'no_food', 'no_luggage', 'no_meals_ouline', 'no_photography', 'no_stroller', 'no_transfer', 'nordic_walking', 'north_east', 'north_west', 'not_accessible', 'not_listed_location', 'not_started', 'note_alt', 'notification_add', 'notification_important', 'notifications_none-2', 'notifications_none1', 'offline_bolt', 'offline_share', 'online_prediction24px', 'open_in_full', 'open_in_new_off', 'other_houses', 'outbond', 'outdoor_grill', 'outgoing_mail', 'outlet', 'padding', 'panorama_horizontal_select', 'panorama_photosphere_select', 'panorama_vertical_select', 'panorama_wide_angle_select', 'paragliding', 'park', 'password1', 'pattern', 'payments', 'pedal_bike', 'pending_actions', 'pending', 'person_add_disabled', 'person_off', 'person_pin1', 'person_remove', 'person_search', 'personal_injury', 'pest_control_rodent', 'phone_callback', 'phone_disabled', 'photo_camera_back', 'photo_camera_front', 'piano_off', 'piano', 'pin_end', 'pin_invoke', 'pin', 'pivot_table_chart', 'place', 'plagiarism', 'play_disabled', 'play_lesson', 'plumbing', 'podcasts', 'point_of_sale', 'policy', 'post_add', 'precision_manufacturing', 'preview', 'price_change', 'price_check', 'print_disabled', 'privacy_tip', 'private_connectivity', 'psychology', 'public_off', 'published_with_changes', 'push_pin', 'qr_code_2', 'qr_code_scanner', 'qr_code', 'query_stats', 'quickreply', 'quiz', 'r_mobiledata', 'radar', 'railway_alert-2', 'railway_alert', 'ramen_dining-2', 'ramen_dining', 'raw_off', 'raw_on', 'read_more', 'real_estate_agent', 'receipt_long', 'recommend', 'recycling', 'reduce_capacity', 'remember_me', 'remove_done', 'remove_moderator', 'repeat_on', 'repeat_one_on', 'replay_circle_filled', 'report_off', 'request_page', 'reset_tv', 'restart_alt', 'restore_from_trash', 'reviews', 'rice_bowl', 'roofing', 'room_preferences', 'rsvp', 'rtt', 'rule_folder', 'rule', 'run_circle', 'running_with_errors', 'safety_divider', 'sailing', 'sanitizer', 'saved_search', 'savings', 'scatter_plot', 'schema', 'science', 'score', 'screen_search_desktop', 'sd_card_alert', 'sd', 'search_off', 'security_update_good', 'security_update_warning', 'security_update', 'self_improvement', 'send_and_archive', 'send_to_mobile', 'sensor_door', 'sensor_window', 'sensors_off', 'sensors', 'sentiment_neutral1', 'set_meal', 'settings_accessibility', 'settings_brightness1', 'settings_suggest', 'share_location', 'shield', 'shopping_bag', 'shortcut', 'shower', 'shuffle_on', 'shutter_speed', 'sick', 'signal_cellular_alt', 'signal_cellular_nodata', 'signal_wifi_bad', 'signal_wifi_statusbar_connected_no_internet_4', 'sim_card_download', 'single_bed', 'sip', 'skateboarding', 'sledding', 'slow_motion_video1', 'smart_button', 'smart_display', 'smart_screen', 'smart_toy', 'snippet_folder', 'snowboarding', 'snowmobile', 'snowshoeing', 'soap', 'social_distance', 'source', 'south_east', 'south', 'speed', 'sports_bar', 'sports_baseball', 'sports_basketball', 'sports_cricket', 'sports_esports', 'sports_football', 'sports_golf', 'sports_handball', 'sports_hockey', 'sports_kabaddi', 'sports_mma', 'sports_motorsports', 'sports_rugby', 'sports_score', 'sports_soccer', 'stacked_line_chart', 'stairs', 'sticky_note_2', 'stop_circle', 'storm', 'stream', 'stroller', 'subscript', 'summarize', 'superscript', 'supervised_user_circle', 'support_agent', 'support', 'surfing', 'swap_horizontal_circle', 'swipe', 'switch_account', 'switch_left', 'switch_right', 'sync_alt', 'system_security_update_good', 'system_security_update_warning', 'table_view', 'tag', 'takeout_dining', 'tapas', 'task_alt', 'task', 'taxi_alert', 'text_rotate_up', 'text_rotate_vertical', 'text_rotation_angledown', 'text_rotation_angleup', 'text_rotation_none', 'text_snippet', 'theater_comedy', 'thermostat_auto', 'timer_3_select', 'timer_10_select', 'tips_and_updates', 'toggle_on', 'travel_explore', 'trip_origin', 'try', 'tty', 'tv_off', 'two_wheeler', 'umbrella', 'unpublished', 'unsubscribe', 'upcoming', 'update_disabled', 'upgrade', 'upload_file', 'usb_off', 'verified', 'vertical_distribute', 'video_camera_back', 'video_camera_front', 'video_settings', 'video_stable', 'videogame_asset_off', 'view_in_ar', 'view_sidebar', 'villa', 'water_drop', 'water', 'waterfall_chart', 'waves', 'waving_hand', 'wb_shade', 'wb_twighlight', 'wb_twilight', 'web_asset_off', 'web_stories', 'wheelchair_pickup', 'where_to_vote', 'wifi_calling_3', 'wifi_calling', 'wifi_off', 'wifi_protected_setup', 'wifi_tethering_error_rounded', 'wine_bar', 'work_off', 'work_outline', 'workspaces', 'wrong_location', 'wysiwyg', 'yard', 'k_plus-o5', 'k-o6', 'x_mobiledata-o', 'k_plus-o6', 'k-o7', 'mp-o21', 'g_mobiledata-o', 'k_plus-o7', 'k-o8', 'mp-o22', 'p-o', 'g_mobiledata-o1', 'g_plus_mobiledata-o', 'k_plus-o8', 'mp-o23', 'g-o', 'k_plus-o4', 'k-o5', 'mp-o20', 'k_plus-o3', 'k-o4', 'mp-o19', 'k_plus-o2', 'k-o3', 'mp-o18', 'k_plus-o1', 'k-o2', 'mp-o17', 'k_plus-o', 'k-o1', 'mp-o16', 'k-o', 'mp-o15', 'mp-o14', 'mp-o13', 'mp-o12', 'mp-o11', 'mp-o10', 'mp-o9', 'mp-o8', 'mp-o7', 'mp-o6', 'mp-o5', 'mp-o4', 'mp-o3', 'mp-o2', 'mp-o1', 'fps-o-21', 'fps-o1', 'fps-o-2', 'fps-o', 'ad_units-o', 'add_business-o', 'add_chart-o', 'add_link-o', 'add_location_alt-o', 'add_moderator-o', 'add_reaction-o', 'add_road-o', 'add_task-o', 'add_to_drive-o', 'add_to_home_screen-o', 'admin_panel_settings-o', 'ads_click-o', 'agriculture-o', 'air-o', 'airplane_ticket-o', 'align_horizontal_center-o', 'align_horizontal_right-o', 'align_vertical_bottom-o', 'align_vertical_center-o', 'align_vertical_top-o', 'alt_route-o', 'alternate_email-o', 'analytics-o', 'anchor-o', 'animation-o', 'apartment-o', 'app_blocking-o', 'app_settings_alt-o', 'approval-o', 'area_chart-o', 'arrow_circle_down-o', 'arrow_circle_up-o', 'article-o', 'assistant_direction-o', 'attach_email-o', 'attractions-o', 'auto_awesome_mosaic-o', 'auto_awesome_motion-o', 'auto_awesome-o', 'auto_delete-o', 'auto_fix_high-o', 'auto_fix_normal-o', 'auto_fix_off-o', 'auto_stories-o', 'backpack-o', 'backup_table-o-2', 'backup_table-o', 'badge-o', 'bakery_dining-o', 'bathroom-o', 'bedroom_baby-o', 'bedroom_child-o', 'bedroom_parent-o', 'bento-o', 'biotech-o', 'blender-o', 'bloodtype-o', 'bluetooth_drive-o', 'bookmark_add-o', 'bookmark_added-o', 'bookmark_remove-o', 'border_color-o', 'breakfast_dining-o', 'brunch_dining-o', 'build_circle-o', 'bungalow-o', 'bus_alert-o', 'calculate-o', 'camera_indoor-o', 'cameraswitch-o', 'campaign-o', 'cancel-o', 'car_rental-o', 'car_repair-o', 'carpenter-o', 'cases-o', 'cast_for_education-o', 'celebration-o', 'chair_alt-o', 'chalet-o', 'change_circle-o', 'charging_station-o', 'check_circle_outline-o', 'circle_notifications-o', 'clean_hands-o', 'closed_caption_disabled-o', 'cloud_upload-o', 'coffee_maker-o', 'coffee-o', 'contact_page-o', 'content_copy-o', 'coronavirus-o', 'cottage-o', 'countertops-o', 'crib-o', 'cruelty_free-o', 'dangerous-o', 'dashboard_customize-o', 'data_exploration-o', 'delete_black-o', 'delivery_dining-o', 'design_services-o', 'dining-o', 'dinner_dining-o', 'directions_off-o', 'dirty_lens-o', 'disabled_by_default-o', 'disabled_visible-o', 'do_not_step-o', 'do_not_touch-o', 'document_scanner-o', 'door_back-o', 'door_front-o', 'door_sliding-o', 'doorbell-o', 'download_for_offline-o', 'draw-o', 'drive_file_move_rtl-o', 'drive_file_move-o', 'drive_file_rename_outline-o', 'drive_folder_upload-o', 'dry-o', 'dynamic_form-o', 'earbuds_battery-o', 'earbuds-o', 'edgesensor_low-o', 'edit_calendar-o', 'edit_location_alt-o', 'edit_notifications-o', 'edit_off-o', 'electric_car-o', 'electric_moped-o', 'elevator-o', 'emergency-o', 'engineering-o', 'escalator-o', 'extension_off-o', 'face_retouching_natural-o', 'face_retouching_off-o', 'fact_check-o', 'feed-o', 'female-o', 'festival-o', 'file_present-o', 'fit_screen-o', 'flashlight_off-o', 'flashlight_on-o', 'flourescent-o', 'fmd_bad-o', 'font_download_off-o', 'food_bank-o', 'format_textdirection_l_to_r-o', 'forward_to_inbox-o', 'free_cancellation-o', 'front_hand-o', 'garage-o', 'generating_tokens-o', 'gpp_bad-o', 'gpp_maybe-o', 'group_off-o', 'group-o', 'groups-o', 'handyman-o', 'hardware-o', 'hdr_enhanced_select-o', 'hdr_plus-o', 'headphones_battery-o', 'headset_off-o', 'health_and_safety-o', 'hide_image-o', 'highlight_off-o', 'holiday_village-o', 'home_repair_service-o', 'horizontal_split-o1', 'hotel_class-o', 'houseboat-o', 'hvac-o', 'ice_skating-o', 'icecream-o', 'image_not_supported-o', 'imagesearch_roller-o', 'integration_instructions-o', 'inventory_2-o', 'iron-o', 'label_important_outline-o', 'leaderboard-o', 'light-o', 'linked_camera-o', 'living-o', 'local_police-o', 'lock_clock-o', 'lunch_dining-o', 'manage_accounts-o', 'maps_home_work-o', 'maps_ugc-o', 'margin-o', 'mark_as_unread-o', 'mark_chat_read-o', 'mark_chat_unread-o', 'mark_email_read-o', 'mark_email_unread-o', 'masks-o', 'medical_services-o', 'medication-o', 'microwave-o', 'military_tech-o', 'monetization_on-o1', 'monitor_weight-o', 'moped-o', 'motion_photos_auto-o', 'motion_photos_off-o', 'motion_photos_on-o', 'motion_photos_paused-o', 'mouse-o', 'move_to_inbox-o1', 'mp-o', 'near_me_disabled-o', 'new_label-o', 'next_plan-o', 'night_shelter-o', 'no_accounts-o', 'no_backpack-o', 'no_cell-o', 'no_flash-o', 'no_photography-o', 'no_transfer-o', 'not_started-o', 'note_alt-o', 'notification_add-o', 'offline_share-o', 'other_houses-o', 'outbond-o', 'outlet-o', 'padding-o', 'palette-o', 'panorama_photosphere-o', 'paragliding-o', 'park-o', 'pause_presentation-o', 'payments-o', 'pending-o', 'people-o', 'person_off-o', 'person_remove-o', 'person_search-o', 'personal_injury-o', 'pest_control_rodent-o', 'phone_bluetooth_speaker-o', 'phone_callback-o', 'phone_forwarded-o', 'phone_in_talk-o', 'phone_missed-o', 'phone_paused-o', 'photo_camera_back-o', 'photo_camera_front-o-2', 'photo_camera_front-o', 'pin-o', 'plagiarism-o', 'play_lesson-o', 'poll-o', 'portrait-o', 'privacy_tip-o', 'private_connectivity-o', 'psychology-o', 'quickreply-o', 'quiz-o', 'railway_alert-o', 'ramen_dining-o', 'real_estate_agent-o', 'receipt_long-o', 'recommend-o', 'remember_me-o', 'remove_moderator-o', 'request_page-o', 'reviews-o', 'rice_bowl-o', 'room_preferences-o', 'rule_folder-o', 'run_circle-o', 'sailing-o', 'sanitizer-o', 'savings-o', 'schema-o', 'science-o', 'screen_search_desktop-o', 'sd_card_alert-o', 'sd-o', 'security_update_warning-o', 'security_update-o', 'send_and_archive-o', 'sensor_door-o', 'sensor_window-o', 'set_meal-o', 'settings_suggest-o', 'shield-o', 'shopping_bag-o', 'shower-o', 'sick-o', 'signal_cellular_connected_no_internet_0_bar-o', 'signal_wifi_0_bar-o', 'signal_wifi_statusbar_null-o', 'sim_card_alert-o', 'sim_card_download-o', 'single_bed-o', 'sip-o', 'smart_display-o', 'smart_screen-o', 'smart_toy-o', 'snippet_folder-o', 'snowmobile-o', 'soap-o', 'source-o', 'sports_bar-o', 'sports_cricket-o', 'stairs-o', 'sticky_note_2-o', 'stop_circle-o', 'storefront-o', 'stroller-o', 'summarize-o', 'swipe-o', 'switch_account-o', 'system_security_update_good-o', 'system_security_update_warning-o', 'upcoming-o', 'upload_file-o', 'verified-o', 'video_camera_back-o', 'video_camera_front-o', 'video_stable-o', 'videogame_asset_off-o', 'view_sidebar-o', 'villa-o', 'voice_chat-o', 'volunteer_activism-o', 'vrpano-o', 'warning_amber-o-2', 'warning_amber-o', 'wash-o', 'watch-o', 'water_damage-o', 'water_drop-o', 'waving_hand-o', 'wifi_calling_3-o', 'wine_bar-o', 'workspaces_outline-o', 'wrong_location-o', 'yard-o',\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 '4k-o', 'account_tree-o', 'add_a_photo-o', 'add_alert-o', 'add_box-o', 'add_comment-o', 'add_ic_call-o', 'add_location-o', 'add_photo_o', 'add_to_photos-o', 'airline_seat_flat_angled-o', 'airline_seat_flat-o', 'airline_seat_individual_suite-o', 'airport_shuttle-o', 'album-o', 'all_inbox-o', 'amp_stories-o', 'announcement-o', 'archive-o', 'arrow_drop_down_circle-o', 'assignment_ind-o', 'assignment_late-o', 'assignment_return-o', 'assignment_returned-o', 'assignment_turned_in-o', 'assignment-o', 'flag-o', 'assistant-o', 'audiotrack-o', 'backspace-o', 'backup-o', 'ballot-o', 'bathtub-o', 'beach_access-o', 'beenhere-o', 'book-o', 'bookmarks-o', 'branding_watermark-o', 'brightness_o', 'brightness_2-o', 'brightness_3-o', 'brightness_4-o', 'brightness_5-o', 'brightness_6-o', 'brightness_7-o', 'brightness_auto-o', 'brightness_high-o', 'brightness_low-o', 'brightness_medium-o', 'broken_image-o', 'brush-o', 'bubble_chart-o', 'bug_report-o', 'build-o', 'burst_mode-o', 'business_center-o', 'cake-o', 'calendar_today-o', 'call_end-o', 'call_to_action-o', 'call-o', 'camera_alt-o', 'camera_enhance-o', 'camera_front-o', 'camera_rear-o', 'camera_roll-o', 'camera-o', 'cancel_schedule_send-o', 'casino-o', 'cast_connected-o', 'category-o', 'center_focus_strong-o', 'chat-o', 'check_box-o', 'child_friendly-o', 'chrome_reader_mode-o', 'class-o', 'closed_caption-o', 'cloud_circle-o', 'cloud_done-o', 'cloud_download-o', 'cloud-o', 'collections_bookmark-o', 'collections-o', 'color_lens-o', 'colorize-o', 'comment-o', 'compass_calibration-o', 'confirmation_number-o', 'contact_mail-o', 'contact_phone-o', 'contact_support-o', 'contactless-o', 'contacts-o', 'create_new_folder-o', 'dashboard-o', 'date_range-o', 'deck-o', 'delete_forever-o', 'delete_sweep-o', 'departure_board-o', 'description-o', 'dialer_sip-o', 'directions_boat-o', 'directions_car-o', 'directions_railway-o', 'directions_subway-o', 'directions-o', 'disc_full-o', 'dns-o', 'donut_small-o', 'drafts-o', 'drive_eta-o', 'dynamic_feed-o', 'eco-o', 'edit_attributes-o', 'edit_location-o', 'edit-o', 'eject-o', 'email-o', 'emoji_emotions-o', 'emoji_events-o', 'emoji_food_beverage-o', 'emoji_objects-o', 'enhanced_encryption-o', 'ev_station-o', 'event_available-o', 'event_busy-o', 'event_note-o', 'event_seat-o', 'event-o', 'explicit-o', 'explore_off-o', 'explore-o', 'exposure-o', 'extension-o', 'face-o', 'fast_forward-o', 'fast_rewind-o', 'fastfood-o', 'favorite_border-o', 'featured_play_list-o', 'featured_video-o', 'feedback-o', 'fiber_dvr-o', 'fiber_manual_record-o', 'fiber_new-o', 'fiber_pin-o', 'fiber_smart_record-o', 'file_copy-o', 'filter_frames-o', 'filter_hdr-o', 'filter_vintage-o', 'find_in_page-o', 'fireplace-o', 'flag-24px', 'flip_camera_android-o', 'flip_camera_ios-o', 'folder_shared-o', 'folder_special-o', 'folder-o', 'font_download-o', 'format_color_reset-o', 'format_paint-o', 'format_quote-o', 'forum-o', 'forward-o', 'free_breakfast-o', 'gamepad-o', 'get_app-o', 'grade-o', 'group_add-o', 'group_work-o', 'hd-o', 'headset_mic-o', 'headset-o', 'high_quality-o', 'highlight-o', 'home_work-o', 'home-o', 'horizontal_split-o', 'hotel-o', 'house-o', 'how_to_reg-o', 'how_to_vote-o', 'https-o', 'image-o', 'inbox-o', 'indeterminate_check_box-o', 'info-o', 'insert_comment-o', 'insert_drive_file-o', 'insert_invitation-o', 'insert_photo-o', 'keyboard_hide-o', 'keyboard_voice-o', 'keyboard-o', 'king_bed-o', 'label_off-o', 'label-o', 'landscape-o', 'layers_clear-o', 'layers-o', 'library_add_check-o', 'library_add-o', 'library_books-o', 'library_music-o', 'live_help-o', 'local_activity-o', 'local_bar-o', 'local_cafe-o', 'local_car_wash-o', 'local_convenience_store-o', 'local_drink-o', 'local_florist-o', 'local_gas_station-o', 'local_grocery_store-o', 'local_hospital-o', 'local_hotel-o', 'local_laundry_service-o', 'local_library-o', 'local_mall-o', 'local_movies-o', 'local_offer-o', 'local_pharmacy-o', 'local_phone-o', 'local_pizza-o', 'local_play-o', 'local_post_office-o', 'local_printshop-o', 'local_see-o', 'local_shipping-o', 'local_taxi-o', 'location_off-o', 'location_on-o', 'lock-o', 'looks_3-o', 'looks_4-o', 'looks_5-o', 'looks_6-o', 'looks_one-o', 'looks_two-o', 'loyalty-o', 'mail-o', 'markunread_mailbox-o', 'meeting_room-o', 'message-o', 'mic_off-o', 'missed_video_call-o', 'mms-o', 'mode_comment-o', 'monetization_on-o', 'more-o', 'move_to_inbox-o', 'movie_creation-o', 'movie_filter-o', 'movie-o', 'museum-o', 'music_note-o', 'music_off-o', 'nature_people-o', 'nature-o', 'navigation-o', 'near_me-o', 'network_locked-o', 'new_releases-o', 'next_week-o', 'nights_stay-o', 'no_encryption-o', 'no_meeting_room-o', 'no_sim-o', 'not_listed_location-o', 'note_add-o', 'note-o', 'notification_important-o', 'notifications_active-o', 'notifications_off-o', 'notifications_paused-o', 'notifications-o', 'offline_bolt-o', 'offline_pin-o', 'outdoor_grill-o', 'pages-o', 'pageview-o', 'pan_tool-o', 'panorama-o', 'party_mode-o', 'people_outline-o', 'perm_camera_mic-o', 'perm_contact_calendar-o', 'perm_data_setting-o', 'perm_device_information-o', 'perm_media-o', 'perm_phone_msg-o', 'perm_scan_wifi-o', 'person_add_disabled-o', 'person_add-o', 'person_pin_circle-o', 'person_pin-o', 'person-o', 'phone_disabled-o', 'phone_enabled-o', 'phone-o', 'photo_album-o', 'photo_camera-o', 'photo_library-o', 'photo-o', 'picture_as_pdf-o', 'picture_in_picture_alt-o', 'picture_in_picture-o', 'pie_chart-o', 'pin_drop-o', 'place-o', 'play_arrow-o', 'policy-o', 'power_off-o', 'power-o', 'print_disabled-o', 'print-o', 'publish-o', 'question_answer-o', 'queue-o', 'radio-o', 'receipt-o', 'recent_actors-o', 'record_voice_over-o', 'remove_shopping_cart-o', 'report_off-o', 'report_problem-o', 'report-o', 'restore_from_trash-o', 'restore_page-o', 'ring_volume-o', 'room_service-o', 'room-o', 'satellite-o', 'save-o', 'scanner-o', 'scatter_plot-o', 'school-o', 'score-o', 'screen_share-o', 'sd_card-o', 'sd_storage-o', 'send-o', 'settings_applications-o', 'settings_cell-o', 'settings_input_component-o', 'settings_input_hdmi-o', 'settings_phone-o', 'settings_remote-o', 'settings_system_daydream-o', 'settings_voice-o', 'settings-o', 'shop_two-o', 'shop-o', 'shopping_basket-o', 'shopping_cart-o', 'signal_cellular_no_sim-o', 'sim_card-o', 'skip_next-o', 'skip_previous-o', 'sms_failed-o', 'sms-o', 'spa-o', 'speaker_group-o', 'speaker_notes_off-o', 'speaker_notes-o', 'speaker-o', 'sports_baseball-o', 'sports_basketball-o', 'sports_esports-o', 'sports_football-o', 'sports_mma-o', 'sports_motorsports-o', 'sports_volleyball-o', 'stars-o', 'stop_screen_share-o', 'stop-o', 'store_mall_directory-o', 'store-o', 'style-o', 'subscriptions-o', 'subtitles-o', 'subway-o', 'supervised_user_circle-o', 'supervisor_account-o', 'surround_sound-outline', 'swap_horizontal_circle-o', 'swap_vertical_circle-o', 'switch_camera-o', 'switch_video-o', 'table_chart-o', 'terrain-o', 'textsms-o', 'theaters-o', 'thumb_down_alt-o', 'thumb_down-o', 'thumb_up_alt-o', 'thumb_up-o', 'thumbs_up_down-o', 'time_to_leave-o', 'today-o', 'toggle_off-o', 'toggle_on-o', 'touch_app-o', 'toys-o', 'traffic-o', 'train-o', 'tram-o', 'unarchive-o', 'unsubscribe-o', 'verified_user-o', 'vertical_split-o', 'video_call-o', 'video_library-o', 'videocam_off-o', 'videocam-o', 'videogame_asset-o', 'view_agenda-o', 'view_array-o', 'view_carousel-o', 'view_column-o', 'view_comfy-o', 'view_compact-o', 'view_day-o', 'view_list-o', 'view_module-o', 'view_quilt-o', 'view_stream-o', 'view_week-o', 'vignette-o', 'visibility_off-o', 'visibility-o', 'voice_over_off-o', 'volume_down-o', 'volume_mute-o', 'volume_off-o', 'volume_up-o', 'vpn_key-o', 'watch_later-o', 'wb_auto-o', 'wb_cloudy-o', 'wb_incandescent-o', 'wb_iridescent-o', 'wb_sunny-o', 'weekend-o', 'whatshot-o', 'where_to_vote-o', 'work_off-o', 'account_balance_wallet-o', 'account_balance-o', 'account_box-o', 'account_circle-o', 'add_shopping_cart-o', 'alarm-o',\n 'circulate', 'knowledge', 'pipeline', 'characteristic', 'WSJF',\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 '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) 2018 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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\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 = global || self, 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() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\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 = 50;\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 // 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, isRTL = direction == \"rtl\" ? 1 : 0;\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)); at += isRTL; }\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 at += isRTL;\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 = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[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 = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[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;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 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 start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.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 // 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 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 if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.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 // 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, from, to, marker) {\n var line = getLine(doc, lineNo);\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 // 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 || attributes) {\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.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, 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 var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { 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\" + (widget.className ? \" \" + widget.className : \"\"));\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\", \"CodeMirror-line-like\"));\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, 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.length; i += 3) {\n mStart = map[i];\n mEnd = map[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.length - 3 || ch == mEnd && map[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[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(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 = outside; }\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, -1, -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, 1, 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 || found.outside > 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, 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 = 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, 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; box.bottom += widgetHeight;\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 <= 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, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, 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, 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, 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\", null, \"CodeMirror-line-like\");\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], \"CodeMirror-line-like\");\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 var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = 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$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (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 // 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 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 = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range, 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, 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.from(), sTo = range.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 () {\n if (!cm.hasFocus()) { onBlur(cm); }\n 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 // 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 gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\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 + gutterSpace - (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) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\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 = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.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.max(0, 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.max(0, 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 = 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 != 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 // 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 for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.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 (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\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 } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\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(display) {\n var width = display.gutters.offsetWidth;\n 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 // 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.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\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, options) {\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 d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\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 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.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 out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.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) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\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)); }\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));\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 this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.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\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? 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 ? preventCursorRight : preventCursorLeft)\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 ? preventCursorLeft : preventCursorRight)\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 if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\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 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;\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 for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.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 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; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\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;\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 this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.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.height -= oldHeight - child.height;\n if (sz == rm) { this.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 for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.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.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.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 for (var i = 0; i < this.children.length; ++i) {\n var child = this.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 if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\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) { 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 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.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.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.collapsed && !lineIsHidden(this.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.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 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.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\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 this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.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 = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.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 if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, 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 ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, 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 parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.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 changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.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, 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() {\n var this$1 = this;\n\n this.history = new History(this.history.maxGeneration);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\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 = 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 == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\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 = 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;\n });\n return clipPos(this, Pos(lineNo, 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 if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\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 markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(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$1){}\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: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 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, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.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 != \"Mod\") { 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 if (cm.doc.direction == \"rtl\") { dir = -dir; }\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, \"codepoint\"); },\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(start.ch, 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 if (e.target && e.target != cm.display.input.getField()) { return }\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 if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\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 (e.target && e.target != cm.display.input.getField()) { return }\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 && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); 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 = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\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 = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.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 // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\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) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\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 : 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$1) { 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.display.gutterSpecs.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.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, 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-\\u200c\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/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 updateGutters(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, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(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, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, 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\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\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 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\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, options);\n display.wrapper.CodeMirror = 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(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, 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); }\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 on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\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 = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.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\") == textLines.join(\"\\n\"))\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 = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.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.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.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 ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\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, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\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 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.state.modeGen++;\n regChange(this);\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 ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\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 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) && 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 = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.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 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.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) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.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) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\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, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, 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) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == 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, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.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 = this.display.viewFrom;\n this.doc.iter(lineNo, 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, \"widget\"); break } } }\n ++lineNo;\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.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\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 // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\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 \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true 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 var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\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 (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (unit > 0 ? 0 : -1));\n if (isNaN(ch)) { next = null; }\n else { next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (ch >= 0xD800 && ch < 0xDC00 ? 2 : 1))),\n -dir); }\n } else 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, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\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 function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || 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 (!belongsToInput(e) || 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.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = document.activeElement == this.div;\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 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.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() || document.activeElement != this.div)\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.display.gutterSpecs.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;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.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 = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[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.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\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 this.textarea.readOnly = !!val;\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 (!options.leaveSubmitMethodAlone && 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.58.2\";\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/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\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","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","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","// 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","// 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","var core = module.exports = { version: '2.6.11' };\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","// 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","// 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","'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","// 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","module.exports = require('./_hide');\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 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","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\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 $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","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\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;","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round((conversions[targetUnit][sourceUnit] * value) * precision) / precision;\r\n};\r\n","import getVendorPrefixedName from './getVendorPrefixedName';\nexport default {\n /**\n * @return {bool} True if browser supports css animations.\n */\n hasCSSAnimations: function hasCSSAnimations() {\n return !!getVendorPrefixedName('animationName');\n },\n\n /**\n * @return {bool} True if browser supports css transforms.\n */\n hasCSSTransforms: function hasCSSTransforms() {\n return !!getVendorPrefixedName('transform');\n },\n\n /**\n * @return {bool} True if browser supports css 3d transforms.\n */\n hasCSS3DTransforms: function hasCSS3DTransforms() {\n return !!getVendorPrefixedName('perspective');\n },\n\n /**\n * @return {bool} True if browser supports css transitions.\n */\n hasCSSTransitions: function hasCSSTransitions() {\n return !!getVendorPrefixedName('transition');\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport on from './events/on';\nimport cancelAnimationFramePolyfill from './animation/cancelAnimationFramePolyfill';\nimport requestAnimationFramePolyfill from './animation/requestAnimationFramePolyfill';\n\nvar DOMMouseMoveTracker =\n/*#__PURE__*/\nfunction () {\n /**\n * onMove is the callback that will be called on every mouse move.\n * onMoveEnd is called on mouse up when movement has ended.\n */\n function DOMMouseMoveTracker(onMove, onMoveEnd, domNode) {\n var _this = this;\n\n _defineProperty(this, \"isDraggingStatus\", false);\n\n _defineProperty(this, \"animationFrameID\", null);\n\n _defineProperty(this, \"domNode\", void 0);\n\n _defineProperty(this, \"onMove\", void 0);\n\n _defineProperty(this, \"onMoveEnd\", void 0);\n\n _defineProperty(this, \"eventMoveToken\", null);\n\n _defineProperty(this, \"eventUpToken\", null);\n\n _defineProperty(this, \"moveEvent\", null);\n\n _defineProperty(this, \"deltaX\", 0);\n\n _defineProperty(this, \"deltaY\", 0);\n\n _defineProperty(this, \"x\", 0);\n\n _defineProperty(this, \"y\", 0);\n\n _defineProperty(this, \"isDragging\", function () {\n return _this.isDraggingStatus;\n });\n\n _defineProperty(this, \"onMouseMove\", function (event) {\n var x = event.clientX;\n var y = event.clientY;\n _this.deltaX += x - _this.x;\n _this.deltaY += y - _this.y;\n\n if (_this.animationFrameID === null) {\n // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFramePolyfill` to avoid over-updating.\n _this.animationFrameID = requestAnimationFramePolyfill(_this.didMouseMove);\n }\n\n _this.x = x;\n _this.y = y;\n _this.moveEvent = event;\n event.preventDefault();\n });\n\n _defineProperty(this, \"didMouseMove\", function () {\n _this.animationFrameID = null;\n\n _this.onMove(_this.deltaX, _this.deltaY, _this.moveEvent);\n\n _this.deltaX = 0;\n _this.deltaY = 0;\n });\n\n _defineProperty(this, \"onMouseUp\", function (event) {\n if (_this.animationFrameID) {\n _this.didMouseMove();\n }\n\n _this.onMoveEnd && _this.onMoveEnd(event);\n });\n\n this.domNode = domNode;\n this.onMove = onMove;\n this.onMoveEnd = onMoveEnd;\n }\n /**\n * This is to set up the listeners for listening to mouse move\n * and mouse up signaling the movement has ended. Please note that these\n * listeners are added at the document.body level. It takes in an event\n * in order to grab inital state.\n */\n\n\n var _proto = DOMMouseMoveTracker.prototype;\n\n _proto.captureMouseMoves = function captureMouseMoves(event) {\n if (!this.eventMoveToken && !this.eventUpToken) {\n this.eventMoveToken = on(this.domNode, 'mousemove', this.onMouseMove);\n this.eventUpToken = on(this.domNode, 'mouseup', this.onMouseUp);\n }\n\n if (!this.isDraggingStatus) {\n this.deltaX = 0;\n this.deltaY = 0;\n this.isDraggingStatus = true;\n this.x = event.clientX;\n this.y = event.clientY;\n }\n\n event.preventDefault();\n }\n /**\n * These releases all of the listeners on document.body.\n */\n ;\n\n _proto.releaseMouseMoves = function releaseMouseMoves() {\n if (this.eventMoveToken) {\n this.eventMoveToken.off();\n this.eventMoveToken = null;\n }\n\n if (this.eventUpToken) {\n this.eventUpToken.off();\n this.eventUpToken = null;\n }\n\n if (this.animationFrameID !== null) {\n cancelAnimationFramePolyfill(this.animationFrameID);\n this.animationFrameID = null;\n }\n\n if (this.isDraggingStatus) {\n this.isDraggingStatus = false;\n this.x = 0;\n this.y = 0;\n }\n }\n /**\n * Returns whether or not if the mouse movement is being tracked.\n */\n ;\n\n return DOMMouseMoveTracker;\n}();\n\nexport default DOMMouseMoveTracker;","import emptyFunction from './utils/emptyFunction';\nimport normalizeWheel from './normalizeWheel';\nimport requestAnimationFramePolyfill from './animation/requestAnimationFramePolyfill';\n\nvar WheelHandler =\n/*#__PURE__*/\nfunction () {\n function WheelHandler(onWheel, handleScrollX, handleScrollY, stopPropagation) {\n this.animationFrameID = null;\n this.deltaX = 0;\n this.deltaY = 0;\n this.didWheel = this.didWheel.bind(this);\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n if (typeof stopPropagation !== 'function') {\n stopPropagation = stopPropagation ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n this.handleScrollX = handleScrollX;\n this.handleScrollY = handleScrollY;\n this.stopPropagation = stopPropagation;\n this.onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n }\n\n var _proto = WheelHandler.prototype;\n\n _proto.onWheel = function onWheel(event) {\n var normalizedEvent = normalizeWheel(event);\n var deltaX = this.deltaX + normalizedEvent.pixelX;\n var deltaY = this.deltaY + normalizedEvent.pixelY;\n var handleScrollX = this.handleScrollX(deltaX, deltaY);\n var handleScrollY = this.handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n this.deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this.deltaY += handleScrollY ? normalizedEvent.pixelY : 0;\n event.preventDefault();\n var changed;\n\n if (this.deltaX !== 0 || this.deltaY !== 0) {\n if (this.stopPropagation()) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this.animationFrameID === null) {\n this.animationFrameID = requestAnimationFramePolyfill(this.didWheel);\n }\n };\n\n _proto.didWheel = function didWheel() {\n this.animationFrameID = null;\n this.onWheelCallback(this.deltaX, this.deltaY);\n this.deltaX = 0;\n this.deltaY = 0;\n };\n\n return WheelHandler;\n}();\n\nexport default WheelHandler;","import getGlobal from '../getGlobal';\nvar g = getGlobal();\nexport default g.cancelAnimationFrame || g.webkitCancelAnimationFrame || g.mozCancelAnimationFrame || g.oCancelAnimationFrame || g.msCancelAnimationFrame || g.clearTimeout;","import { canUseDOM } from '../query';\nimport _cancelAnimationFramePolyfill from './cancelAnimationFramePolyfill';\nexport { _cancelAnimationFramePolyfill as cancelAnimationFramePolyfill };\nimport _nativeRequestAnimationFrame from './nativeRequestAnimationFrame';\nexport { _nativeRequestAnimationFrame as nativeRequestAnimationFrame };\nimport _requestAnimationFramePolyfill from './requestAnimationFramePolyfill';\nexport { _requestAnimationFramePolyfill as requestAnimationFramePolyfill };\nvar vendorMap = {\n animation: 'animationend',\n OAnimation: 'oAnimationEnd',\n MozAnimation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd'\n};\n\nfunction getAnimationEvent() {\n if (!canUseDOM) {\n return;\n }\n\n var tempAnimationEnd;\n var style = document.createElement('div').style;\n\n for (tempAnimationEnd in vendorMap) {\n if (style[tempAnimationEnd] !== undefined) {\n return vendorMap[tempAnimationEnd];\n }\n }\n}\n\nexport var events = function events() {\n return {\n end: getAnimationEvent()\n };\n};","import getGlobal from '../getGlobal';\nvar g = getGlobal();\nexport default g.requestAnimationFrame || g.webkitRequestAnimationFrame || g.mozRequestAnimationFrame || g.oRequestAnimationFrame || g.msRequestAnimationFrame;","import nativeRequestAnimationFrame from './nativeRequestAnimationFrame';\nimport emptyFunction from '../utils/emptyFunction';\nimport getGlobal from '../getGlobal';\nvar g = getGlobal();\nvar lastTime = 0;\n\nfunction _setTimeout(callback) {\n var currTime = Date.now();\n var timeDelay = Math.max(0, 16 - (currTime - lastTime));\n lastTime = currTime + timeDelay;\n return g.setTimeout(function () {\n callback(Date.now());\n }, timeDelay);\n}\n/**\n * Here is the native and polyfill version of requestAnimationFrame.\n * Please don't use it directly and use requestAnimationFrame module instead.\n */\n\n\nvar requestAnimationFrame = nativeRequestAnimationFrame && nativeRequestAnimationFrame.bind(g) || _setTimeout; // Works around a rare bug in Safari 6 where the first request is never invoked.\n\n\nrequestAnimationFrame(emptyFunction);\nexport default requestAnimationFrame;","import hasClass from './hasClass';\nexport default (function (target, className) {\n if (className) {\n if (target.classList) {\n target.classList.add(className);\n } else if (!hasClass(target, className)) {\n target.className = target.className + \" \" + className;\n }\n }\n\n return target;\n});","export default (function (target, className) {\n if (target.classList) {\n return !!className && target.classList.contains(className);\n }\n\n return (\" \" + target.className + \" \").indexOf(\" \" + className + \" \") !== -1;\n});","import _addClass from './addClass';\nexport { _addClass as addClass };\nimport _hasClass from './hasClass';\nexport { _hasClass as hasClass };\nimport _removeClass from './removeClass';\nexport { _removeClass as removeClass };\nimport _toggleClass from './toggleClass';\nexport { _toggleClass as toggleClass };","export default (function (target, className) {\n if (className) {\n if (target.classList) {\n target.classList.remove(className);\n } else {\n target.className = target.className.replace(new RegExp(\"(^|\\\\s)\" + className + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ') // multiple spaces to one\n .replace(/^\\s*|\\s*$/g, ''); // trim the ends\n }\n }\n\n return target;\n});","import hasClass from './hasClass';\nimport addClass from './addClass';\nimport removeClass from './removeClass';\nexport default (function (target, className) {\n if (hasClass(target, className)) {\n return removeClass(target, className);\n }\n\n return addClass(target, className);\n});","import _on from './on';\nexport { _on as on };\nimport _off from './off';\nexport { _off as off };","/**\n * Unbind `target` event `eventName`'s callback `listener`.\n *\n * @param {Element} target\n * @param {String} eventName\n * @param {Function} listener\n * @param {Boolean} capture\n * @api public\n */\nexport default (function (target, eventName, listener, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n target.removeEventListener(eventName, listener, capture);\n});","/**\n * Bind `target` event `eventName`'s callback `listener`.\n * @param {Element} target\n * @param {String} eventName\n * @param {Function} listener\n * @param {Boolean} capture\n * @return {Object}\n */\nexport default (function (target, eventName, listener, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n target.addEventListener(eventName, listener, capture);\n return {\n off: function off() {\n target.removeEventListener(eventName, listener, capture);\n }\n };\n});","// the only reliable means to get the global object is\n// `Function('return this')()`\n// However, this causes CSP violations in Chrome apps.\n// https://github.com/tc39/proposal-global\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('unable to locate global object');\n}\n\nexport default getGlobal;","import canUseDOM from './query/canUseDOM';\nimport { camelize } from './utils/stringFormatter';\nvar memoized = {};\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\nvar prefixRegex = new RegExp(\"^(\" + prefixes.join('|') + \")\");\nvar testStyle = canUseDOM ? document.createElement('div').style : {};\n\nfunction getWithPrefix(name) {\n for (var i = 0; i < prefixes.length; i += 1) {\n var prefixedName = prefixes[i] + name;\n\n if (prefixedName in testStyle) {\n return prefixedName;\n }\n }\n\n return null;\n}\n/**\n * @param {string} property Name of a css property to check for.\n * @return {?string} property name supported in the browser, or null if not\n * supported.\n */\n\n\nfunction getVendorPrefixedName(property) {\n var name = camelize(property);\n\n if (memoized[name] === undefined) {\n var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);\n\n if (prefixRegex.test(capitalizedName)) {\n throw new Error(\"getVendorPrefixedName must only be called with unprefixed\\n CSS property names. It was called with \" + property);\n }\n\n memoized[name] = name in testStyle ? name : getWithPrefix(capitalizedName);\n }\n\n return memoized[name];\n}\n\nexport default getVendorPrefixedName;","export * from './classNames';\nexport * from './style';\nexport * from './query';\nexport * from './events';\nimport * as _animation from './animation';\nexport { _animation as animation };\nimport _transition from './transition';\nexport { _transition as transition };\nimport _translateDOMPositionXY from './transition/translateDOMPositionXY';\nexport { _translateDOMPositionXY as translateDOMPositionXY };\nimport _getVendorPrefixedName from './getVendorPrefixedName';\nexport { _getVendorPrefixedName as getVendorPrefixedName };\nimport _BrowserSupportCore from './BrowserSupportCore';\nexport { _BrowserSupportCore as BrowserSupportCore };\nimport _DOMMouseMoveTracker from './DOMMouseMoveTracker';\nexport { _DOMMouseMoveTracker as DOMMouseMoveTracker };\nimport _WheelHandler from './WheelHandler';\nexport { _WheelHandler as WheelHandler };","import UserAgent from './utils/UserAgent_DEPRECATED';\nimport isEventSupported from './utils/isEventSupported'; // Reasonable defaults\n\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\nfunction normalizeWheel(event) {\n var sX = 0,\n sY = 0,\n // spinX, spinY\n pX = 0,\n pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in event) {\n sY = event.detail;\n }\n\n if ('wheelDelta' in event) {\n sY = -event.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in event) {\n sY = -event.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in event) {\n sX = -event.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pY = event.deltaY;\n }\n\n if ('deltaX' in event) {\n pX = event.deltaX;\n }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\n\n\nnormalizeWheel.getEventType = function () {\n if (UserAgent.firefox()) {\n return 'DOMMouseScroll';\n }\n\n return isEventSupported('wheel') ? 'wheel' : 'mousewheel';\n};\n\nexport default normalizeWheel;","export default (function (doc) {\n if (doc === void 0) {\n doc = document;\n }\n\n return doc.activeElement;\n});","var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/* eslint-disable */\nimport canUseDOM from './canUseDOM';\n\nvar fallback = function fallback(context, node) {\n if (node) {\n do {\n if (node === context) {\n return true;\n }\n } while (node = node.parentNode);\n }\n\n return false;\n}; // HTML DOM and SVG DOM may have different support levels,\n// so we need to check on context instead of a document root element.\n\n\nvar contains = function contains(context, node) {\n if (context.contains) {\n return context.contains(node);\n } else if (context.compareDocumentPosition) {\n return context === node || !!(context.compareDocumentPosition(node) & 16);\n }\n\n return fallback(context, node);\n};\n\nexport default (function () {\n return canUseDOM ? contains : fallback;\n})();","export default (function (container, defaultContainer) {\n container = typeof container === 'function' ? container() : container;\n return container || defaultContainer;\n});","import getWindow from './getWindow';\nimport getOffset from './getOffset';\nexport default (function (node, client) {\n var win = getWindow(node);\n\n if (win) {\n return win.innerHeight;\n }\n\n return client ? node.clientHeight : getOffset(node).height;\n});","import ownerDocument from './ownerDocument';\nimport getWindow from './getWindow';\nimport contains from './contains';\nexport default (function (node) {\n var doc = ownerDocument(node);\n var win = getWindow(doc);\n var docElem = doc && doc.documentElement;\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n\n if (!doc) {\n return null;\n } // Make sure it's not a disconnected DOM node\n\n\n if (!contains(docElem, node)) {\n return box;\n }\n\n if (node.getBoundingClientRect !== undefined) {\n box = node.getBoundingClientRect();\n }\n\n if ((box.width || box.height) && docElem && win) {\n box = {\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n width: (box.width === null ? node.offsetWidth : box.width) || 0,\n height: (box.height === null ? node.offsetHeight : box.height) || 0\n };\n }\n\n return box;\n});","import ownerDocument from './ownerDocument';\nimport nodeName from './nodeName';\nimport { getStyle } from '../style';\nexport default (function (node) {\n var doc = ownerDocument(node);\n var offsetParent = node && node.offsetParent;\n\n while (offsetParent && nodeName(node) !== 'html' && getStyle(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || doc.documentElement;\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport getOffsetParent from './getOffsetParent';\nimport getOffset from './getOffset';\nimport { getStyle } from '../style';\nimport scrollTop from './scrollTop';\nimport scrollLeft from './scrollLeft';\nimport nodeName from './nodeName';\nexport default (function (node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset = null; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (getStyle(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n offsetParent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n\n if (nodeName(offsetParent) !== 'html') {\n var nextParentOffset = getOffset(offsetParent);\n\n if (nextParentOffset) {\n parentOffset.top = nextParentOffset.top;\n parentOffset.left = nextParentOffset.left;\n }\n }\n\n parentOffset.top += parseInt(getStyle(offsetParent, 'borderTopWidth'), 10) - scrollTop(offsetParent) || 0;\n parentOffset.left += parseInt(getStyle(offsetParent, 'borderLeftWidth'), 10) - scrollLeft(offsetParent) || 0;\n } // Subtract parent offsets and node margins\n\n\n if (offset) {\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - (parseInt(getStyle(node, 'marginTop'), 10) || 0),\n left: offset.left - parentOffset.left - (parseInt(getStyle(node, 'marginLeft'), 10) || 0)\n });\n }\n\n return null;\n});","import canUseDOM from './canUseDOM';\nvar size;\nexport default (function (recalc) {\n if (size === undefined || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n var body = document.body;\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n body.removeChild(scrollDiv);\n }\n }\n\n return size;\n});","import getWindow from './getWindow';\nimport getOffset from './getOffset';\nexport default (function (node, client) {\n var win = getWindow(node);\n\n if (win) {\n return win.innerWidth;\n }\n\n if (client) {\n return node.clientWidth;\n }\n\n var offset = getOffset(node);\n return offset ? offset.width : 0;\n});","export default (function (node) {\n if (node === node.window) {\n return node;\n }\n\n return node.nodeType === 9 ? node.defaultView || node.parentWindow : null;\n});","import _ownerDocument from './ownerDocument';\nexport { _ownerDocument as ownerDocument };\nimport _ownerWindow from './ownerWindow';\nexport { _ownerWindow as ownerWindow };\nimport _getWindow from './getWindow';\nexport { _getWindow as getWindow };\nimport _getContainer from './getContainer';\nexport { _getContainer as getContainer };\nimport _canUseDOM from './canUseDOM';\nexport { _canUseDOM as canUseDOM };\nimport _contains from './contains';\nexport { _contains as contains };\nimport _scrollTop from './scrollTop';\nexport { _scrollTop as scrollTop };\nimport _scrollLeft from './scrollLeft';\nexport { _scrollLeft as scrollLeft };\nimport _getOffset from './getOffset';\nexport { _getOffset as getOffset };\nimport _nodeName from './nodeName';\nexport { _nodeName as nodeName };\nimport _getOffsetParent from './getOffsetParent';\nexport { _getOffsetParent as getOffsetParent };\nimport _getPosition from './getPosition';\nexport { _getPosition as getPosition };\nimport _isOverflowing from './isOverflowing';\nexport { _isOverflowing as isOverflowing };\nimport _activeElement from './activeElement';\nexport { _activeElement as activeElement };\nimport _getScrollbarSize from './getScrollbarSize';\nexport { _getScrollbarSize as getScrollbarSize };\nimport _getHeight from './getHeight';\nexport { _getHeight as getHeight };\nimport _getWidth from './getWidth';\nexport { _getWidth as getWidth };","import getWindow from './getWindow';\nimport ownerDocument from './ownerDocument';\n\nfunction bodyIsOverflowing(node) {\n var doc = ownerDocument(node);\n var win = getWindow(doc);\n var fullWidth = win.innerWidth;\n\n if (doc.body) {\n return doc.body.clientWidth < fullWidth;\n }\n\n return false;\n}\n\nexport default (function (container) {\n var win = getWindow(container);\n var isBody = container && container.tagName.toLowerCase() === 'body';\n return win || isBody ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;\n});","export default (function (node) {\n return node.nodeName && node.nodeName.toLowerCase();\n});","export default (function (node) {\n return node && node.ownerDocument || document;\n});","import ownerDocument from './ownerDocument';\nexport default (function (componentOrElement) {\n var doc = ownerDocument(componentOrElement);\n return doc.defaultView;\n});","import getWindow from './getWindow';\nexport default (function (node, val) {\n var win = getWindow(node);\n var left = node.scrollLeft;\n var top = 0;\n\n if (win) {\n left = 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft;\n top = 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop;\n }\n\n if (val !== undefined) {\n if (win) {\n win.scrollTo(val, top);\n } else {\n node.scrollLeft = val;\n }\n }\n\n return left;\n});","import getWindow from './getWindow';\nexport default (function (node, val) {\n var win = getWindow(node);\n var top = node.scrollTop;\n var left = 0;\n\n if (win) {\n top = 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop;\n left = 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft;\n }\n\n if (val !== undefined) {\n if (win) {\n win.scrollTo(left, val);\n } else {\n node.scrollTop = val;\n }\n }\n\n return top;\n});","import hyphenateStyleName from './hyphenateStyleName';\nimport removeStyle from './removeStyle';\nexport default (function (node, property, value) {\n var css = '';\n var props = property;\n\n if (typeof property === 'string') {\n if (value === undefined) {\n throw new Error('value is undefined');\n }\n\n (props = {})[property] = value;\n }\n\n if (typeof props === 'object') {\n for (var key in props) {\n if (Object.prototype.hasOwnProperty.call(props, key)) {\n if (!props[key] && props[key] !== 0) {\n removeStyle(node, hyphenateStyleName(key));\n } else {\n css += hyphenateStyleName(key) + \":\" + props[key] + \";\";\n }\n }\n }\n }\n\n node.style.cssText += \";\" + css;\n});","import { camelize } from '../utils/stringFormatter';\nvar msPattern = /^ms-/;\nexport default (function (name) {\n return camelize(name.replace(msPattern, 'ms-'));\n});","export default (function (node) {\n if (!node) {\n throw new TypeError('No Element passed to `getComputedStyle()`');\n }\n\n var doc = node.ownerDocument;\n\n if ('defaultView' in doc) {\n if (doc.defaultView.opener) {\n return node.ownerDocument.defaultView.getComputedStyle(node, null);\n }\n\n return window.getComputedStyle(node, null);\n }\n\n return null;\n});","import camelizeStyleName from './camelizeStyleName';\nimport getComputedStyle from './getComputedStyle';\nimport hyphenateStyleName from './hyphenateStyleName';\nexport default (function (node, property) {\n if (property) {\n var value = node.style[camelizeStyleName(property)];\n\n if (value) {\n return value;\n }\n\n var styles = getComputedStyle(node);\n\n if (styles) {\n return styles.getPropertyValue(hyphenateStyleName(property));\n }\n }\n\n return node.style || getComputedStyle(node);\n});","import { hyphenate } from '../utils/stringFormatter';\nvar msPattern = /^ms-/;\nexport default (function (string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n});","import _getStyle from './getStyle';\nexport { _getStyle as getStyle };\nimport _removeStyle from './removeStyle';\nexport { _removeStyle as removeStyle };\nimport _addStyle from './addStyle';\nexport { _addStyle as addStyle };\nimport _getComputedStyle from './getComputedStyle';\nexport { _getComputedStyle as getComputedStyle };","function removeStyle(node, key) {\n if ('removeProperty' in node.style) {\n node.style.removeProperty(key);\n } else if (typeof node.style.removeAttribute === 'function') {\n node.style.removeAttribute(key);\n }\n}\n/**\n * key(s) typeof [string , array] ?\n */\n\n\nexport default (function (node, keys) {\n if (typeof keys === 'string') {\n removeStyle(node, keys);\n } else if (Object.prototype.toString.call(keys) === '[object Array]') {\n keys.forEach(function (key) {\n return removeStyle(node, key);\n });\n }\n});","import { canUseDOM } from '../query';\n\nfunction getTransitionProperties() {\n if (!canUseDOM) {\n return {};\n }\n\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var style = document.createElement('div').style;\n var tempTransitionEnd;\n var tempPrefix = '';\n\n for (var i = 0; i < vendors.length; i += 1) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n tempPrefix = \"-\" + vendor.toLowerCase();\n tempTransitionEnd = vendorMap[vendor]('TransitionEnd');\n break;\n }\n }\n\n if (!tempTransitionEnd && 'transitionProperty' in style) {\n tempTransitionEnd = 'transitionend';\n }\n\n style = null;\n return {\n transitionEnd: tempTransitionEnd,\n prefix: tempPrefix\n };\n}\n\nexport default (function () {\n var _getTransitionPropert = getTransitionProperties(),\n prefix = _getTransitionPropert.prefix,\n transitionEnd = _getTransitionPropert.transitionEnd;\n\n var addPrefix = function addPrefix(name) {\n return prefix + \"-\" + name;\n };\n\n return {\n end: transitionEnd,\n backfaceVisibility: addPrefix('backface-visibility'),\n transform: addPrefix('transform'),\n property: addPrefix('transition-property'),\n timing: addPrefix('transition-timing-function'),\n delay: addPrefix('transition-delay'),\n duration: addPrefix('transition-duration')\n };\n});","/**\n * Source code reference from:\n * https://github.com/facebook/fbjs/blob/d308fa83c9/packages/fbjs/src/dom/translateDOMPositionXY.js\n */\nimport BrowserSupportCore from '../BrowserSupportCore';\nimport getVendorPrefixedName from '../getVendorPrefixedName';\nimport getGlobal from '../getGlobal';\nvar g = getGlobal();\nvar TRANSFORM = getVendorPrefixedName('transform');\nvar BACKFACE_VISIBILITY = getVendorPrefixedName('backfaceVisibility');\nexport var getTranslateDOMPositionXY = function getTranslateDOMPositionXY(conf) {\n if (conf === void 0) {\n conf = {\n enable3DTransform: true\n };\n }\n\n if (BrowserSupportCore.hasCSSTransforms()) {\n var ua = g.window ? g.window.navigator.userAgent : 'UNKNOWN';\n var isSafari = /Safari\\//.test(ua) && !/Chrome\\//.test(ua); // It appears that Safari messes up the composition order\n // of GPU-accelerated layers\n // (see bug https://bugs.webkit.org/show_bug.cgi?id=61824).\n // Use 2D translation instead.\n\n if (!isSafari && BrowserSupportCore.hasCSS3DTransforms() && conf.enable3DTransform) {\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate3d(\" + x + \"px,\" + y + \"px,0)\";\n style[BACKFACE_VISIBILITY] = 'hidden';\n return style;\n };\n }\n\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate(\" + x + \"px,\" + y + \"px)\";\n return style;\n };\n }\n\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style.left = x + \"px\";\n style.top = y + \"px\";\n return style;\n };\n};\nvar translateDOMPositionXY = getTranslateDOMPositionXY();\nexport default translateDOMPositionXY;","var populated = false; // Browsers\n\nvar _ie;\n\nvar _firefox;\n\nvar _opera;\n\nvar _webkit;\n\nvar _chrome; // Actual IE browser for compatibility mode\n\n\nvar ieRealVersion; // Platforms\n\nvar _osx;\n\nvar _windows;\n\nvar _linux;\n\nvar _android; // Architectures\n\n\nvar win64; // Devices\n\nvar _iphone;\n\nvar _ipad;\n\nvar _native;\n\nvar _mobile;\n\nfunction populate() {\n if (populated) {\n return;\n }\n\n populated = true; // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas); // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n\n win64 = !!/Win64/.exec(uas);\n\n if (agent) {\n if (agent[1]) {\n _ie = parseFloat(agent[1]);\n } else {\n _ie = agent[5] ? parseFloat(agent[5]) : NaN;\n } // IE compatibility mode\n\n\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n } // grab the \"true\" ie version from the trident token if available\n\n\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n ieRealVersion = trident ? parseFloat(trident[1]) + 4 : _ie;\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = NaN;\n _firefox = NaN;\n _opera = NaN;\n _chrome = NaN;\n _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = false;\n _windows = false;\n _linux = false;\n }\n}\n\nvar UserAgent = {\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function ie() {\n return populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function ieCompatibilityMode() {\n return populate() || ieRealVersion > _ie;\n },\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function ie64() {\n return UserAgent.ie() && win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function firefox() {\n return populate() || _firefox;\n },\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function opera() {\n return populate() || _opera;\n },\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function webkit() {\n return populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function safari() {\n return UserAgent.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome: function chrome() {\n return populate() || _chrome;\n },\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function windows() {\n return populate() || _windows;\n },\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function osx() {\n return populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function linux() {\n return populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function iphone() {\n return populate() || _iphone;\n },\n mobile: function mobile() {\n return populate() || _iphone || _ipad || _android || _mobile;\n },\n // webviews inside of the native apps\n nativeApp: function nativeApp() {\n return populate() || _native;\n },\n android: function android() {\n return populate() || _android;\n },\n ipad: function ipad() {\n return populate() || _ipad;\n }\n};\nexport default UserAgent;","var _this = this;\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return _this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nexport default emptyFunction;","import canUseDOM from '../query/canUseDOM';\nvar useHasFeature;\n\nif (canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = \"on\" + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nexport default isEventSupported;","/* eslint-disable */\n\n/**\n * @example\n * underscoreName('getList');\n * => get_list\n */\nexport function underscore(string) {\n return string.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\n/**\n * @example\n * camelize('font-size');\n * => fontSize\n */\n\nexport function camelize(string) {\n return string.replace(/\\-(\\w)/g, function (_char) {\n return _char.slice(1).toUpperCase();\n });\n}\n/**\n * @example\n * camelize('fontSize');\n * => font-size\n */\n\nexport function hyphenate(string) {\n return string.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n/**\n * @example\n * merge('{0} - A front-end {1} ','Suite','framework');\n * => Suite - A front-end framework\n */\n\nexport function merge(pattern) {\n var pointer = 0,\n i;\n\n for (i = 1; i < arguments.length; i += 1) {\n pattern = pattern.split(\"{\" + pointer + \"}\").join(arguments[i]);\n pointer += 1;\n }\n\n return pattern;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _getVendorPrefixedName = _interopRequireDefault(require(\"./getVendorPrefixedName\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n /**\n * @return {bool} True if browser supports css animations.\n */\n hasCSSAnimations: function hasCSSAnimations() {\n return !!(0, _getVendorPrefixedName[\"default\"])('animationName');\n },\n\n /**\n * @return {bool} True if browser supports css transforms.\n */\n hasCSSTransforms: function hasCSSTransforms() {\n return !!(0, _getVendorPrefixedName[\"default\"])('transform');\n },\n\n /**\n * @return {bool} True if browser supports css 3d transforms.\n */\n hasCSS3DTransforms: function hasCSS3DTransforms() {\n return !!(0, _getVendorPrefixedName[\"default\"])('perspective');\n },\n\n /**\n * @return {bool} True if browser supports css transitions.\n */\n hasCSSTransitions: function hasCSSTransitions() {\n return !!(0, _getVendorPrefixedName[\"default\"])('transition');\n }\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _getGlobal = _interopRequireDefault(require(\"../getGlobal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar g = (0, _getGlobal[\"default\"])();\n\nvar _default = g.cancelAnimationFrame || g.webkitCancelAnimationFrame || g.mozCancelAnimationFrame || g.oCancelAnimationFrame || g.msCancelAnimationFrame || g.clearTimeout;\n\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _getGlobal = _interopRequireDefault(require(\"../getGlobal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar g = (0, _getGlobal[\"default\"])();\n\nvar _default = g.requestAnimationFrame || g.webkitRequestAnimationFrame || g.mozRequestAnimationFrame || g.oRequestAnimationFrame || g.msRequestAnimationFrame;\n\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _nativeRequestAnimationFrame = _interopRequireDefault(require(\"./nativeRequestAnimationFrame\"));\n\nvar _emptyFunction = _interopRequireDefault(require(\"../utils/emptyFunction\"));\n\nvar _getGlobal = _interopRequireDefault(require(\"../getGlobal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar g = (0, _getGlobal[\"default\"])();\nvar lastTime = 0;\n\nfunction _setTimeout(callback) {\n var currTime = Date.now();\n var timeDelay = Math.max(0, 16 - (currTime - lastTime));\n lastTime = currTime + timeDelay;\n return g.setTimeout(function () {\n callback(Date.now());\n }, timeDelay);\n}\n/**\n * Here is the native and polyfill version of requestAnimationFrame.\n * Please don't use it directly and use requestAnimationFrame module instead.\n */\n\n\nvar requestAnimationFrame = _nativeRequestAnimationFrame[\"default\"] && _nativeRequestAnimationFrame[\"default\"].bind(g) || _setTimeout; // Works around a rare bug in Safari 6 where the first request is never invoked.\n\n\nrequestAnimationFrame(_emptyFunction[\"default\"]);\nvar _default = requestAnimationFrame;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n// the only reliable means to get the global object is\n// `Function('return this')()`\n// However, this causes CSP violations in Chrome apps.\n// https://github.com/tc39/proposal-global\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('unable to locate global object');\n}\n\nvar _default = getGlobal;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _canUseDOM = _interopRequireDefault(require(\"./query/canUseDOM\"));\n\nvar _stringFormatter = require(\"./utils/stringFormatter\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar memoized = {};\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\nvar prefixRegex = new RegExp(\"^(\" + prefixes.join('|') + \")\");\nvar testStyle = _canUseDOM[\"default\"] ? document.createElement('div').style : {};\n\nfunction getWithPrefix(name) {\n for (var i = 0; i < prefixes.length; i += 1) {\n var prefixedName = prefixes[i] + name;\n\n if (prefixedName in testStyle) {\n return prefixedName;\n }\n }\n\n return null;\n}\n/**\n * @param {string} property Name of a css property to check for.\n * @return {?string} property name supported in the browser, or null if not\n * supported.\n */\n\n\nfunction getVendorPrefixedName(property) {\n var name = (0, _stringFormatter.camelize)(property);\n\n if (memoized[name] === undefined) {\n var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);\n\n if (prefixRegex.test(capitalizedName)) {\n throw new Error(\"getVendorPrefixedName must only be called with unprefixed\\n CSS property names. It was called with \" + property);\n }\n\n memoized[name] = name in testStyle ? name : getWithPrefix(capitalizedName);\n }\n\n return memoized[name];\n}\n\nvar _default = getVendorPrefixedName;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar _default = canUseDOM;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.getTranslateDOMPositionXY = void 0;\n\nvar _BrowserSupportCore = _interopRequireDefault(require(\"../BrowserSupportCore\"));\n\nvar _getVendorPrefixedName = _interopRequireDefault(require(\"../getVendorPrefixedName\"));\n\nvar _getGlobal = _interopRequireDefault(require(\"../getGlobal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Source code reference from:\n * https://github.com/facebook/fbjs/blob/d308fa83c9/packages/fbjs/src/dom/translateDOMPositionXY.js\n */\nvar g = (0, _getGlobal[\"default\"])();\nvar TRANSFORM = (0, _getVendorPrefixedName[\"default\"])('transform');\nvar BACKFACE_VISIBILITY = (0, _getVendorPrefixedName[\"default\"])('backfaceVisibility');\n\nvar getTranslateDOMPositionXY = function getTranslateDOMPositionXY(conf) {\n if (conf === void 0) {\n conf = {\n enable3DTransform: true\n };\n }\n\n if (_BrowserSupportCore[\"default\"].hasCSSTransforms()) {\n var ua = g.window ? g.window.navigator.userAgent : 'UNKNOWN';\n var isSafari = /Safari\\//.test(ua) && !/Chrome\\//.test(ua); // It appears that Safari messes up the composition order\n // of GPU-accelerated layers\n // (see bug https://bugs.webkit.org/show_bug.cgi?id=61824).\n // Use 2D translation instead.\n\n if (!isSafari && _BrowserSupportCore[\"default\"].hasCSS3DTransforms() && conf.enable3DTransform) {\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate3d(\" + x + \"px,\" + y + \"px,0)\";\n style[BACKFACE_VISIBILITY] = 'hidden';\n return style;\n };\n }\n\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate(\" + x + \"px,\" + y + \"px)\";\n return style;\n };\n }\n\n return function (style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style.left = x + \"px\";\n style.top = y + \"px\";\n return style;\n };\n};\n\nexports.getTranslateDOMPositionXY = getTranslateDOMPositionXY;\nvar translateDOMPositionXY = getTranslateDOMPositionXY();\nvar _default = translateDOMPositionXY;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _this = void 0;\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return _this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nvar _default = emptyFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.underscore = underscore;\nexports.camelize = camelize;\nexports.hyphenate = hyphenate;\nexports.merge = merge;\n\n/* eslint-disable */\n\n/**\n * @example\n * underscoreName('getList');\n * => get_list\n */\nfunction underscore(string) {\n return string.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\n/**\n * @example\n * camelize('font-size');\n * => fontSize\n */\n\n\nfunction camelize(string) {\n return string.replace(/\\-(\\w)/g, function (_char) {\n return _char.slice(1).toUpperCase();\n });\n}\n/**\n * @example\n * camelize('fontSize');\n * => font-size\n */\n\n\nfunction hyphenate(string) {\n return string.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n/**\n * @example\n * merge('{0} - A front-end {1} ','Suite','framework');\n * => Suite - A front-end framework\n */\n\n\nfunction merge(pattern) {\n var pointer = 0,\n i;\n\n for (i = 1; i < arguments.length; i += 1) {\n pattern = pattern.split(\"{\" + pointer + \"}\").join(arguments[i]);\n pointer += 1;\n }\n\n return pattern;\n}","function resizeListener(e) {\r\n var win = e.target || e.srcElement\r\n if (win.__resizeRAF__) {\r\n cancelAnimationFrame(win.__resizeRAF__)\r\n }\r\n win.__resizeRAF__ = requestAnimationFrame(function () {\r\n var trigger = win.__resizeTrigger__\r\n var listeners = trigger && trigger.__resizeListeners__\r\n if (listeners) {\r\n listeners.forEach(function (fn) {\r\n fn.call(trigger, e)\r\n })\r\n }\r\n })\r\n}\r\n\r\nvar exports = function exports(element, fn) {\r\n var window = this\r\n var document = window.document\r\n var isIE\r\n\r\n var attachEvent = document.attachEvent\r\n if (typeof navigator !== 'undefined') {\r\n isIE = navigator.userAgent.match(/Trident/) ||\r\n navigator.userAgent.match(/Edge/)\r\n }\r\n\r\n function objectLoad() {\r\n this.contentDocument.defaultView.__resizeTrigger__ = this.__resizeElement__\r\n this.contentDocument.defaultView.addEventListener('resize', resizeListener)\r\n }\r\n\r\n if (!element.__resizeListeners__) {\r\n element.__resizeListeners__ = []\r\n if (attachEvent) {\r\n element.__resizeTrigger__ = element\r\n element.attachEvent('onresize', resizeListener)\r\n } else {\r\n if (getComputedStyle(element).position === 'static') {\r\n element.style.position = 'relative'\r\n }\r\n var obj = (element.__resizeTrigger__ = document.createElement('object'))\r\n obj.setAttribute(\r\n 'style',\r\n 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; pointer-events: none; z-index: -1; opacity: 0;'\r\n )\r\n obj.setAttribute('class', 'resize-sensor')\r\n\r\n // prevent <object> from stealing keyboard focus\r\n obj.setAttribute('tabindex', '-1');\r\n\r\n obj.__resizeElement__ = element\r\n obj.onload = objectLoad\r\n obj.type = 'text/html'\r\n if (isIE) {\r\n element.appendChild(obj)\r\n }\r\n obj.data = 'about:blank'\r\n if (!isIE) {\r\n element.appendChild(obj)\r\n }\r\n }\r\n }\r\n element.__resizeListeners__.push(fn)\r\n}\r\n\r\nmodule.exports = typeof window === 'undefined' ? exports : exports.bind(window)\r\n\r\nmodule.exports.unbind = function (element, fn) {\r\n var attachEvent = document.attachEvent\r\n var listeners = element.__resizeListeners__ || []\r\n if (fn) {\r\n var index = listeners.indexOf(fn)\r\n if (index !== -1) {\r\n listeners.splice(index, 1)\r\n }\r\n } else {\r\n listeners = element.__resizeListeners__ = []\r\n }\r\n if (!listeners.length) {\r\n if (attachEvent) {\r\n element.detachEvent('onresize', resizeListener)\r\n } else if (element.__resizeTrigger__) {\r\n var contentDocument = element.__resizeTrigger__.contentDocument;\r\n var defaultView = contentDocument && contentDocument.defaultView;\r\n if (defaultView) {\r\n defaultView.removeEventListener('resize', resizeListener);\r\n delete defaultView.__resizeTrigger__;\r\n }\r\n element.__resizeTrigger__ = !element.removeChild(\r\n element.__resizeTrigger__\r\n )\r\n }\r\n delete element.__resizeListeners__\r\n }\r\n}\r\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","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\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","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","module.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\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 baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\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 baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\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 baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\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 `_.reduce` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\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","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\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 keysIn = require('./keysIn');\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 SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\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 baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOfWith;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\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","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\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","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\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 arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\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 arrayMap = require('./_arrayMap'),\n baseIndexOf = require('./_baseIndexOf'),\n baseIndexOfWith = require('./_baseIndexOfWith'),\n baseUnary = require('./_baseUnary'),\n copyArray = require('./_copyArray');\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 * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nmodule.exports = basePullAll;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\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 (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\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 identity = require('./identity'),\n metaMap = require('./_metaMap');\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\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","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\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","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\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 SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\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","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\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 isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\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","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\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","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\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 createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\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 baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\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 composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n countHolders = require('./_countHolders'),\n createCtor = require('./_createCtor'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n reorder = require('./_reorder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n","var isLaziable = require('./_isLaziable'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\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 // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\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 // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\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 metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","var realNames = require('./_realNames');\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 name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\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","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\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","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\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 LazyWrapper = require('./_LazyWrapper'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n lodash = require('./wrapperLodash');\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\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 composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n","var WeakMap = require('./_WeakMap');\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\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","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\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","var baseSetData = require('./_baseSetData'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\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","var getWrapDetails = require('./_getWrapDetails'),\n insertWrapDetails = require('./_insertWrapDetails'),\n setToString = require('./_setToString'),\n updateWrapDetails = require('./_updateWrapDetails');\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\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","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\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 match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\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 arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\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","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\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 createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nmodule.exports = curry;\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 findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.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=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\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\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.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=0] 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': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\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 arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\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 isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/**\n * Checks if `value` is likely a DOM element.\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 DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\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","/**\n * Checks if `value` is `null`.\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 `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nmodule.exports = isNull;\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 basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\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 pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\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","var baseRest = require('./_baseRest'),\n pullAll = require('./pullAll');\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nmodule.exports = pull;\n","var basePullAll = require('./_basePullAll');\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nmodule.exports = pullAll;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\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 * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\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|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\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 baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\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 baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nvar unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2));\n});\n\nmodule.exports = unionBy;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\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","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\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 a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","var arrayFilter = require('./_arrayFilter'),\n baseRest = require('./_baseRest'),\n baseXor = require('./_baseXor'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nmodule.exports = xor;\n","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\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 _this.setState({ subscribed: nextState });\n };\n\n _this.store = context.miniStore;\n _this.state = {\n subscribed: finnalMapStateToProps(_this.store.getState(), props),\n store: _this.store,\n props: props\n };\n return _this;\n }\n\n _createClass(Connect, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.trySubscribe();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.tryUnsubscribe();\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _shallowequal2.default)(this.props, nextProps) || !(0, _shallowequal2.default)(this.state.subscribed, nextState.subscribed);\n }\n }, {\n key: 'trySubscribe',\n value: function trySubscribe() {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n }\n }, {\n key: 'tryUnsubscribe',\n value: function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n return this.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props, this.state.subscribed, {\n store: this.store\n });\n\n if (!isStateless(WrappedComponent)) {\n props = _extends({}, props, {\n ref: function ref(c) {\n return _this2.wrappedInstance = c;\n }\n });\n }\n\n return _react2.default.createElement(WrappedComponent, props);\n }\n }]);\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n Connect.contextTypes = {\n miniStore: _PropTypes.storeShape.isRequired\n };\n\n\n (0, _reactLifecyclesCompat.polyfill)(Connect);\n\n return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent);\n };\n}","\"use strict\";\n\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 } from 'react-dom';\nimport { isUsingStaticRendering, observer, Observer } from 'mobx-react-lite';\nexport { Observer, useObserver, useAsObservableSource, useLocalStore, isUsingStaticRendering, useStaticRendering } from 'mobx-react-lite';\nimport React__default, { PureComponent, Component, forwardRef, memo, createElement } from 'react';\nimport { createAtom, _allowStateChanges, Reaction, $mobx, isObservableArray, isObservableObject, isObservableMap, untracked, observable, configure } from 'mobx';\n\nvar symbolId = 0;\n\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name);\n }\n\n var symbol = \"__$mobx-react \" + name + \" (\" + symbolId + \")\";\n symbolId++;\n return symbol;\n}\n\nvar createdSymbols = {};\nfunction newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name);\n }\n\n return createdSymbols[name];\n}\nfunction shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) { return true; }\n\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) { return false; }\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n} // based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\n\n\nvar hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n};\nfunction copyStaticProperties(base, target) {\n var protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base));\n Object.getOwnPropertyNames(base).forEach(function (key) {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n/**\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\n * @param target\n * @param prop\n * @param value\n */\n\nfunction setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n target[prop] = value;\n }\n}\n/**\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\n * and the handler provided by mobx-react\n */\n\nvar mobxMixins = newSymbol(\"patchMixins\");\nvar mobxPatchedDefinition = newSymbol(\"patchedDefinition\");\n\nfunction getMixins(target, methodName) {\n var mixins = target[mobxMixins] = target[mobxMixins] || {};\n var methodMixins = mixins[methodName] = mixins[methodName] || {};\n methodMixins.locks = methodMixins.locks || 0;\n methodMixins.methods = methodMixins.methods || [];\n return methodMixins;\n}\n\nfunction wrapper(realMethod, mixins) {\n var this$1 = this;\n var args = [], len = arguments.length - 2;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 2 ];\n\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++;\n\n try {\n var retVal;\n\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args);\n }\n\n return retVal;\n } finally {\n mixins.locks--;\n\n if (mixins.locks === 0) {\n mixins.methods.forEach(function (mx) {\n mx.apply(this$1, args);\n });\n }\n }\n}\n\nfunction wrapFunction(realMethod, mixins) {\n var fn = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n wrapper.call.apply(wrapper, [ this, realMethod, mixins ].concat( args ));\n };\n\n return fn;\n}\n\nfunction patch(target, methodName, mixinMethod) {\n var mixins = getMixins(target, methodName);\n\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod);\n }\n\n var oldDefinition = Object.getOwnPropertyDescriptor(target, methodName);\n\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return;\n }\n\n var originalMethod = target[methodName];\n var newDefinition = createDefinition(target, methodName, oldDefinition ? oldDefinition.enumerable : undefined, mixins, originalMethod);\n Object.defineProperty(target, methodName, newDefinition);\n}\n\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n var obj;\n\n var wrappedFunc = wrapFunction(originalMethod, mixins);\n return ( obj = {}, obj[mobxPatchedDefinition] = true, obj.get = function () {\n return wrappedFunc;\n }, obj.set = function (value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins);\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n var newDefinition = createDefinition(this, methodName, enumerable, mixins, value);\n Object.defineProperty(this, methodName, newDefinition);\n }\n }, obj.configurable = true, obj.enumerable = enumerable, obj );\n}\n\nvar mobxAdminProperty = $mobx || \"$mobx\";\nvar mobxIsUnmounted = newSymbol(\"isUnmounted\");\nvar skipRenderKey = newSymbol(\"skipRender\");\nvar isForcingUpdateKey = newSymbol(\"isForcingUpdate\");\nfunction makeClassComponentObserver(componentClass) {\n var target = componentClass.prototype;\n if (target.componentWillReact) { throw new Error(\"The componentWillReact life-cycle event is no longer supported\"); }\n\n if (componentClass.__proto__ !== PureComponent) {\n if (!target.shouldComponentUpdate) { target.shouldComponentUpdate = observerSCU; }else if (target.shouldComponentUpdate !== observerSCU) // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n { throw new Error(\"It is not allowed to use shouldComponentUpdate in observer based components.\"); }\n } // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n\n\n makeObservableProp(target, \"props\");\n makeObservableProp(target, \"state\");\n var baseRender = target.render;\n\n target.render = function () {\n return makeComponentReactive.call(this, baseRender);\n };\n\n patch(target, \"componentWillUnmount\", function () {\n if (isUsingStaticRendering() === true) { return; }\n\n if (this.render[mobxAdminProperty]) {\n this.render[mobxAdminProperty].dispose();\n } else if (process.env.NODE_ENV !== \"production\") {\n var displayName = getDisplayName(this);\n console.warn((\"The render function for an observer component (\" + displayName + \") was modified after MobX attached. This is not supported, since the new function can't be triggered by MobX.\"));\n }\n\n this[mobxIsUnmounted] = true;\n });\n return componentClass;\n} // Generates a friendly name for debugging\n\nfunction getDisplayName(comp) {\n return comp.displayName || comp.name || comp.constructor && (comp.constructor.displayName || comp.constructor.name) || \"<component>\";\n}\n\nfunction makeComponentReactive(render) {\n var this$1 = this;\n\n if (isUsingStaticRendering() === true) { return render.call(this); }\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n\n setHiddenProp(this, skipRenderKey, false);\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n\n setHiddenProp(this, isForcingUpdateKey, false);\n var initialName = getDisplayName(this);\n var baseRender = render.bind(this);\n var isRenderingPending = false;\n var reaction = new Reaction((initialName + \".render()\"), function () {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true;\n\n if (this$1[mobxIsUnmounted] !== true) {\n var hasError = true;\n\n try {\n setHiddenProp(this$1, isForcingUpdateKey, true);\n if (!this$1[skipRenderKey]) { Component.prototype.forceUpdate.call(this$1); }\n hasError = false;\n } finally {\n setHiddenProp(this$1, isForcingUpdateKey, false);\n if (hasError) { reaction.dispose(); }\n }\n }\n }\n });\n reaction.reactComponent = this;\n reactiveRender[mobxAdminProperty] = reaction;\n this.render = reactiveRender;\n\n function reactiveRender() {\n isRenderingPending = false;\n var exception = undefined;\n var rendering = undefined;\n reaction.track(function () {\n try {\n rendering = _allowStateChanges(false, baseRender);\n } catch (e) {\n exception = e;\n }\n });\n\n if (exception) {\n throw exception;\n }\n\n return rendering;\n }\n\n return reactiveRender.call(this);\n}\n\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n 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.\");\n } // update on any state changes (as is the default)\n\n\n if (this.state !== nextState) {\n return true;\n } // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n\n\n return !shallowEqual(this.props, nextProps);\n}\n\nfunction makeObservableProp(target, propName) {\n var valueHolderKey = newSymbol((\"reactProp_\" + propName + \"_valueHolder\"));\n var atomHolderKey = newSymbol((\"reactProp_\" + propName + \"_atomHolder\"));\n\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName));\n }\n\n return this[atomHolderKey];\n }\n\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function () {\n getAtom.call(this).reportObserved();\n return this[valueHolderKey];\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v);\n setHiddenProp(this, skipRenderKey, true);\n getAtom.call(this).reportChanged();\n setHiddenProp(this, skipRenderKey, false);\n } else {\n setHiddenProp(this, valueHolderKey, v);\n }\n }\n });\n}\n\n/* eslint-disable react/display-name */\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for; // Using react-is had some issues (and operates on elements, not on types), see #608 / #609\n\nvar ReactForwardRefSymbol = hasSymbol ? Symbol.for(\"react.forward_ref\") : typeof forwardRef === \"function\" && forwardRef(function () {})[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol ? Symbol.for(\"react.memo\") : typeof memo === \"function\" && memo(function () {})[\"$$typeof\"];\n/**\n * Observer function / decorator\n */\n\nfunction observer$1(componentClass) {\n if (componentClass.isMobxInjector === true) {\n console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\");\n }\n\n if (ReactMemoSymbol && componentClass[\"$$typeof\"] === ReactMemoSymbol) {\n 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.\");\n } // Unwrap forward refs into `<Observer>` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n\n\n if (ReactForwardRefSymbol && componentClass[\"$$typeof\"] === ReactForwardRefSymbol) {\n var baseRender = componentClass.render;\n if (typeof baseRender !== \"function\") { throw new Error(\"render property of ForwardRef was not a function\"); }\n return forwardRef(function ObserverForwardRef() {\n var arguments$1 = arguments;\n\n return React__default.createElement( Observer, null, function () { return baseRender.apply(undefined, arguments$1); } );\n });\n } // Function component\n\n\n if (typeof componentClass === \"function\" && (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !Object.prototype.isPrototypeOf.call(Component, componentClass)) {\n return observer(componentClass);\n }\n\n return makeClassComponentObserver(componentClass);\n}\n\n/* eslint-disable react/prop-types */\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\nvar MobXProviderContext = React__default.createContext({});\nfunction Provider(ref) {\n var children = ref.children;\n var rest = objectWithoutProperties( ref, [\"children\"] );\n var stores = rest;\n\n var parentValue = React__default.useContext(MobXProviderContext);\n var value = React__default.useRef(Object.assign({}, parentValue,\n stores)).current;\n\n if (process && typeof process.env !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\n var newValue = Object.assign({}, value,\n stores); // spread in previous state for the context based stores\n\n if (!shallowEqual(value, newValue)) {\n 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.\");\n }\n }\n\n return React__default.createElement( MobXProviderContext.Provider, { value: value }, children);\n}\nProvider.displayName = \"MobXProvider\";\n\n/**\n * Store Injection\n */\n\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n var Injector = React__default.forwardRef(function (props, ref) {\n var newProps = Object.assign({}, props);\n var context = React__default.useContext(MobXProviderContext);\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {});\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return createElement(component, newProps);\n });\n if (makeReactive) { Injector = observer$1(Injector); }\n Injector.isMobxInjector = true; // assigned late to suppress observer warning\n // Static fields from component should be visible on the generated Injector\n\n copyStaticProperties(component, Injector);\n Injector.wrappedComponent = component;\n Injector.displayName = getInjectName(component, injectNames);\n return Injector;\n}\n\nfunction getInjectName(component, injectNames) {\n var displayName;\n var componentName = component.displayName || component.name || component.constructor && component.constructor.name || \"Component\";\n if (injectNames) { displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\"; }else { displayName = \"inject(\" + componentName + \")\"; }\n return displayName;\n}\n\nfunction grabStoresByName(storeNames) {\n return function (baseStores, nextProps) {\n storeNames.forEach(function (storeName) {\n if (storeName in nextProps // prefer props over stores\n ) { return; }\n if (!(storeName in baseStores)) { throw new Error(\"MobX injector: Store '\" + storeName + \"' is not available! Make sure it is provided by some Provider\"); }\n nextProps[storeName] = baseStores[storeName];\n });\n return nextProps;\n };\n}\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\n\n\nfunction inject(\n/* fn(stores, nextProps) or ...storeNames */) {\n var storeNames = [], len = arguments.length;\n while ( len-- ) storeNames[ len ] = arguments[ len ];\n\n var grabStoresFn;\n\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0];\n return function (componentClass) { return createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true); };\n } else {\n return function (componentClass) { return createStoreInjector(grabStoresByName(storeNames), componentClass, storeNames.join(\"-\"), false); };\n }\n}\n\nvar protoStoreKey = newSymbol(\"disposeOnUnmountProto\");\nvar instStoreKey = newSymbol(\"disposeOnUnmountInst\");\n\nfunction runDisposersOnWillUnmount() {\n var this$1 = this;\n (this[protoStoreKey] || []).concat( (this[instStoreKey] || [])).forEach(function (propKeyOrFunction) {\n var prop = typeof propKeyOrFunction === \"string\" ? this$1[propKeyOrFunction] : propKeyOrFunction;\n\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) { prop.map(function (f) { return f(); }); }else { prop(); }\n }\n });\n}\n\nfunction disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(function (fn) { return disposeOnUnmount(target, fn); });\n }\n\n var c = Object.getPrototypeOf(target).constructor || Object.getPrototypeOf(target.constructor);\n var c2 = Object.getPrototypeOf(target.constructor);\n\n if (!(c === Component || c === PureComponent || c2 === Component || c2 === PureComponent)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\");\n }\n\n if (typeof propertyKeyOrFunction !== \"string\" && typeof propertyKeyOrFunction !== \"function\" && !Array.isArray(propertyKeyOrFunction)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\");\n } // decorator's target is the prototype, so it doesn't have any instance properties like props\n\n\n var isDecorator = typeof propertyKeyOrFunction === \"string\"; // add property key / function we want run (disposed) to the store\n\n var componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey];\n var store = isDecorator ? // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = []) : // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = []);\n store.push(propertyKeyOrFunction); // tweak the component class componentWillUnmount if not done already\n\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount);\n } // return the disposer as is if invoked as a non decorator\n\n\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction;\n }\n}\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var rest = [], len = arguments.length - 6;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 6 ];\n\n return untracked(function () {\n componentName = componentName || \"<<anonymous>>\";\n propFullName = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n var actual = props[propName] === null ? \"null\" : \"undefined\";\n return new Error(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + \"in `\" + componentName + \"`, but its value is `\" + actual + \"`.\");\n }\n\n return null;\n } else {\n return validate.apply(void 0, [ props, propName, componentName, location, propFullName ].concat( rest ));\n }\n });\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n} // Copied from React.PropTypes\n\n\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n} // Copied from React.PropTypes\n\n\nfunction getPropType(propValue) {\n var propType = typeof propValue;\n\n if (Array.isArray(propValue)) {\n return \"array\";\n }\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\n if (isSymbol(propType, propValue)) {\n return \"symbol\";\n }\n\n return propType;\n} // This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\n\n\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\";\n } else if (propValue instanceof RegExp) {\n return \"regexp\";\n }\n }\n\n return propType;\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n return untracked(function () {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) { return null; }\n }\n\n var mobxChecker;\n\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray;\n break;\n\n case \"Object\":\n mobxChecker = isObservableObject;\n break;\n\n case \"Map\":\n mobxChecker = isObservableMap;\n break;\n\n default:\n throw new Error((\"Unexpected mobxType: \" + mobxType));\n }\n\n var propValue = props[propName];\n\n if (!mobxChecker(propValue)) {\n var preciseType = getPreciseType(propValue);\n var nativeTypeExpectationMessage = allowNativeType ? \" or javascript `\" + mobxType.toLowerCase() + \"`\" : \"\";\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + preciseType + \"` supplied to\" + \" `\" + componentName + \"`, expected `mobx.Observable\" + mobxType + \"`\" + nativeTypeExpectationMessage + \".\");\n }\n\n return null;\n });\n });\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n var rest = [], len = arguments.length - 5;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 5 ];\n\n return untracked(function () {\n if (typeof typeChecker !== \"function\") {\n return new Error(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has \" + \"invalid PropType notation.\");\n }\n\n var error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(props, propName, componentName);\n if (error instanceof Error) { return error; }\n var propValue = props[propName];\n\n for (var i = 0; i < propValue.length; i++) {\n error = typeChecker.apply(void 0, [ propValue, i, componentName, location, propFullName + \"[\" + i + \"]\" ].concat( rest ));\n if (error instanceof Error) { return error; }\n }\n\n return null;\n });\n });\n}\n\nvar observableArray = createObservableTypeCheckerCreator(false, \"Array\");\nvar observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false);\nvar observableMap = createObservableTypeCheckerCreator(false, \"Map\");\nvar observableObject = createObservableTypeCheckerCreator(false, \"Object\");\nvar arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\");\nvar arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true);\nvar objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\");\nvar PropTypes = {\n observableArray: observableArray,\n observableArrayOf: observableArrayOf,\n observableMap: observableMap,\n observableObject: observableObject,\n arrayOrObservableArray: arrayOrObservableArray,\n arrayOrObservableArrayOf: arrayOrObservableArrayOf,\n objectOrObservableObject: objectOrObservableObject\n};\n\nif (!Component) { throw new Error(\"mobx-react requires React to be available\"); }\nif (!observable) { throw new Error(\"mobx-react requires mobx to be available\"); }\nif (typeof unstable_batchedUpdates === \"function\") { configure({\n reactionScheduler: unstable_batchedUpdates\n}); }\n\nexport { observer$1 as observer, Provider, MobXProviderContext, inject, disposeOnUnmount, 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar value_types_1 = require(\"./value-types\");\nvar InsertData_1 = require(\"./InsertData\");\nvar DeltaInsertOp = (function () {\n function DeltaInsertOp(insertVal, attributes) {\n if (typeof insertVal === 'string') {\n insertVal = new InsertData_1.InsertDataQuill(value_types_1.DataType.Text, insertVal + '');\n }\n this.insert = insertVal;\n this.attributes = attributes || {};\n }\n DeltaInsertOp.createNewLineOp = function () {\n return new DeltaInsertOp(value_types_1.NewLine);\n };\n DeltaInsertOp.prototype.isContainerBlock = function () {\n var attrs = this.attributes;\n return !!(attrs.blockquote || attrs.list || attrs['code-block'] ||\n attrs.header || attrs.align || attrs.direction || attrs.indent);\n };\n DeltaInsertOp.prototype.isBlockquote = function () {\n return !!this.attributes.blockquote;\n };\n DeltaInsertOp.prototype.isHeader = function () {\n return !!this.attributes.header;\n };\n DeltaInsertOp.prototype.isSameHeaderAs = function (op) {\n return op.attributes.header === this.attributes.header && this.isHeader();\n };\n DeltaInsertOp.prototype.hasSameAdiAs = function (op) {\n return this.attributes.align === op.attributes.align\n && this.attributes.direction === op.attributes.direction\n && this.attributes.indent === op.attributes.indent;\n };\n DeltaInsertOp.prototype.hasSameIndentationAs = function (op) {\n return this.attributes.indent === op.attributes.indent;\n };\n DeltaInsertOp.prototype.hasHigherIndentThan = function (op) {\n return (Number(this.attributes.indent) || 0) > (Number(op.attributes.indent) || 0);\n };\n DeltaInsertOp.prototype.isInline = function () {\n return !(this.isContainerBlock() || this.isVideo());\n };\n DeltaInsertOp.prototype.isCodeBlock = function () {\n return !!this.attributes['code-block'];\n };\n DeltaInsertOp.prototype.isJustNewline = function () {\n return this.insert.value === value_types_1.NewLine;\n };\n DeltaInsertOp.prototype.isList = function () {\n return (this.isOrderedList() ||\n this.isBulletList() ||\n this.isCheckedList() ||\n this.isUncheckedList());\n };\n DeltaInsertOp.prototype.isOrderedList = function () {\n return this.attributes.list === value_types_1.ListType.Ordered;\n };\n DeltaInsertOp.prototype.isBulletList = function () {\n return this.attributes.list === value_types_1.ListType.Bullet;\n };\n DeltaInsertOp.prototype.isCheckedList = function () {\n return this.attributes.list === value_types_1.ListType.Checked;\n };\n DeltaInsertOp.prototype.isUncheckedList = function () {\n return this.attributes.list === value_types_1.ListType.Unchecked;\n };\n DeltaInsertOp.prototype.isACheckList = function () {\n return this.attributes.list == value_types_1.ListType.Unchecked ||\n this.attributes.list === value_types_1.ListType.Checked;\n };\n DeltaInsertOp.prototype.isSameListAs = function (op) {\n return !!op.attributes.list && (this.attributes.list === op.attributes.list ||\n op.isACheckList() && this.isACheckList());\n };\n DeltaInsertOp.prototype.isText = function () {\n return this.insert.type === value_types_1.DataType.Text;\n };\n DeltaInsertOp.prototype.isImage = function () {\n return this.insert.type === value_types_1.DataType.Image;\n };\n DeltaInsertOp.prototype.isFormula = function () {\n return this.insert.type === value_types_1.DataType.Formula;\n };\n DeltaInsertOp.prototype.isVideo = function () {\n return this.insert.type === value_types_1.DataType.Video;\n };\n DeltaInsertOp.prototype.isLink = function () {\n return this.isText() && !!this.attributes.link;\n };\n DeltaInsertOp.prototype.isCustom = function () {\n return this.insert instanceof InsertData_1.InsertDataCustom;\n };\n DeltaInsertOp.prototype.isMentions = function () {\n return this.isText() && !!this.attributes.mentions;\n };\n return DeltaInsertOp;\n}());\nexports.DeltaInsertOp = DeltaInsertOp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InsertDataQuill = (function () {\n function InsertDataQuill(type, value) {\n this.type = type;\n this.value = value;\n }\n return InsertDataQuill;\n}());\nexports.InsertDataQuill = InsertDataQuill;\n;\nvar InsertDataCustom = (function () {\n function InsertDataCustom(type, value) {\n this.type = type;\n this.value = value;\n }\n return InsertDataCustom;\n}());\nexports.InsertDataCustom = InsertDataCustom;\n;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar value_types_1 = require(\"./value-types\");\nvar str = require(\"./helpers/string\");\nvar obj = require(\"./helpers/object\");\nvar InsertOpDenormalizer = (function () {\n function InsertOpDenormalizer() {\n }\n InsertOpDenormalizer.denormalize = function (op) {\n if (!op || typeof op !== 'object') {\n return [];\n }\n if (typeof op.insert === 'object' || op.insert === value_types_1.NewLine) {\n return [op];\n }\n var newlinedArray = str.tokenizeWithNewLines(op.insert + '');\n if (newlinedArray.length === 1) {\n return [op];\n }\n var nlObj = obj.assign({}, op, { insert: value_types_1.NewLine });\n return newlinedArray.map(function (line) {\n if (line === value_types_1.NewLine) {\n return nlObj;\n }\n return obj.assign({}, op, {\n insert: line\n });\n });\n };\n return InsertOpDenormalizer;\n}());\nexports.InsertOpDenormalizer = InsertOpDenormalizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DeltaInsertOp_1 = require(\"./DeltaInsertOp\");\nvar value_types_1 = require(\"./value-types\");\nvar InsertData_1 = require(\"./InsertData\");\nvar OpAttributeSanitizer_1 = require(\"./OpAttributeSanitizer\");\nvar InsertOpDenormalizer_1 = require(\"./InsertOpDenormalizer\");\nvar InsertOpsConverter = (function () {\n function InsertOpsConverter() {\n }\n InsertOpsConverter.convert = function (deltaOps) {\n if (!Array.isArray(deltaOps)) {\n return [];\n }\n var denormalizedOps = [].concat.apply([], deltaOps.map(InsertOpDenormalizer_1.InsertOpDenormalizer.denormalize));\n var results = [];\n var insertVal, attributes;\n for (var _i = 0, denormalizedOps_1 = denormalizedOps; _i < denormalizedOps_1.length; _i++) {\n var op = denormalizedOps_1[_i];\n if (!op.insert) {\n continue;\n }\n insertVal = InsertOpsConverter.convertInsertVal(op.insert);\n if (!insertVal) {\n continue;\n }\n attributes = OpAttributeSanitizer_1.OpAttributeSanitizer.sanitize(op.attributes);\n results.push(new DeltaInsertOp_1.DeltaInsertOp(insertVal, attributes));\n }\n return results;\n };\n InsertOpsConverter.convertInsertVal = function (insertPropVal) {\n if (typeof insertPropVal === 'string') {\n return new InsertData_1.InsertDataQuill(value_types_1.DataType.Text, insertPropVal);\n }\n if (!insertPropVal || typeof insertPropVal !== 'object') {\n return null;\n }\n var keys = Object.keys(insertPropVal);\n if (!keys.length) {\n return null;\n }\n return value_types_1.DataType.Image in insertPropVal ?\n new InsertData_1.InsertDataQuill(value_types_1.DataType.Image, insertPropVal[value_types_1.DataType.Image])\n : value_types_1.DataType.Video in insertPropVal ?\n new InsertData_1.InsertDataQuill(value_types_1.DataType.Video, insertPropVal[value_types_1.DataType.Video])\n : value_types_1.DataType.Formula in insertPropVal ?\n new InsertData_1.InsertDataQuill(value_types_1.DataType.Formula, insertPropVal[value_types_1.DataType.Formula])\n : new InsertData_1.InsertDataCustom(keys[0], insertPropVal[keys[0]]);\n };\n return InsertOpsConverter;\n}());\nexports.InsertOpsConverter = InsertOpsConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar value_types_1 = require(\"./value-types\");\nvar MentionSanitizer_1 = require(\"./mentions/MentionSanitizer\");\nvar url = require(\"./helpers/url\");\nvar OpAttributeSanitizer = (function () {\n function OpAttributeSanitizer() {\n }\n OpAttributeSanitizer.sanitize = function (dirtyAttrs) {\n var cleanAttrs = {};\n if (!dirtyAttrs || typeof dirtyAttrs !== 'object') {\n return cleanAttrs;\n }\n var booleanAttrs = [\n 'bold', 'italic', 'underline', 'strike', 'code',\n 'blockquote', 'code-block'\n ];\n var colorAttrs = ['background', 'color'];\n var font = dirtyAttrs.font, size = dirtyAttrs.size, link = dirtyAttrs.link, script = dirtyAttrs.script, list = dirtyAttrs.list, header = dirtyAttrs.header, align = dirtyAttrs.align, direction = dirtyAttrs.direction, indent = dirtyAttrs.indent, mentions = dirtyAttrs.mentions, mention = dirtyAttrs.mention, width = dirtyAttrs.width, target = dirtyAttrs.target;\n var sanitizedAttrs = booleanAttrs.concat(colorAttrs, ['font', 'size', 'link', 'script', 'list', 'header', 'align',\n 'direction', 'indent', 'mentions', 'mention', 'width']);\n booleanAttrs.forEach(function (prop) {\n var v = dirtyAttrs[prop];\n if (v) {\n cleanAttrs[prop] = !!v;\n }\n });\n colorAttrs.forEach(function (prop) {\n var val = dirtyAttrs[prop];\n if (val && (OpAttributeSanitizer.IsValidHexColor(val + '') ||\n OpAttributeSanitizer.IsValidColorLiteral(val + ''))) {\n cleanAttrs[prop] = val;\n }\n });\n if (font && OpAttributeSanitizer.IsValidFontName(font + '')) {\n cleanAttrs.font = font;\n }\n if (size && OpAttributeSanitizer.IsValidSize(size + '')) {\n cleanAttrs.size = size;\n }\n if (width && OpAttributeSanitizer.IsValidWidth(width + '')) {\n cleanAttrs.width = width;\n }\n if (link) {\n cleanAttrs.link = url.sanitize(link + '');\n }\n if (target && OpAttributeSanitizer.isValidTarget(target)) {\n cleanAttrs.target = target;\n }\n if (script === value_types_1.ScriptType.Sub || value_types_1.ScriptType.Super === script) {\n cleanAttrs.script = script;\n }\n if (list === value_types_1.ListType.Bullet || list === value_types_1.ListType.Ordered || list === value_types_1.ListType.Checked || list === value_types_1.ListType.Unchecked) {\n cleanAttrs.list = list;\n }\n if (Number(header)) {\n cleanAttrs.header = Math.min(Number(header), 6);\n }\n if (align === value_types_1.AlignType.Center || align === value_types_1.AlignType.Right || align === value_types_1.AlignType.Justify) {\n cleanAttrs.align = align;\n }\n if (direction === value_types_1.DirectionType.Rtl) {\n cleanAttrs.direction = direction;\n }\n if (indent && Number(indent)) {\n cleanAttrs.indent = Math.min(Number(indent), 30);\n }\n if (mentions && mention) {\n var sanitizedMention = MentionSanitizer_1.MentionSanitizer.sanitize(mention);\n if (Object.keys(sanitizedMention).length > 0) {\n cleanAttrs.mentions = !!mentions;\n cleanAttrs.mention = mention;\n }\n }\n return Object.keys(dirtyAttrs).reduce(function (cleaned, k) {\n if (sanitizedAttrs.indexOf(k) === -1) {\n cleaned[k] = dirtyAttrs[k];\n }\n ;\n return cleaned;\n }, cleanAttrs);\n };\n OpAttributeSanitizer.IsValidHexColor = function (colorStr) {\n return !!colorStr.match(/^#([0-9A-F]{6}|[0-9A-F]{3})$/i);\n };\n OpAttributeSanitizer.IsValidColorLiteral = function (colorStr) {\n return !!colorStr.match(/^[a-z]{1,50}$/i);\n };\n OpAttributeSanitizer.IsValidFontName = function (fontName) {\n return !!fontName.match(/^[a-z\\s0-9\\- ]{1,30}$/i);\n };\n OpAttributeSanitizer.IsValidSize = function (size) {\n return !!size.match(/^[a-z0-9\\-]{1,20}$/i);\n };\n OpAttributeSanitizer.IsValidWidth = function (width) {\n return !!width.match(/^[0-9]*(px|em|%)?$/);\n };\n OpAttributeSanitizer.isValidTarget = function (target) {\n return !!target.match(/^[_a-zA-Z0-9\\-]{1,50}$/);\n };\n return OpAttributeSanitizer;\n}());\nexports.OpAttributeSanitizer = OpAttributeSanitizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar funcs_html_1 = require(\"./funcs-html\");\nvar value_types_1 = require(\"./value-types\");\nvar url = require(\"./helpers/url\");\nvar obj = require(\"./helpers/object\");\nvar arr = require(\"./helpers/array\");\nvar OpAttributeSanitizer_1 = require(\"./OpAttributeSanitizer\");\nvar OpToHtmlConverter = (function () {\n function OpToHtmlConverter(op, options) {\n this.op = op;\n this.options = obj.assign({}, {\n classPrefix: 'ql',\n encodeHtml: true,\n listItemTag: 'li',\n paragraphTag: 'p'\n }, options);\n }\n OpToHtmlConverter.prototype.prefixClass = function (className) {\n if (!this.options.classPrefix) {\n return className + '';\n }\n return this.options.classPrefix + '-' + className;\n };\n OpToHtmlConverter.prototype.getHtml = function () {\n var parts = this.getHtmlParts();\n return parts.openingTag + parts.content + parts.closingTag;\n };\n OpToHtmlConverter.prototype.getHtmlParts = function () {\n if (this.op.isJustNewline() && !this.op.isContainerBlock()) {\n return { openingTag: '', closingTag: '', content: value_types_1.NewLine };\n }\n var tags = this.getTags(), attrs = this.getTagAttributes();\n if (!tags.length && attrs.length) {\n tags.push('span');\n }\n var beginTags = [], endTags = [];\n for (var _i = 0, tags_1 = tags; _i < tags_1.length; _i++) {\n var tag = tags_1[_i];\n beginTags.push(funcs_html_1.makeStartTag(tag, attrs));\n endTags.push(tag === 'img' ? '' : funcs_html_1.makeEndTag(tag));\n attrs = [];\n }\n endTags.reverse();\n return {\n openingTag: beginTags.join(''),\n content: this.getContent(),\n closingTag: endTags.join('')\n };\n };\n OpToHtmlConverter.prototype.getContent = function () {\n if (this.op.isContainerBlock()) {\n return '';\n }\n if (this.op.isMentions()) {\n return this.op.insert.value;\n }\n var content = this.op.isFormula() || this.op.isText() ? this.op.insert.value : '';\n return this.options.encodeHtml && funcs_html_1.encodeHtml(content) || content;\n };\n OpToHtmlConverter.prototype.getCssClasses = function () {\n var attrs = this.op.attributes;\n var propsArr = ['indent', 'align', 'direction', 'font', 'size'];\n if (this.options.allowBackgroundClasses) {\n propsArr.push('background');\n }\n return propsArr\n .filter(function (prop) { return !!attrs[prop]; })\n .filter(function (prop) { return prop === 'background' ? OpAttributeSanitizer_1.OpAttributeSanitizer.IsValidColorLiteral(attrs[prop]) : true; })\n .map(function (prop) { return prop + '-' + attrs[prop]; })\n .concat(this.op.isFormula() ? 'formula' : [])\n .concat(this.op.isVideo() ? 'video' : [])\n .concat(this.op.isImage() ? 'image' : [])\n .map(this.prefixClass.bind(this));\n };\n OpToHtmlConverter.prototype.getCssStyles = function () {\n var attrs = this.op.attributes;\n var propsArr = [['color']];\n if (!this.options.allowBackgroundClasses) {\n propsArr.push(['background', 'background-color']);\n }\n return propsArr\n .filter(function (item) { return !!attrs[item[0]]; })\n .map(function (item) { return arr.preferSecond(item) + ':' + attrs[item[0]]; });\n };\n OpToHtmlConverter.prototype.getTagAttributes = function () {\n if (this.op.attributes.code && !this.op.isLink()) {\n return [];\n }\n var makeAttr = function (k, v) { return ({ key: k, value: v }); };\n var classes = this.getCssClasses();\n var tagAttrs = classes.length ? [makeAttr('class', classes.join(' '))] : [];\n if (this.op.isImage()) {\n this.op.attributes.width && (tagAttrs = tagAttrs.concat(makeAttr('width', this.op.attributes.width)));\n return tagAttrs.concat(makeAttr('src', url.sanitize(this.op.insert.value + '') + ''));\n }\n if (this.op.isACheckList()) {\n return tagAttrs.concat(makeAttr('data-checked', this.op.isCheckedList() ? 'true' : 'false'));\n }\n if (this.op.isFormula() || this.op.isContainerBlock()) {\n return tagAttrs;\n }\n if (this.op.isVideo()) {\n return tagAttrs.concat(makeAttr('frameborder', '0'), makeAttr('allowfullscreen', 'true'), makeAttr('src', url.sanitize(this.op.insert.value + '') + ''));\n }\n if (this.op.isMentions()) {\n var mention = this.op.attributes.mention;\n if (mention.class) {\n tagAttrs = tagAttrs.concat(makeAttr('class', mention.class));\n }\n if (mention['end-point'] && mention.slug) {\n tagAttrs = tagAttrs.concat(makeAttr('href', funcs_html_1.encodeLink(mention['end-point'] + '/' + mention.slug)));\n }\n else {\n tagAttrs = tagAttrs.concat(makeAttr('href', 'about:blank'));\n }\n if (mention.target) {\n tagAttrs = tagAttrs.concat(makeAttr('target', mention.target));\n }\n return tagAttrs;\n }\n var styles = this.getCssStyles();\n var styleAttr = styles.length ? [makeAttr('style', styles.join(';'))] : [];\n tagAttrs = tagAttrs.concat(styleAttr);\n if (this.op.isLink()) {\n var target = this.op.attributes.target || this.options.linkTarget;\n tagAttrs = tagAttrs\n .concat(makeAttr('href', funcs_html_1.encodeLink(this.op.attributes.link)))\n .concat(target ? makeAttr('target', target) : []);\n if (!!this.options.linkRel && OpToHtmlConverter.IsValidRel(this.options.linkRel)) {\n tagAttrs.push(makeAttr('rel', this.options.linkRel));\n }\n }\n return tagAttrs;\n };\n OpToHtmlConverter.prototype.getTags = function () {\n var attrs = this.op.attributes;\n if (!this.op.isText()) {\n return [this.op.isVideo() ? 'iframe'\n : this.op.isImage() ? 'img'\n : 'span'\n ];\n }\n var positionTag = this.options.paragraphTag || 'p';\n var blocks = [['blockquote'], ['code-block', 'pre'],\n ['list', this.options.listItemTag], ['header'],\n ['align', positionTag], ['direction', positionTag],\n ['indent', positionTag]];\n for (var _i = 0, blocks_1 = blocks; _i < blocks_1.length; _i++) {\n var item = blocks_1[_i];\n var firstItem = item[0];\n if (attrs[firstItem]) {\n return firstItem === 'header' ? ['h' + attrs[firstItem]] : [arr.preferSecond(item)];\n }\n }\n return [['link', 'a'], ['mentions', 'a'], ['script'],\n ['bold', 'strong'], ['italic', 'em'], ['strike', 's'], ['underline', 'u'],\n ['code']]\n .filter(function (item) { return !!attrs[item[0]]; })\n .map(function (item) {\n return item[0] === 'script' ?\n (attrs[item[0]] === value_types_1.ScriptType.Sub ? 'sub' : 'sup')\n : arr.preferSecond(item);\n });\n };\n OpToHtmlConverter.IsValidRel = function (relStr) {\n return !!relStr.match(/^[a-z\\s]{1,50}$/i);\n };\n return OpToHtmlConverter;\n}());\nexports.OpToHtmlConverter = OpToHtmlConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InsertOpsConverter_1 = require(\"./InsertOpsConverter\");\nvar OpToHtmlConverter_1 = require(\"./OpToHtmlConverter\");\nvar Grouper_1 = require(\"./grouper/Grouper\");\nvar group_types_1 = require(\"./grouper/group-types\");\nvar ListNester_1 = require(\"./grouper/ListNester\");\nvar funcs_html_1 = require(\"./funcs-html\");\nvar obj = require(\"./helpers/object\");\nvar value_types_1 = require(\"./value-types\");\nvar BrTag = '<br/>';\nvar QuillDeltaToHtmlConverter = (function () {\n function QuillDeltaToHtmlConverter(deltaOps, options) {\n this.rawDeltaOps = [];\n this.callbacks = {};\n this.options = obj.assign({\n paragraphTag: 'p',\n encodeHtml: true,\n classPrefix: 'ql',\n multiLineBlockquote: true,\n multiLineHeader: true,\n multiLineCodeblock: true,\n allowBackgroundClasses: false,\n linkTarget: '_blank'\n }, options, {\n orderedListTag: 'ol',\n bulletListTag: 'ul',\n listItemTag: 'li'\n });\n this.converterOptions = {\n encodeHtml: this.options.encodeHtml,\n classPrefix: this.options.classPrefix,\n listItemTag: this.options.listItemTag,\n paragraphTag: this.options.paragraphTag,\n linkRel: this.options.linkRel,\n linkTarget: this.options.linkTarget,\n allowBackgroundClasses: this.options.allowBackgroundClasses\n };\n this.rawDeltaOps = deltaOps;\n }\n QuillDeltaToHtmlConverter.prototype._getListTag = function (op) {\n return op.isOrderedList() ? this.options.orderedListTag + ''\n : op.isBulletList() ? this.options.bulletListTag + ''\n : op.isCheckedList() ? this.options.bulletListTag + ''\n : op.isUncheckedList() ? this.options.bulletListTag + ''\n : '';\n };\n QuillDeltaToHtmlConverter.prototype.getGroupedOps = function () {\n var deltaOps = InsertOpsConverter_1.InsertOpsConverter.convert(this.rawDeltaOps);\n var pairedOps = Grouper_1.Grouper.pairOpsWithTheirBlock(deltaOps);\n var groupedSameStyleBlocks = Grouper_1.Grouper.groupConsecutiveSameStyleBlocks(pairedOps, {\n blockquotes: !!this.options.multiLineBlockquote,\n header: !!this.options.multiLineHeader,\n codeBlocks: !!this.options.multiLineCodeblock\n });\n var groupedOps = Grouper_1.Grouper.reduceConsecutiveSameStyleBlocksToOne(groupedSameStyleBlocks);\n var listNester = new ListNester_1.ListNester();\n return listNester.nest(groupedOps);\n };\n QuillDeltaToHtmlConverter.prototype.convert = function () {\n var _this = this;\n return this.getGroupedOps()\n .map(function (group) {\n if (group instanceof group_types_1.ListGroup) {\n return _this._renderWithCallbacks(value_types_1.GroupType.List, group, function () { return _this._renderList(group); });\n }\n else if (group instanceof group_types_1.BlockGroup) {\n var g = group;\n return _this._renderWithCallbacks(value_types_1.GroupType.Block, group, function () { return _this._renderBlock(g.op, g.ops); });\n }\n else if (group instanceof group_types_1.VideoItem) {\n return _this._renderWithCallbacks(value_types_1.GroupType.Video, group, function () {\n var g = group;\n var converter = new OpToHtmlConverter_1.OpToHtmlConverter(g.op, _this.converterOptions);\n return converter.getHtml();\n });\n }\n else {\n return _this._renderWithCallbacks(value_types_1.GroupType.InlineGroup, group, function () {\n return _this._renderInlines(group.ops);\n });\n }\n })\n .join(\"\");\n };\n QuillDeltaToHtmlConverter.prototype._renderWithCallbacks = function (groupType, group, myRenderFn) {\n var html = '';\n var beforeCb = this.callbacks['beforeRender_cb'];\n html = typeof beforeCb === 'function' ? beforeCb.apply(null, [groupType, group]) : '';\n if (!html) {\n html = myRenderFn();\n }\n var afterCb = this.callbacks['afterRender_cb'];\n html = typeof afterCb === 'function' ? afterCb.apply(null, [groupType, html]) : html;\n return html;\n };\n QuillDeltaToHtmlConverter.prototype._renderList = function (list) {\n var _this = this;\n var firstItem = list.items[0];\n return funcs_html_1.makeStartTag(this._getListTag(firstItem.item.op))\n + list.items.map(function (li) { return _this._renderListItem(li); }).join('')\n + funcs_html_1.makeEndTag(this._getListTag(firstItem.item.op));\n };\n QuillDeltaToHtmlConverter.prototype._renderListItem = function (li) {\n li.item.op.attributes.indent = 0;\n var converter = new OpToHtmlConverter_1.OpToHtmlConverter(li.item.op, this.converterOptions);\n var parts = converter.getHtmlParts();\n var liElementsHtml = this._renderInlines(li.item.ops, false);\n return parts.openingTag + (liElementsHtml) +\n (li.innerList ? this._renderList(li.innerList) : '')\n + parts.closingTag;\n };\n QuillDeltaToHtmlConverter.prototype._renderBlock = function (bop, ops) {\n var _this = this;\n var converter = new OpToHtmlConverter_1.OpToHtmlConverter(bop, this.converterOptions);\n var htmlParts = converter.getHtmlParts();\n if (bop.isCodeBlock()) {\n return htmlParts.openingTag +\n funcs_html_1.encodeHtml(ops.map(function (iop) {\n return iop.isCustom() ? _this._renderCustom(iop, bop) : iop.insert.value;\n }).join(\"\"))\n + htmlParts.closingTag;\n }\n var inlines = ops.map(function (op) { return _this._renderInline(op, bop); }).join('');\n return htmlParts.openingTag + (inlines || BrTag) + htmlParts.closingTag;\n };\n QuillDeltaToHtmlConverter.prototype._renderInlines = function (ops, wrapInParagraphTag) {\n var _this = this;\n if (wrapInParagraphTag === void 0) { wrapInParagraphTag = true; }\n var opsLen = ops.length - 1;\n var html = ops.map(function (op, i) {\n if (i > 0 && i === opsLen && op.isJustNewline()) {\n return '';\n }\n return _this._renderInline(op, null);\n }).join('');\n if (!wrapInParagraphTag) {\n return html;\n }\n return funcs_html_1.makeStartTag(this.options.paragraphTag) +\n html + funcs_html_1.makeEndTag(this.options.paragraphTag);\n };\n QuillDeltaToHtmlConverter.prototype._renderInline = function (op, contextOp) {\n if (op.isCustom()) {\n return this._renderCustom(op, contextOp);\n }\n var converter = new OpToHtmlConverter_1.OpToHtmlConverter(op, this.converterOptions);\n return converter.getHtml().replace(/\\n/g, BrTag);\n };\n QuillDeltaToHtmlConverter.prototype._renderCustom = function (op, contextOp) {\n var renderCb = this.callbacks['renderCustomOp_cb'];\n if (typeof renderCb === 'function') {\n return renderCb.apply(null, [op, contextOp]);\n }\n return \"\";\n };\n QuillDeltaToHtmlConverter.prototype.beforeRender = function (cb) {\n if (typeof cb === 'function') {\n this.callbacks['beforeRender_cb'] = cb;\n }\n };\n QuillDeltaToHtmlConverter.prototype.afterRender = function (cb) {\n if (typeof cb === 'function') {\n this.callbacks['afterRender_cb'] = cb;\n }\n };\n QuillDeltaToHtmlConverter.prototype.renderCustomWith = function (cb) {\n this.callbacks['renderCustomOp_cb'] = cb;\n };\n return QuillDeltaToHtmlConverter;\n}());\nexports.QuillDeltaToHtmlConverter = QuillDeltaToHtmlConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EncodeTarget;\n(function (EncodeTarget) {\n EncodeTarget[EncodeTarget[\"Html\"] = 0] = \"Html\";\n EncodeTarget[EncodeTarget[\"Url\"] = 1] = \"Url\";\n})(EncodeTarget || (EncodeTarget = {}));\nfunction makeStartTag(tag, attrs) {\n if (attrs === void 0) { attrs = undefined; }\n if (!tag) {\n return '';\n }\n var attrsStr = '';\n if (attrs) {\n var arrAttrs = [].concat(attrs);\n attrsStr = arrAttrs.map(function (attr) {\n return attr.key + (attr.value ? '=\"' + attr.value + '\"' : '');\n }).join(' ');\n }\n var closing = '>';\n if (tag === 'img' || tag === 'br') {\n closing = '/>';\n }\n return attrsStr ? \"<\" + tag + \" \" + attrsStr + closing : \"<\" + tag + closing;\n}\nexports.makeStartTag = makeStartTag;\nfunction makeEndTag(tag) {\n if (tag === void 0) { tag = ''; }\n return tag && \"</\" + tag + \">\" || '';\n}\nexports.makeEndTag = makeEndTag;\nfunction decodeHtml(str) {\n return encodeMappings(EncodeTarget.Html).reduce(decodeMapping, str);\n}\nexports.decodeHtml = decodeHtml;\nfunction encodeHtml(str, preventDoubleEncoding) {\n if (preventDoubleEncoding === void 0) { preventDoubleEncoding = true; }\n if (preventDoubleEncoding) {\n str = decodeHtml(str);\n }\n return encodeMappings(EncodeTarget.Html).reduce(encodeMapping, str);\n}\nexports.encodeHtml = encodeHtml;\nfunction encodeLink(str) {\n var linkMaps = encodeMappings(EncodeTarget.Url);\n var decoded = linkMaps.reduce(decodeMapping, str);\n return linkMaps.reduce(encodeMapping, decoded);\n}\nexports.encodeLink = encodeLink;\nfunction encodeMappings(mtype) {\n var maps = [\n ['&', '&amp;'],\n ['<', '&lt;'],\n ['>', '&gt;'],\n ['\"', '&quot;'],\n [\"'\", \"&#x27;\"],\n ['\\\\/', '&#x2F;'],\n ['\\\\(', '&#40;'],\n ['\\\\)', '&#41;']\n ];\n if (mtype === EncodeTarget.Html) {\n return maps.filter(function (_a) {\n var v = _a[0], _ = _a[1];\n return v.indexOf('(') === -1 && v.indexOf(')') === -1;\n });\n }\n else {\n return maps.filter(function (_a) {\n var v = _a[0], _ = _a[1];\n return v.indexOf('/') === -1;\n });\n }\n}\nfunction encodeMapping(str, mapping) {\n return str.replace(new RegExp(mapping[0], 'g'), mapping[1]);\n}\nfunction decodeMapping(str, mapping) {\n return str.replace(new RegExp(mapping[1], 'g'), mapping[0].replace('\\\\', ''));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DeltaInsertOp_1 = require(\"./../DeltaInsertOp\");\nvar array_1 = require(\"./../helpers/array\");\nvar group_types_1 = require(\"./group-types\");\nvar Grouper = (function () {\n function Grouper() {\n }\n Grouper.pairOpsWithTheirBlock = function (ops) {\n var result = [];\n var canBeInBlock = function (op) {\n return !(op.isJustNewline() || op.isVideo() || op.isContainerBlock());\n };\n var isInlineData = function (op) { return op.isInline(); };\n var lastInd = ops.length - 1;\n var opsSlice;\n for (var i = lastInd; i >= 0; i--) {\n var op = ops[i];\n if (op.isVideo()) {\n result.push(new group_types_1.VideoItem(op));\n }\n else if (op.isContainerBlock()) {\n opsSlice = array_1.sliceFromReverseWhile(ops, i - 1, canBeInBlock);\n result.push(new group_types_1.BlockGroup(op, opsSlice.elements));\n i = opsSlice.sliceStartsAt > -1 ? opsSlice.sliceStartsAt : i;\n }\n else {\n opsSlice = array_1.sliceFromReverseWhile(ops, i - 1, isInlineData);\n result.push(new group_types_1.InlineGroup(opsSlice.elements.concat(op)));\n i = opsSlice.sliceStartsAt > -1 ? opsSlice.sliceStartsAt : i;\n }\n }\n result.reverse();\n return result;\n };\n Grouper.groupConsecutiveSameStyleBlocks = function (groups, blocksOf) {\n if (blocksOf === void 0) { blocksOf = {\n header: true,\n codeBlocks: true,\n blockquotes: true\n }; }\n return array_1.groupConsecutiveElementsWhile(groups, function (g, gPrev) {\n if (!(g instanceof group_types_1.BlockGroup) || !(gPrev instanceof group_types_1.BlockGroup)) {\n return false;\n }\n return blocksOf.codeBlocks && Grouper.areBothCodeblocks(g, gPrev)\n || blocksOf.blockquotes && Grouper.areBothBlockquotesWithSameAdi(g, gPrev)\n || blocksOf.header && Grouper.areBothSameHeadersWithSameAdi(g, gPrev);\n });\n };\n Grouper.reduceConsecutiveSameStyleBlocksToOne = function (groups) {\n var newLineOp = DeltaInsertOp_1.DeltaInsertOp.createNewLineOp();\n return groups.map(function (elm) {\n if (!Array.isArray(elm)) {\n if (elm instanceof group_types_1.BlockGroup && !elm.ops.length) {\n elm.ops.push(newLineOp);\n }\n return elm;\n }\n var groupsLastInd = elm.length - 1;\n elm[0].ops = array_1.flatten(elm.map(function (g, i) {\n if (!g.ops.length) {\n return [newLineOp];\n }\n return g.ops.concat(i < groupsLastInd ? [newLineOp] : []);\n }));\n return elm[0];\n });\n };\n Grouper.areBothCodeblocks = function (g1, gOther) {\n return g1.op.isCodeBlock() && gOther.op.isCodeBlock();\n };\n Grouper.areBothSameHeadersWithSameAdi = function (g1, gOther) {\n return g1.op.isSameHeaderAs(gOther.op) && g1.op.hasSameAdiAs(gOther.op);\n };\n Grouper.areBothBlockquotesWithSameAdi = function (g, gOther) {\n return g.op.isBlockquote() && gOther.op.isBlockquote()\n && g.op.hasSameAdiAs(gOther.op);\n };\n return Grouper;\n}());\nexports.Grouper = Grouper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar group_types_1 = require(\"./group-types\");\nvar array_1 = require(\"./../helpers/array\");\nvar ListNester = (function () {\n function ListNester() {\n }\n ListNester.prototype.nest = function (groups) {\n var _this = this;\n var listBlocked = this.convertListBlocksToListGroups(groups);\n var groupedByListGroups = this.groupConsecutiveListGroups(listBlocked);\n var nested = array_1.flatten(groupedByListGroups.map(function (group) {\n if (!Array.isArray(group)) {\n return group;\n }\n return _this.nestListSection(group);\n }));\n var groupRootLists = array_1.groupConsecutiveElementsWhile(nested, function (curr, prev) {\n if (!(curr instanceof group_types_1.ListGroup && prev instanceof group_types_1.ListGroup)) {\n return false;\n }\n return curr.items[0].item.op.isSameListAs(prev.items[0].item.op);\n });\n return groupRootLists.map(function (v) {\n if (!Array.isArray(v)) {\n return v;\n }\n var litems = v.map(function (g) { return g.items; });\n return new group_types_1.ListGroup(array_1.flatten(litems));\n });\n };\n ListNester.prototype.convertListBlocksToListGroups = function (items) {\n var grouped = array_1.groupConsecutiveElementsWhile(items, function (g, gPrev) {\n return g instanceof group_types_1.BlockGroup && gPrev instanceof group_types_1.BlockGroup\n && g.op.isList() && gPrev.op.isList() && g.op.isSameListAs(gPrev.op)\n && g.op.hasSameIndentationAs(gPrev.op);\n });\n return grouped.map(function (item) {\n if (!Array.isArray(item)) {\n if (item instanceof group_types_1.BlockGroup && item.op.isList()) {\n return new group_types_1.ListGroup([new group_types_1.ListItem(item)]);\n }\n return item;\n }\n return new group_types_1.ListGroup(item.map(function (g) { return new group_types_1.ListItem(g); }));\n });\n };\n ListNester.prototype.groupConsecutiveListGroups = function (items) {\n return array_1.groupConsecutiveElementsWhile(items, function (curr, prev) {\n return curr instanceof group_types_1.ListGroup && prev instanceof group_types_1.ListGroup;\n });\n };\n ListNester.prototype.nestListSection = function (sectionItems) {\n var _this = this;\n var indentGroups = this.groupByIndent(sectionItems);\n Object.keys(indentGroups).map(Number).sort().reverse().forEach(function (indent) {\n indentGroups[indent].forEach(function (lg) {\n var idx = sectionItems.indexOf(lg);\n if (_this.placeUnderParent(lg, sectionItems.slice(0, idx))) {\n sectionItems.splice(idx, 1);\n }\n });\n });\n return sectionItems;\n };\n ListNester.prototype.groupByIndent = function (items) {\n return items.reduce(function (pv, cv) {\n var indent = cv.items[0].item.op.attributes.indent;\n if (indent) {\n pv[indent] = pv[indent] || [];\n pv[indent].push(cv);\n }\n return pv;\n }, {});\n };\n ListNester.prototype.placeUnderParent = function (target, items) {\n for (var i = items.length - 1; i >= 0; i--) {\n var elm = items[i];\n if (target.items[0].item.op.hasHigherIndentThan(elm.items[0].item.op)) {\n var parent = elm.items[elm.items.length - 1];\n if (parent.innerList) {\n parent.innerList.items = parent.innerList.items.concat(target.items);\n }\n else {\n parent.innerList = target;\n }\n return true;\n }\n }\n return false;\n };\n return ListNester;\n}());\nexports.ListNester = ListNester;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InlineGroup = (function () {\n function InlineGroup(ops) {\n this.ops = ops;\n }\n return InlineGroup;\n}());\nexports.InlineGroup = InlineGroup;\nvar VideoItem = (function () {\n function VideoItem(op) {\n this.op = op;\n }\n return VideoItem;\n}());\nexports.VideoItem = VideoItem;\nvar BlockGroup = (function () {\n function BlockGroup(op, ops) {\n this.op = op;\n this.ops = ops;\n }\n return BlockGroup;\n}());\nexports.BlockGroup = BlockGroup;\nvar ListGroup = (function () {\n function ListGroup(items) {\n this.items = items;\n }\n return ListGroup;\n}());\nexports.ListGroup = ListGroup;\nvar ListItem = (function () {\n function ListItem(item, innerList) {\n if (innerList === void 0) { innerList = null; }\n this.item = item;\n this.innerList = innerList;\n }\n return ListItem;\n}());\nexports.ListItem = ListItem;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction preferSecond(arr) {\n if (arr.length === 0) {\n return null;\n }\n return arr.length >= 2 ? arr[1] : arr[0];\n}\nexports.preferSecond = preferSecond;\n;\nfunction flatten(arr) {\n return arr.reduce(function (pv, v) {\n return pv.concat(Array.isArray(v) ? flatten(v) : v);\n }, []);\n}\nexports.flatten = flatten;\n;\nfunction groupConsecutiveElementsWhile(arr, predicate) {\n var groups = [];\n var currElm, currGroup;\n for (var i = 0; i < arr.length; i++) {\n currElm = arr[i];\n if (i > 0 && predicate(currElm, arr[i - 1])) {\n currGroup = groups[groups.length - 1];\n currGroup.push(currElm);\n }\n else {\n groups.push([currElm]);\n }\n }\n return groups.map(function (g) { return g.length === 1 ? g[0] : g; });\n}\nexports.groupConsecutiveElementsWhile = groupConsecutiveElementsWhile;\n;\nfunction sliceFromReverseWhile(arr, startIndex, predicate) {\n var result = {\n elements: [],\n sliceStartsAt: -1\n };\n for (var i = startIndex; i >= 0; i--) {\n if (!predicate(arr[i])) {\n break;\n }\n result.sliceStartsAt = i;\n result.elements.unshift(arr[i]);\n }\n return result;\n}\nexports.sliceFromReverseWhile = sliceFromReverseWhile;\n;\nfunction intersperse(arr, item) {\n return arr.reduce(function (pv, v, index) {\n pv.push(v);\n if (index < (arr.length - 1)) {\n pv.push(item);\n }\n return pv;\n }, []);\n}\nexports.intersperse = intersperse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction assign(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 0; index < sources.length; index++) {\n var nextSource = sources[index];\n if (nextSource != null) {\n for (var nextKey in nextSource) {\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexports.assign = assign;\n;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction tokenizeWithNewLines(str) {\n var NewLine = \"\\n\";\n if (str === NewLine) {\n return [str];\n }\n var lines = str.split(NewLine);\n if (lines.length === 1) {\n return lines;\n }\n var lastIndex = lines.length - 1;\n return lines.reduce(function (pv, line, ind) {\n if (ind !== lastIndex) {\n if (line !== \"\") {\n pv = pv.concat(line, NewLine);\n }\n else {\n pv.push(NewLine);\n }\n }\n else if (line !== \"\") {\n pv.push(line);\n }\n return pv;\n }, []);\n}\nexports.tokenizeWithNewLines = tokenizeWithNewLines;\n;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction sanitize(str) {\n var val = str;\n val = val.replace(/^\\s*/gm, '');\n var whiteList = /^\\s*((|https?|s?ftp|file|blob|mailto|tel):|#|\\/|data:image\\/)/;\n if (whiteList.test(val)) {\n return val;\n }\n return 'unsafe:' + val;\n}\nexports.sanitize = sanitize;\n","\"use strict\";\nvar QuillDeltaToHtmlConverter_1 = require(\"./QuillDeltaToHtmlConverter\");\nmodule.exports = QuillDeltaToHtmlConverter_1.QuillDeltaToHtmlConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar url = require(\"./../helpers/url\");\nvar MentionSanitizer = (function () {\n function MentionSanitizer() {\n }\n MentionSanitizer.sanitize = function (dirtyObj) {\n var cleanObj = {};\n if (!dirtyObj || typeof dirtyObj !== 'object') {\n return cleanObj;\n }\n if (dirtyObj.class && MentionSanitizer.IsValidClass(dirtyObj.class)) {\n cleanObj.class = dirtyObj.class;\n }\n if (dirtyObj.id && MentionSanitizer.IsValidId(dirtyObj.id)) {\n cleanObj.id = dirtyObj.id;\n }\n if (MentionSanitizer.IsValidTarget(dirtyObj.target + '')) {\n cleanObj.target = dirtyObj.target;\n }\n if (dirtyObj.avatar) {\n cleanObj.avatar = url.sanitize(dirtyObj.avatar + '');\n }\n if (dirtyObj['end-point']) {\n cleanObj['end-point'] = url.sanitize(dirtyObj['end-point'] + '');\n }\n if (dirtyObj.slug) {\n cleanObj.slug = (dirtyObj.slug + '');\n }\n return cleanObj;\n };\n MentionSanitizer.IsValidClass = function (classAttr) {\n return !!classAttr.match(/^[a-zA-Z0-9_\\-]{1,500}$/i);\n };\n MentionSanitizer.IsValidId = function (idAttr) {\n return !!idAttr.match(/^[a-zA-Z0-9_\\-\\:\\.]{1,500}$/i);\n };\n MentionSanitizer.IsValidTarget = function (target) {\n return ['_self', '_blank', '_parent', '_top'].indexOf(target) > -1;\n };\n return MentionSanitizer;\n}());\nexports.MentionSanitizer = MentionSanitizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NewLine = \"\\n\";\nexports.NewLine = NewLine;\nvar ListType;\n(function (ListType) {\n ListType[\"Ordered\"] = \"ordered\";\n ListType[\"Bullet\"] = \"bullet\";\n ListType[\"Checked\"] = \"checked\";\n ListType[\"Unchecked\"] = \"unchecked\";\n})(ListType || (ListType = {}));\nexports.ListType = ListType;\nvar ScriptType;\n(function (ScriptType) {\n ScriptType[\"Sub\"] = \"sub\";\n ScriptType[\"Super\"] = \"super\";\n})(ScriptType || (ScriptType = {}));\nexports.ScriptType = ScriptType;\nvar DirectionType;\n(function (DirectionType) {\n DirectionType[\"Rtl\"] = \"rtl\";\n})(DirectionType || (DirectionType = {}));\nexports.DirectionType = DirectionType;\nvar AlignType;\n(function (AlignType) {\n AlignType[\"Center\"] = \"center\";\n AlignType[\"Right\"] = \"right\";\n AlignType[\"Justify\"] = \"justify\";\n})(AlignType || (AlignType = {}));\nexports.AlignType = AlignType;\nvar DataType;\n(function (DataType) {\n DataType[\"Image\"] = \"image\";\n DataType[\"Video\"] = \"video\";\n DataType[\"Formula\"] = \"formula\";\n DataType[\"Text\"] = \"text\";\n})(DataType || (DataType = {}));\nexports.DataType = DataType;\n;\nvar GroupType;\n(function (GroupType) {\n GroupType[\"Block\"] = \"block\";\n GroupType[\"InlineGroup\"] = \"inline-group\";\n GroupType[\"List\"] = \"list\";\n GroupType[\"Video\"] = \"video\";\n})(GroupType || (GroupType = {}));\nexports.GroupType = GroupType;\n;\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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 NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\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 debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\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 (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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 Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\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 isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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 debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\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 _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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 Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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 Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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 Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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 _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\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\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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 GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\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 _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\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 History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\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 ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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 debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p>&nbsp;</o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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 Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\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 _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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 debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\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 ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\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 IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\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 _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\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 TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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 IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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 Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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 Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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 ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\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 Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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 Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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 Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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 Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\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 ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\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 ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\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 FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\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 _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\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 SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\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 _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\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 TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\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","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n _this.setState(function (_ref) {\n var keyEntities = _ref.keyEntities;\n return {\n keyEntities: keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n })\n };\n });\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n restProps = _objectWithoutProperties(_this$props, [\"component\", \"children\", \"onVisibleChanged\"]);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, Object.assign({}, restProps), keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, [\"status\"]);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, Object.assign({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n }\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n var destroyedRef = useRef(false); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (canEnd !== false && !destroyedRef.current) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n\n if (!supportMotion) {\n return;\n }\n\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n destroyedRef.current = true;\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\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}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\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}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\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\nexport default function _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(Object(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(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _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}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nexport default function wrapperRaf(callback) {\n return raf(callback);\n}\nwrapperRaf.cancel = caf;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport ResizeObserver from 'resize-observer-polyfill';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n var _super = _createSuper(ReactResizeObserver);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0,\n offsetHeight: 0,\n offsetWidth: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight || _this.state.offsetWidth !== offsetWidth || _this.state.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(_objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n }), target);\n });\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray(children);\n\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if ( /*#__PURE__*/React.isValidElement(childNode) && supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return /*#__PURE__*/React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n}(React.Component);\n\nReactResizeObserver.displayName = 'ResizeObserver';\nexport default ReactResizeObserver;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\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}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import defineProperty from \"./defineProperty.js\";\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\nexport default function _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(Object(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(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\n\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offset = _ref.offset,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n\n if (offset !== undefined) {\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {\n transform: \"translateY(\".concat(offset, \"px)\"),\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, children)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"component\", \"onScroll\"]); // ================================= MISC =================================\n\n\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && itemHeight * data.length > height;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n scrollTop = _useState2[0],\n setScrollTop = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrollMoving = _useState4[0],\n setScrollMoving = _useState4[1];\n\n var mergedClassName = classNames(prefixCls, className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n var scrollBarRef = useRef(); // Hack on scrollbar to enable flash call\n // =============================== Item Key ===============================\n\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n }; // ================================ Scroll ================================\n\n function syncScrollTop(newTop) {\n setScrollTop(function (origin) {\n var value;\n\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n } // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n\n\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n\n diffItemRef.current = diffItem; // ================================ Height ================================\n\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3]; // ========================== Visible Calculation =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n } // Always use virtual scroll bar in avoid shaking\n\n\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight); // Check item top in the range\n\n if (currentItemBottom >= scrollTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n } // Check item bottom in the range. We will render additional one item for motion usage\n\n\n if (currentItemBottom > scrollTop + height && endIndex === undefined) {\n endIndex = i;\n }\n\n itemTop = currentItemBottom;\n } // Fallback to normal if not match. This code should never reach\n\n /* istanbul ignore next */\n\n\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n }\n\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n } // Give cache to improve scroll experience\n\n\n endIndex = Math.min(endIndex + 1, mergedData.length);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n offset = _React$useMemo.offset;\n\n rangeRef.current.start = start;\n rangeRef.current.end = end; // =============================== In Range ===============================\n\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n\n var isScrollAtTop = scrollTop <= 0;\n var isScrollAtBottom = scrollTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom); // ================================ Scroll ================================\n\n function onScrollBar(newScrollTop) {\n var newTop = newScrollTop;\n syncScrollTop(newTop);\n } // When data size reduce. It may trigger native scroll event back to fit scroll position\n\n\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n\n if (newScrollTop !== scrollTop) {\n syncScrollTop(newScrollTop);\n } // Trigger origin onScroll\n\n\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n } // Since this added in global,should use ref to keep update\n\n\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, function (offsetY) {\n syncScrollTop(function (top) {\n var newTop = top + offsetY;\n return newTop;\n });\n }),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1]; // Mobile touch move\n\n\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n React.useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n\n componentRef.current.addEventListener('wheel', onRawWheel);\n componentRef.current.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentRef.current.removeEventListener('wheel', onRawWheel);\n componentRef.current.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]); // ================================= Ref ==================================\n\n var scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, function () {\n var _scrollBarRef$current;\n\n (_scrollBarRef$current = scrollBarRef.current) === null || _scrollBarRef$current === void 0 ? void 0 : _scrollBarRef$current.delayHidden();\n });\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: scrollTo\n };\n }); // ================================ Render ================================\n\n var listChildren = useChildren(mergedData, start, end, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, restProps), /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offset: offset,\n onInnerResize: collectHeight,\n ref: fillerInnerRef\n }, listChildren)), useVirtual && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: scrollBarRef,\n prefixCls: prefixCls,\n scrollTop: scrollTop,\n height: height,\n scrollHeight: scrollHeight,\n count: mergedData.length,\n onScroll: onScrollBar,\n onStartMove: function onStartMove() {\n setScrollMoving(true);\n },\n onStopMove: function onStopMove() {\n setScrollMoving(false);\n }\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nvar MIN_SIZE = 20;\n\nfunction getPageY(e) {\n return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\n\nvar ScrollBar = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollBar, _React$Component);\n\n var _super = _createSuper(ScrollBar);\n\n function ScrollBar() {\n var _this;\n\n _classCallCheck(this, ScrollBar);\n\n _this = _super.apply(this, arguments);\n _this.moveRaf = null;\n _this.scrollbarRef = /*#__PURE__*/React.createRef();\n _this.thumbRef = /*#__PURE__*/React.createRef();\n _this.visibleTimeout = null;\n _this.state = {\n dragging: false,\n pageY: null,\n startTop: null,\n visible: false\n };\n\n _this.delayHidden = function () {\n clearTimeout(_this.visibleTimeout);\n\n _this.setState({\n visible: true\n });\n\n _this.visibleTimeout = setTimeout(function () {\n _this.setState({\n visible: false\n });\n }, 2000);\n };\n\n _this.onScrollbarTouchStart = function (e) {\n e.preventDefault();\n };\n\n _this.onContainerMouseDown = function (e) {\n e.stopPropagation();\n e.preventDefault();\n }; // ======================= Clean =======================\n\n\n _this.patchEvents = function () {\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseup', _this.onMouseUp);\n\n _this.thumbRef.current.addEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.addEventListener('touchend', _this.onMouseUp);\n };\n\n _this.removeEvents = function () {\n window.removeEventListener('mousemove', _this.onMouseMove);\n window.removeEventListener('mouseup', _this.onMouseUp);\n\n _this.scrollbarRef.current.removeEventListener('touchstart', _this.onScrollbarTouchStart);\n\n _this.thumbRef.current.removeEventListener('touchstart', _this.onMouseDown);\n\n _this.thumbRef.current.removeEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.removeEventListener('touchend', _this.onMouseUp);\n\n raf.cancel(_this.moveRaf);\n }; // ======================= Thumb =======================\n\n\n _this.onMouseDown = function (e) {\n var onStartMove = _this.props.onStartMove;\n\n _this.setState({\n dragging: true,\n pageY: getPageY(e),\n startTop: _this.getTop()\n });\n\n onStartMove();\n\n _this.patchEvents();\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n _this.onMouseMove = function (e) {\n var _this$state = _this.state,\n dragging = _this$state.dragging,\n pageY = _this$state.pageY,\n startTop = _this$state.startTop;\n var onScroll = _this.props.onScroll;\n raf.cancel(_this.moveRaf);\n\n if (dragging) {\n var offsetY = getPageY(e) - pageY;\n var newTop = startTop + offsetY;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n var ptg = enableHeightRange ? newTop / enableHeightRange : 0;\n var newScrollTop = Math.ceil(ptg * enableScrollRange);\n _this.moveRaf = raf(function () {\n onScroll(newScrollTop);\n });\n }\n };\n\n _this.onMouseUp = function () {\n var onStopMove = _this.props.onStopMove;\n\n _this.setState({\n dragging: false\n });\n\n onStopMove();\n\n _this.removeEvents();\n }; // ===================== Calculate =====================\n\n\n _this.getSpinHeight = function () {\n var _this$props = _this.props,\n height = _this$props.height,\n count = _this$props.count;\n var baseHeight = height / count * 10;\n baseHeight = Math.max(baseHeight, MIN_SIZE);\n baseHeight = Math.min(baseHeight, height / 2);\n return Math.floor(baseHeight);\n };\n\n _this.getEnableScrollRange = function () {\n var _this$props2 = _this.props,\n scrollHeight = _this$props2.scrollHeight,\n height = _this$props2.height;\n return scrollHeight - height || 0;\n };\n\n _this.getEnableHeightRange = function () {\n var height = _this.props.height;\n\n var spinHeight = _this.getSpinHeight();\n\n return height - spinHeight || 0;\n };\n\n _this.getTop = function () {\n var scrollTop = _this.props.scrollTop;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n if (scrollTop === 0 || enableScrollRange === 0) {\n return 0;\n }\n\n var ptg = scrollTop / enableScrollRange;\n return ptg * enableHeightRange;\n }; // Not show scrollbar when height is large thane scrollHeight\n\n\n _this.getVisible = function () {\n var visible = _this.state.visible;\n var _this$props3 = _this.props,\n height = _this$props3.height,\n scrollHeight = _this$props3.scrollHeight;\n\n if (height >= scrollHeight) {\n return false;\n }\n\n return visible;\n };\n\n return _this;\n }\n\n _createClass(ScrollBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart);\n this.thumbRef.current.addEventListener('touchstart', this.onMouseDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollTop !== this.props.scrollTop) {\n this.delayHidden();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeEvents();\n clearTimeout(this.visibleTimeout);\n } // ====================== Render =======================\n\n }, {\n key: \"render\",\n value: function render() {\n var dragging = this.state.dragging;\n var prefixCls = this.props.prefixCls;\n var spinHeight = this.getSpinHeight();\n var top = this.getTop();\n var visible = this.getVisible();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.scrollbarRef,\n className: \"\".concat(prefixCls, \"-scrollbar\"),\n style: {\n width: 8,\n top: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n display: visible ? null : 'none'\n },\n onMouseDown: this.onContainerMouseDown,\n onMouseMove: this.delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.thumbRef,\n className: classNames(\"\".concat(prefixCls, \"-scrollbar-thumb\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-thumb-moving\"), dragging)),\n style: {\n width: '100%',\n height: spinHeight,\n top: top,\n left: 0,\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n },\n onMouseDown: this.onMouseDown\n }));\n }\n }]);\n\n return ScrollBar;\n}(React.Component);\n\nexport { ScrollBar as default };","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(list, startIndex, endIndex, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {// style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null); // Firefox patch\n\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false); // Scroll status sync\n\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n function onWheel(event) {\n if (!inVirtual) return;\n raf.cancel(nextFrameRef.current);\n var deltaY = event.deltaY;\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY; // Do nothing when scroll at the edge, Skip check when is in scroll\n\n if (originScroll(deltaY)) return; // Proxy of scroll events\n\n if (!isFF) {\n event.preventDefault();\n }\n\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n } // A patch for firefox\n\n\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n\n return [onWheel, onFireFoxScroll];\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var heightUpdateIdRef = useRef(0);\n\n function collectHeight() {\n heightUpdateIdRef.current += 1;\n var currentId = heightUpdateIdRef.current;\n Promise.resolve().then(function () {\n // Only collect when it's latest call\n if (currentId !== heightUpdateIdRef.current) return;\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n }); // Always trigger update mark to tell parent that should re-calculate heights when resized\n\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n } // Instance changed\n\n\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null); // Smooth scroll\n\n var intervalRef = useRef(null);\n var cleanUpEvents;\n\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n\n if (callback(offsetY)) {\n e.preventDefault();\n } // Smooth interval\n\n\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n\n React.useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n\n return function () {\n listRef.current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n } // Pass to ref since global add is in closure\n\n\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll = // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top || // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n\n return !lockRef.current && originScroll;\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n } // Normal scroll logic\n\n\n raf.cancel(scrollRef.current);\n\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset; // We will retry 3 times in case dynamic height shaking\n\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign; // Go to next frame if height not exist\n\n if (height) {\n var mergedAlign = targetAlign || align; // Get top & bottom\n\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n } // Scroll to\n\n\n var targetTop = null;\n\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n } // We will retry since element may not sync height as it described\n\n\n scrollRef.current = raf(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n\n syncScroll(times - 1, newTargetAlign);\n });\n };\n\n syncScroll(3);\n }\n };\n}","import List from './List';\nexport default List;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n\n this.maps = {};\n this.maps.prototype = null;\n }\n\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n\n return CacheMap;\n}();\n\nexport default CacheMap;","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2; // Balance\n\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n\n if (index % 2) {\n return start + stepIndex + 1;\n }\n\n return start - stepIndex;\n } // One is out of range\n\n\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\n\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n\n return notExistKey;\n } // Loop to find diff one\n\n\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcResizeObserver = _interopRequireDefault(require(\"rc-resize-observer\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offset = _ref.offset,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n\n if (offset !== undefined) {\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {\n transform: \"translateY(\".concat(offset, \"px)\"),\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(_rcResizeObserver.default, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: innerStyle,\n className: (0, _classnames.default)(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, children)));\n});\nFiller.displayName = 'Filler';\nvar _default = Filler;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Item = Item;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RawList = RawList;\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Filler = _interopRequireDefault(require(\"./Filler\"));\n\nvar _ScrollBar = _interopRequireDefault(require(\"./ScrollBar\"));\n\nvar _useChildren = _interopRequireDefault(require(\"./hooks/useChildren\"));\n\nvar _useHeights3 = _interopRequireDefault(require(\"./hooks/useHeights\"));\n\nvar _useScrollTo = _interopRequireDefault(require(\"./hooks/useScrollTo\"));\n\nvar _useDiffItem3 = _interopRequireDefault(require(\"./hooks/useDiffItem\"));\n\nvar _useFrameWheel3 = _interopRequireDefault(require(\"./hooks/useFrameWheel\"));\n\nvar _useMobileTouchMove = _interopRequireDefault(require(\"./hooks/useMobileTouchMove\"));\n\nvar _useOriginScroll = _interopRequireDefault(require(\"./hooks/useOriginScroll\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\n\nfunction RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"component\", \"onScroll\"]); // ================================= MISC =================================\n\n\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && itemHeight * data.length > height;\n\n var _useState = (0, React.useState)(0),\n _useState2 = _slicedToArray(_useState, 2),\n scrollTop = _useState2[0],\n setScrollTop = _useState2[1];\n\n var _useState3 = (0, React.useState)(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrollMoving = _useState4[0],\n setScrollMoving = _useState4[1];\n\n var mergedClassName = (0, _classnames.default)(prefixCls, className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = (0, React.useRef)();\n var fillerInnerRef = (0, React.useRef)();\n var scrollBarRef = (0, React.useRef)(); // Hack on scrollbar to enable flash call\n // =============================== Item Key ===============================\n\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n }; // ================================ Scroll ================================\n\n function syncScrollTop(newTop) {\n setScrollTop(function (origin) {\n var value;\n\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n } // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n\n\n var rangeRef = (0, React.useRef)({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = (0, React.useRef)();\n\n var _useDiffItem = (0, _useDiffItem3.default)(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n\n diffItemRef.current = diffItem; // ================================ Height ================================\n\n var _useHeights = (0, _useHeights3.default)(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3]; // ========================== Visible Calculation =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n } // Always use virtual scroll bar in avoid shaking\n\n\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight); // Check item top in the range\n\n if (currentItemBottom >= scrollTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n } // Check item bottom in the range. We will render additional one item for motion usage\n\n\n if (currentItemBottom > scrollTop + height && endIndex === undefined) {\n endIndex = i;\n }\n\n itemTop = currentItemBottom;\n } // Fallback to normal if not match. This code should never reach\n\n /* istanbul ignore next */\n\n\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n }\n\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n } // Give cache to improve scroll experience\n\n\n endIndex = Math.min(endIndex + 1, mergedData.length);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n offset = _React$useMemo.offset;\n\n rangeRef.current.start = start;\n rangeRef.current.end = end; // =============================== In Range ===============================\n\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = (0, React.useRef)(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n\n var isScrollAtTop = scrollTop <= 0;\n var isScrollAtBottom = scrollTop >= maxScrollHeight;\n var originScroll = (0, _useOriginScroll.default)(isScrollAtTop, isScrollAtBottom); // ================================ Scroll ================================\n\n function onScrollBar(newScrollTop) {\n var newTop = newScrollTop;\n syncScrollTop(newTop);\n } // When data size reduce. It may trigger native scroll event back to fit scroll position\n\n\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n\n if (newScrollTop !== scrollTop) {\n syncScrollTop(newScrollTop);\n } // Trigger origin onScroll\n\n\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n } // Since this added in global,should use ref to keep update\n\n\n var _useFrameWheel = (0, _useFrameWheel3.default)(useVirtual, isScrollAtTop, isScrollAtBottom, function (offsetY) {\n syncScrollTop(function (top) {\n var newTop = top + offsetY;\n return newTop;\n });\n }),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1]; // Mobile touch move\n\n\n (0, _useMobileTouchMove.default)(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n React.useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n\n componentRef.current.addEventListener('wheel', onRawWheel);\n componentRef.current.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentRef.current.removeEventListener('wheel', onRawWheel);\n componentRef.current.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]); // ================================= Ref ==================================\n\n var scrollTo = (0, _useScrollTo.default)(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, function () {\n var _scrollBarRef$current;\n\n (_scrollBarRef$current = scrollBarRef.current) === null || _scrollBarRef$current === void 0 ? void 0 : _scrollBarRef$current.delayHidden();\n });\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: scrollTo\n };\n }); // ================================ Render ================================\n\n var listChildren = (0, _useChildren.default)(mergedData, start, end, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, restProps), /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll\n }, /*#__PURE__*/React.createElement(_Filler.default, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offset: offset,\n onInnerResize: collectHeight,\n ref: fillerInnerRef\n }, listChildren)), useVirtual && /*#__PURE__*/React.createElement(_ScrollBar.default, {\n ref: scrollBarRef,\n prefixCls: prefixCls,\n scrollTop: scrollTop,\n height: height,\n scrollHeight: scrollHeight,\n count: mergedData.length,\n onScroll: onScrollBar,\n onStartMove: function onStartMove() {\n setScrollMoving(true);\n },\n onStopMove: function onStopMove() {\n setScrollMoving(false);\n }\n }));\n}\n\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nvar _default = List;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _raf = _interopRequireDefault(require(\"rc-util/lib/raf\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar MIN_SIZE = 20;\n\nfunction getPageY(e) {\n return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\n\nvar ScrollBar = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollBar, _React$Component);\n\n var _super = _createSuper(ScrollBar);\n\n function ScrollBar() {\n var _this;\n\n _classCallCheck(this, ScrollBar);\n\n _this = _super.apply(this, arguments);\n _this.moveRaf = null;\n _this.scrollbarRef = /*#__PURE__*/React.createRef();\n _this.thumbRef = /*#__PURE__*/React.createRef();\n _this.visibleTimeout = null;\n _this.state = {\n dragging: false,\n pageY: null,\n startTop: null,\n visible: false\n };\n\n _this.delayHidden = function () {\n clearTimeout(_this.visibleTimeout);\n\n _this.setState({\n visible: true\n });\n\n _this.visibleTimeout = setTimeout(function () {\n _this.setState({\n visible: false\n });\n }, 2000);\n };\n\n _this.onScrollbarTouchStart = function (e) {\n e.preventDefault();\n };\n\n _this.onContainerMouseDown = function (e) {\n e.stopPropagation();\n e.preventDefault();\n }; // ======================= Clean =======================\n\n\n _this.patchEvents = function () {\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseup', _this.onMouseUp);\n\n _this.thumbRef.current.addEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.addEventListener('touchend', _this.onMouseUp);\n };\n\n _this.removeEvents = function () {\n window.removeEventListener('mousemove', _this.onMouseMove);\n window.removeEventListener('mouseup', _this.onMouseUp);\n\n _this.scrollbarRef.current.removeEventListener('touchstart', _this.onScrollbarTouchStart);\n\n _this.thumbRef.current.removeEventListener('touchstart', _this.onMouseDown);\n\n _this.thumbRef.current.removeEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.removeEventListener('touchend', _this.onMouseUp);\n\n _raf.default.cancel(_this.moveRaf);\n }; // ======================= Thumb =======================\n\n\n _this.onMouseDown = function (e) {\n var onStartMove = _this.props.onStartMove;\n\n _this.setState({\n dragging: true,\n pageY: getPageY(e),\n startTop: _this.getTop()\n });\n\n onStartMove();\n\n _this.patchEvents();\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n _this.onMouseMove = function (e) {\n var _this$state = _this.state,\n dragging = _this$state.dragging,\n pageY = _this$state.pageY,\n startTop = _this$state.startTop;\n var onScroll = _this.props.onScroll;\n\n _raf.default.cancel(_this.moveRaf);\n\n if (dragging) {\n var offsetY = getPageY(e) - pageY;\n var newTop = startTop + offsetY;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n var ptg = enableHeightRange ? newTop / enableHeightRange : 0;\n var newScrollTop = Math.ceil(ptg * enableScrollRange);\n _this.moveRaf = (0, _raf.default)(function () {\n onScroll(newScrollTop);\n });\n }\n };\n\n _this.onMouseUp = function () {\n var onStopMove = _this.props.onStopMove;\n\n _this.setState({\n dragging: false\n });\n\n onStopMove();\n\n _this.removeEvents();\n }; // ===================== Calculate =====================\n\n\n _this.getSpinHeight = function () {\n var _this$props = _this.props,\n height = _this$props.height,\n count = _this$props.count;\n var baseHeight = height / count * 10;\n baseHeight = Math.max(baseHeight, MIN_SIZE);\n baseHeight = Math.min(baseHeight, height / 2);\n return Math.floor(baseHeight);\n };\n\n _this.getEnableScrollRange = function () {\n var _this$props2 = _this.props,\n scrollHeight = _this$props2.scrollHeight,\n height = _this$props2.height;\n return scrollHeight - height || 0;\n };\n\n _this.getEnableHeightRange = function () {\n var height = _this.props.height;\n\n var spinHeight = _this.getSpinHeight();\n\n return height - spinHeight || 0;\n };\n\n _this.getTop = function () {\n var scrollTop = _this.props.scrollTop;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n if (scrollTop === 0 || enableScrollRange === 0) {\n return 0;\n }\n\n var ptg = scrollTop / enableScrollRange;\n return ptg * enableHeightRange;\n }; // Not show scrollbar when height is large thane scrollHeight\n\n\n _this.getVisible = function () {\n var visible = _this.state.visible;\n var _this$props3 = _this.props,\n height = _this$props3.height,\n scrollHeight = _this$props3.scrollHeight;\n\n if (height >= scrollHeight) {\n return false;\n }\n\n return visible;\n };\n\n return _this;\n }\n\n _createClass(ScrollBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart);\n this.thumbRef.current.addEventListener('touchstart', this.onMouseDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollTop !== this.props.scrollTop) {\n this.delayHidden();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeEvents();\n clearTimeout(this.visibleTimeout);\n } // ====================== Render =======================\n\n }, {\n key: \"render\",\n value: function render() {\n var dragging = this.state.dragging;\n var prefixCls = this.props.prefixCls;\n var spinHeight = this.getSpinHeight();\n var top = this.getTop();\n var visible = this.getVisible();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.scrollbarRef,\n className: \"\".concat(prefixCls, \"-scrollbar\"),\n style: {\n width: 8,\n top: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n display: visible ? null : 'none'\n },\n onMouseDown: this.onContainerMouseDown,\n onMouseMove: this.delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.thumbRef,\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-scrollbar-thumb\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-thumb-moving\"), dragging)),\n style: {\n width: '100%',\n height: spinHeight,\n top: top,\n left: 0,\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n },\n onMouseDown: this.onMouseDown\n }));\n }\n }]);\n\n return ScrollBar;\n}(React.Component);\n\nexports.default = ScrollBar;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useChildren;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _Item = require(\"../Item\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction useChildren(list, startIndex, endIndex, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {// style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(_Item.Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useDiffItem;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _algorithmUtil = require(\"../utils/algorithmUtil\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n\n React.useEffect(function () {\n var diff = (0, _algorithmUtil.findListDiffIndex)(prevData || [], data || [], getKey);\n\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useFrameWheel;\n\nvar _react = require(\"react\");\n\nvar _raf = _interopRequireDefault(require(\"rc-util/lib/raf\"));\n\nvar _isFirefox = _interopRequireDefault(require(\"../utils/isFirefox\"));\n\nvar _useOriginScroll = _interopRequireDefault(require(\"./useOriginScroll\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n var offsetRef = (0, _react.useRef)(0);\n var nextFrameRef = (0, _react.useRef)(null); // Firefox patch\n\n var wheelValueRef = (0, _react.useRef)(null);\n var isMouseScrollRef = (0, _react.useRef)(false); // Scroll status sync\n\n var originScroll = (0, _useOriginScroll.default)(isScrollAtTop, isScrollAtBottom);\n\n function onWheel(event) {\n if (!inVirtual) return;\n\n _raf.default.cancel(nextFrameRef.current);\n\n var deltaY = event.deltaY;\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY; // Do nothing when scroll at the edge, Skip check when is in scroll\n\n if (originScroll(deltaY)) return; // Proxy of scroll events\n\n if (!_isFirefox.default) {\n event.preventDefault();\n }\n\n nextFrameRef.current = (0, _raf.default)(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n } // A patch for firefox\n\n\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n\n return [onWheel, onFireFoxScroll];\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useHeights;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _findDOMNode = _interopRequireDefault(require(\"rc-util/lib/Dom/findDOMNode\"));\n\nvar _CacheMap = _interopRequireDefault(require(\"../utils/CacheMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n\n var instanceRef = (0, React.useRef)(new Map());\n var heightsRef = (0, React.useRef)(new _CacheMap.default());\n var heightUpdateIdRef = (0, React.useRef)(0);\n\n function collectHeight() {\n heightUpdateIdRef.current += 1;\n var currentId = heightUpdateIdRef.current;\n Promise.resolve().then(function () {\n // Only collect when it's latest call\n if (currentId !== heightUpdateIdRef.current) return;\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = (0, _findDOMNode.default)(element);\n var offsetHeight = htmlElement.offsetHeight;\n\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n }); // Always trigger update mark to tell parent that should re-calculate heights when resized\n\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n } // Instance changed\n\n\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMobileTouchMove;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar SMOOTH_PTG = 14 / 15;\n\nfunction useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = (0, React.useRef)(false);\n var touchYRef = (0, React.useRef)(0);\n var elementRef = (0, React.useRef)(null); // Smooth scroll\n\n var intervalRef = (0, React.useRef)(null);\n var cleanUpEvents;\n\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n\n if (callback(offsetY)) {\n e.preventDefault();\n } // Smooth interval\n\n\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n\n React.useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n\n return function () {\n listRef.current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _default = function _default(isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = (0, _react.useRef)(false);\n var lockTimeoutRef = (0, _react.useRef)(null);\n\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n } // Pass to ref since global add is in closure\n\n\n var scrollPingRef = (0, _react.useRef)({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll = // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top || // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n\n return !lockRef.current && originScroll;\n };\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useScrollTo;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _raf = _interopRequireDefault(require(\"rc-util/lib/raf\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n } // Normal scroll logic\n\n\n _raf.default.cancel(scrollRef.current);\n\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset; // We will retry 3 times in case dynamic height shaking\n\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign; // Go to next frame if height not exist\n\n if (height) {\n var mergedAlign = targetAlign || align; // Get top & bottom\n\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n } // Scroll to\n\n\n var targetTop = null;\n\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n } // We will retry since element may not sync height as it described\n\n\n scrollRef.current = (0, _raf.default)(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n\n syncScroll(times - 1, newTargetAlign);\n });\n };\n\n syncScroll(3);\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n\n this.maps = {};\n this.maps.prototype = null;\n }\n\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n\n return CacheMap;\n}();\n\nvar _default = CacheMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getIndexByStartLoc = getIndexByStartLoc;\nexports.findListDiffIndex = findListDiffIndex;\n\n/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nfunction getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2; // Balance\n\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n\n if (index % 2) {\n return start + stepIndex + 1;\n }\n\n return start - stepIndex;\n } // One is out of range\n\n\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\n\n\nfunction findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n\n return notExistKey;\n } // Loop to find diff one\n\n\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nvar _default = isFF;\nexports.default = _default;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nexport default function wrapperRaf(callback) {\n return raf(callback);\n}\nwrapperRaf.cancel = caf;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findDOMNode;\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nfunction findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return _reactDom.default.findDOMNode(node);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = wrapperRaf;\n\nvar raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nfunction wrapperRaf(callback) {\n return raf(callback);\n}\n\nwrapperRaf.cancel = caf;","import React, { useLayoutEffect, useEffect, useRef, useState, useContext } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport { getRect, expand, offset, withScroll, getBox, createBox, calculateBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport rafSchd from 'raf-schd';\nimport ReactDOM from 'react-dom';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nvar spacesAndTabs = /[ \\t]{2,}/g;\nvar lineStartWithSpaces = /^[ \\t]*/gm;\n\nvar clean = function clean(value) {\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n};\n\nvar getDevMessage = function getDevMessage(message) {\n return clean(\"\\n %creact-beautiful-dnd\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development only message. It will be removed in production builds.\\n\");\n};\n\nvar getFormattedMessage = function getFormattedMessage(message) {\n return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\n};\nvar isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';\nfunction log(type, message) {\n var _console;\n\n if (isProduction) {\n return;\n }\n\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n\n (_console = console)[type].apply(_console, getFormattedMessage(message));\n}\nvar warning = log.bind(null, 'warn');\nvar error = log.bind(null, 'error');\n\nfunction noop() {}\n\nfunction getOptions(shared, fromBinding) {\n return _extends({}, shared, {}, fromBinding);\n}\n\nfunction bindEvents(el, bindings, sharedOptions) {\n var unbindings = bindings.map(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n return function unbind() {\n el.removeEventListener(binding.eventName, binding.fn, options);\n };\n });\n return function unbindAll() {\n unbindings.forEach(function (unbind) {\n unbind();\n });\n };\n}\n\nvar isProduction$1 = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction RbdInvariant(message) {\n this.message = message;\n}\n\nRbdInvariant.prototype.toString = function toString() {\n return this.message;\n};\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction$1) {\n throw new RbdInvariant(prefix);\n } else {\n throw new RbdInvariant(prefix + \": \" + (message || ''));\n }\n}\n\nvar ErrorBoundary = function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.callbacks = null;\n _this.unbind = noop;\n\n _this.onWindowError = function (event) {\n var callbacks = _this.getCallbacks();\n\n if (callbacks.isDragging()) {\n callbacks.tryAbort();\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n An error was caught by our window 'error' event listener while a drag was occurring.\\n The active drag has been aborted.\\n \") : void 0;\n }\n\n var err = event.error;\n\n if (err instanceof RbdInvariant) {\n event.preventDefault();\n\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n }\n };\n\n _this.getCallbacks = function () {\n if (!_this.callbacks) {\n throw new Error('Unable to find AppCallbacks in <ErrorBoundary/>');\n }\n\n return _this.callbacks;\n };\n\n _this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n return _this;\n }\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.unbind = bindEvents(window, [{\n eventName: 'error',\n fn: this.onWindowError\n }]);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unbind();\n };\n\n _proto.componentDidCatch = function componentDidCatch(err) {\n if (err instanceof RbdInvariant) {\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n\n this.setState({});\n return;\n }\n\n throw err;\n };\n\n _proto.render = function render() {\n return this.props.children(this.setCallbacks);\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nvar dragHandleUsageInstructions = \"\\n Press space bar to start a drag.\\n When dragging you can use the arrow keys to move the item around and escape to cancel.\\n Some screen readers may require you to be in focus mode or to use your pass through key\\n\";\n\nvar position = function position(index) {\n return index + 1;\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + position(start.source.index) + \"\\n\";\n};\n\nvar withLocation = function withLocation(source, destination) {\n var isInHomeList = source.droppableId === destination.droppableId;\n var startPosition = position(source.index);\n var endPosition = position(destination.index);\n\n if (isInHomeList) {\n return \"\\n You have moved the item from position \" + startPosition + \"\\n to position \" + endPosition + \"\\n \";\n }\n\n return \"\\n You have moved the item from position \" + startPosition + \"\\n in list \" + source.droppableId + \"\\n to list \" + destination.droppableId + \"\\n in position \" + endPosition + \"\\n \";\n};\n\nvar withCombine = function withCombine(id, source, combine) {\n var inHomeList = source.droppableId === combine.droppableId;\n\n if (inHomeList) {\n return \"\\n The item \" + id + \"\\n has been combined with \" + combine.draggableId;\n }\n\n return \"\\n The item \" + id + \"\\n in list \" + source.droppableId + \"\\n has been combined with \" + combine.draggableId + \"\\n in list \" + combine.droppableId + \"\\n \";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n var location = update.destination;\n\n if (location) {\n return withLocation(update.source, location);\n }\n\n var combine = update.combine;\n\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n\n return 'You are over an area that cannot be dropped on';\n};\n\nvar returnedToStart = function returnedToStart(source) {\n return \"\\n The item has returned to its starting position\\n of \" + position(source.index) + \"\\n\";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n \" + returnedToStart(result.source) + \"\\n \";\n }\n\n var location = result.destination;\n var combine = result.combine;\n\n if (location) {\n return \"\\n You have dropped the item.\\n \" + withLocation(result.source, location) + \"\\n \";\n }\n\n if (combine) {\n return \"\\n You have dropped the item.\\n \" + withCombine(result.draggableId, result.source, combine) + \"\\n \";\n }\n\n return \"\\n The item has been dropped while not over a drop area.\\n \" + returnedToStart(result.source) + \"\\n \";\n};\n\nvar preset = {\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\n\nvar origin = {\n x: 0,\n y: 0\n};\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar executeClip = (function (frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n});\n\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar scroll = function scroll(target, frame) {\n if (!frame) {\n return target;\n }\n\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\n\nvar increase = function increase(target, axis, withPlaceholder) {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n var _extends2;\n\n return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2));\n }\n\n return target;\n};\n\nvar clip = function clip(target, frame) {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n\n return getRect(target);\n};\n\nvar getSubject = (function (_ref) {\n var page = _ref.page,\n withPlaceholder = _ref.withPlaceholder,\n axis = _ref.axis,\n frame = _ref.frame;\n var scrolled = scroll(page.marginBox, frame);\n var increased = increase(scrolled, axis, withPlaceholder);\n var clipped = clip(increased, frame);\n return {\n page: page,\n withPlaceholder: withPlaceholder,\n active: clipped\n };\n});\n\nvar scrollDroppable = (function (droppable, newScroll) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.frame;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n\n var frame = _extends({}, scrollable, {\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n });\n\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame: frame\n });\n\n var result = _extends({}, droppable, {\n frame: frame,\n subject: subject\n });\n\n return result;\n});\n\nfunction isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction values(map) {\n if (Object.values) {\n return Object.values(map);\n }\n\n return Object.keys(map).map(function (key) {\n return map[key];\n });\n}\nfunction findIndex(list, predicate) {\n if (list.findIndex) {\n return list.findIndex(predicate);\n }\n\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i])) {\n return i;\n }\n }\n\n return -1;\n}\nfunction find(list, predicate) {\n if (list.find) {\n return list.find(predicate);\n }\n\n var index = findIndex(list, predicate);\n\n if (index !== -1) {\n return list[index];\n }\n\n return undefined;\n}\nfunction toArray(list) {\n return Array.prototype.slice.call(list);\n}\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return values(droppables);\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return values(draggables);\n});\n\nvar getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) {\n var result = toDraggableList(draggables).filter(function (draggable) {\n return droppableId === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n return result;\n});\n\nfunction tryGetDestination(impact) {\n if (impact.at && impact.at.type === 'REORDER') {\n return impact.at.destination;\n }\n\n return null;\n}\nfunction tryGetCombine(impact) {\n if (impact.at && impact.at.type === 'COMBINE') {\n return impact.at.combine;\n }\n\n return null;\n}\n\nvar removeDraggableFromList = memoizeOne(function (remove, list) {\n return list.filter(function (item) {\n return item.descriptor.id !== remove.descriptor.id;\n });\n});\n\nvar moveToNextCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var location = tryGetDestination(previousImpact);\n\n if (!location) {\n return null;\n }\n\n function getImpact(target) {\n var at = {\n type: 'COMBINE',\n combine: {\n draggableId: target,\n droppableId: destination.descriptor.id\n }\n };\n return _extends({}, previousImpact, {\n at: at\n });\n }\n\n var all = previousImpact.displaced.all;\n var closestId = all.length ? all[0] : null;\n\n if (isMovingForward) {\n return closestId ? getImpact(closestId) : null;\n }\n\n var withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n\n if (!closestId) {\n if (!withoutDraggable.length) {\n return null;\n }\n\n var last = withoutDraggable[withoutDraggable.length - 1];\n return getImpact(last.descriptor.id);\n }\n\n var indexOfClosest = findIndex(withoutDraggable, function (d) {\n return d.descriptor.id === closestId;\n });\n !(indexOfClosest !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0;\n var proposedIndex = indexOfClosest - 1;\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var before = withoutDraggable[proposedIndex];\n return getImpact(before.descriptor.id);\n});\n\nvar isHomeOf = (function (draggable, destination) {\n return draggable.descriptor.droppableId === destination.descriptor.id;\n});\n\nvar noDisplacedBy = {\n point: origin,\n value: 0\n};\nvar emptyGroups = {\n invisible: {},\n visible: {},\n all: []\n};\nvar noImpact = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: null\n};\n\nvar isWithin = (function (lowerBound, upperBound) {\n return function (value) {\n return lowerBound <= value && value <= upperBound;\n };\n});\n\nvar isPartiallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n});\n\nvar isTotallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n});\n\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isTotallyVisibleThroughFrameOnAxis = (function (axis) {\n return function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n };\n});\n\nvar getDroppableDisplaced = function getDroppableDisplaced(target, destination) {\n var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\n\nvar isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) {\n if (!destination.subject.active) {\n return false;\n }\n\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\n\nvar isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) {\n return isVisibleThroughFrameFn(viewport)(target);\n};\n\nvar isVisible = function isVisible(_ref) {\n var toBeDisplaced = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisible = function isTotallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n }));\n};\n\nvar getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n\n if (!last) {\n return true;\n }\n\n var invisible = last.invisible,\n visible = last.visible;\n\n if (invisible[id]) {\n return false;\n }\n\n var previous = visible[id];\n return previous ? previous.shouldAnimate : true;\n};\n\nfunction getTarget(draggable, displacedBy) {\n var marginBox = draggable.page.marginBox;\n var expandBy = {\n top: displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n}\n\nfunction getDisplacementGroups(_ref) {\n var afterDragging = _ref.afterDragging,\n destination = _ref.destination,\n displacedBy = _ref.displacedBy,\n viewport = _ref.viewport,\n forceShouldAnimate = _ref.forceShouldAnimate,\n last = _ref.last;\n return afterDragging.reduce(function process(groups, draggable) {\n var target = getTarget(draggable, displacedBy);\n var id = draggable.descriptor.id;\n groups.all.push(id);\n var isVisible = isPartiallyVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n withDroppableDisplacement: true\n });\n\n if (!isVisible) {\n groups.invisible[draggable.descriptor.id] = true;\n return groups;\n }\n\n var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate);\n var displacement = {\n draggableId: id,\n shouldAnimate: shouldAnimate\n };\n groups.visible[id] = displacement;\n return groups;\n }, {\n all: [],\n visible: {},\n invisible: {}\n });\n}\n\nfunction getIndexOfLastItem(draggables, options) {\n if (!draggables.length) {\n return 0;\n }\n\n var indexOfLastItem = draggables[draggables.length - 1].descriptor.index;\n return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1;\n}\n\nfunction goAtEnd(_ref) {\n var insideDestination = _ref.insideDestination,\n inHomeList = _ref.inHomeList,\n displacedBy = _ref.displacedBy,\n destination = _ref.destination;\n var newIndex = getIndexOfLastItem(insideDestination, {\n inHomeList: inHomeList\n });\n return {\n displaced: emptyGroups,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n }\n };\n}\n\nfunction calculateReorderImpact(_ref2) {\n var draggable = _ref2.draggable,\n insideDestination = _ref2.insideDestination,\n destination = _ref2.destination,\n viewport = _ref2.viewport,\n displacedBy = _ref2.displacedBy,\n last = _ref2.last,\n index = _ref2.index,\n forceShouldAnimate = _ref2.forceShouldAnimate;\n var inHomeList = isHomeOf(draggable, destination);\n\n if (index == null) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var match = find(insideDestination, function (item) {\n return item.descriptor.index === index;\n });\n\n if (!match) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var sliceFrom = insideDestination.indexOf(match);\n var impacted = withoutDragging.slice(sliceFrom);\n var displaced = getDisplacementGroups({\n afterDragging: impacted,\n destination: destination,\n displacedBy: displacedBy,\n last: last,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate\n });\n return {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: index\n }\n }\n };\n}\n\nfunction didStartAfterCritical(draggableId, afterCritical) {\n return Boolean(afterCritical.effected[draggableId]);\n}\n\nvar fromCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n destination = _ref.destination,\n draggables = _ref.draggables,\n combine = _ref.combine,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var combineId = combine.draggableId;\n var combineWith = draggables[combineId];\n var combineWithIndex = combineWith.descriptor.index;\n var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical);\n\n if (didCombineWithStartAfterCritical) {\n if (isMovingForward) {\n return combineWithIndex;\n }\n\n return combineWithIndex - 1;\n }\n\n if (isMovingForward) {\n return combineWithIndex + 1;\n }\n\n return combineWithIndex;\n});\n\nvar fromReorder = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n insideDestination = _ref.insideDestination,\n location = _ref.location;\n\n if (!insideDestination.length) {\n return null;\n }\n\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n var firstIndex = insideDestination[0].descriptor.index;\n var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index;\n var upperBound = isInHomeList ? lastIndex : lastIndex + 1;\n\n if (proposedIndex < firstIndex) {\n return null;\n }\n\n if (proposedIndex > upperBound) {\n return null;\n }\n\n return proposedIndex;\n});\n\nvar moveToNextIndex = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var wasAt = previousImpact.at;\n !wasAt ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0;\n\n if (wasAt.type === 'REORDER') {\n var _newIndex = fromReorder({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n location: wasAt.destination,\n insideDestination: insideDestination\n });\n\n if (_newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: _newIndex\n });\n }\n\n var newIndex = fromCombine({\n isMovingForward: isMovingForward,\n destination: destination,\n displaced: previousImpact.displaced,\n draggables: draggables,\n combine: wasAt.combine,\n afterCritical: afterCritical\n });\n\n if (newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n});\n\nvar getCombinedItemDisplacement = (function (_ref) {\n var displaced = _ref.displaced,\n afterCritical = _ref.afterCritical,\n combineWith = _ref.combineWith,\n displacedBy = _ref.displacedBy;\n var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]);\n\n if (didStartAfterCritical(combineWith, afterCritical)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n\n return isDisplaced ? displacedBy.point : origin;\n});\n\nvar whenCombining = (function (_ref) {\n var afterCritical = _ref.afterCritical,\n impact = _ref.impact,\n draggables = _ref.draggables;\n var combine = tryGetCombine(impact);\n !combine ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var combineWith = combine.draggableId;\n var center = draggables[combineWith].page.borderBox.center;\n var displaceBy = getCombinedItemDisplacement({\n displaced: impact.displaced,\n afterCritical: afterCritical,\n combineWith: combineWith,\n displacedBy: impact.displacedBy\n });\n return add(center, displaceBy);\n});\n\nvar distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) {\n return box.margin[axis.start] + box.borderBox[axis.size] / 2;\n};\n\nvar distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) {\n return box.margin[axis.end] + box.borderBox[axis.size] / 2;\n};\n\nvar getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) {\n return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\n};\n\nvar goAfter = function goAfter(_ref) {\n var axis = _ref.axis,\n moveRelativeTo = _ref.moveRelativeTo,\n isMoving = _ref.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goBefore = function goBefore(_ref2) {\n var axis = _ref2.axis,\n moveRelativeTo = _ref2.moveRelativeTo,\n isMoving = _ref2.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goIntoStart = function goIntoStart(_ref3) {\n var axis = _ref3.axis,\n moveInto = _ref3.moveInto,\n isMoving = _ref3.isMoving;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n afterCritical = _ref.afterCritical;\n var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var draggablePage = draggable.page;\n var axis = droppable.axis;\n\n if (!insideDestination.length) {\n return goIntoStart({\n axis: axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n\n var displaced = impact.displaced,\n displacedBy = impact.displacedBy;\n var closestAfter = displaced.all[0];\n\n if (closestAfter) {\n var closest = draggables[closestAfter];\n\n if (didStartAfterCritical(closestAfter, afterCritical)) {\n return goBefore({\n axis: axis,\n moveRelativeTo: closest.page,\n isMoving: draggablePage\n });\n }\n\n var withDisplacement = offset(closest.page, displacedBy.point);\n return goBefore({\n axis: axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n\n var last = insideDestination[insideDestination.length - 1];\n\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n\n if (didStartAfterCritical(last.descriptor.id, afterCritical)) {\n var page = offset(last.page, negate(afterCritical.displacedBy.point));\n return goAfter({\n axis: axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n\n return goAfter({\n axis: axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n});\n\nvar withDroppableDisplacement = (function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.displacement);\n});\n\nvar getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n afterCritical = _ref.afterCritical;\n var original = draggable.page.borderBox.center;\n var at = impact.at;\n\n if (!droppable) {\n return original;\n }\n\n if (!at) {\n return original;\n }\n\n if (at.type === 'REORDER') {\n return whenReordering({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n }\n\n return whenCombining({\n impact: impact,\n draggables: draggables,\n afterCritical: afterCritical\n });\n};\n\nvar getPageBorderBoxCenterFromImpact = (function (args) {\n var withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n var droppable = args.droppable;\n var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n});\n\nvar scrollViewport = (function (viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n});\n\nfunction getDraggables(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nfunction tryGetVisible(id, groups) {\n for (var i = 0; i < groups.length; i++) {\n var displacement = groups[i].visible[id];\n\n if (displacement) {\n return displacement;\n }\n }\n\n return null;\n}\n\nvar speculativelyIncrease = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n maxScrollChange = _ref.maxScrollChange;\n var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n var last = impact.displaced;\n var withViewportScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: scrolledViewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var withDroppableScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: scrolledDroppable,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var invisible = {};\n var visible = {};\n var groups = [last, withViewportScroll, withDroppableScroll];\n last.all.forEach(function (id) {\n var displacement = tryGetVisible(id, groups);\n\n if (displacement) {\n visible[id] = displacement;\n return;\n }\n\n invisible[id] = true;\n });\n\n var newImpact = _extends({}, impact, {\n displaced: {\n all: last.all,\n invisible: invisible,\n visible: visible\n }\n });\n\n return newImpact;\n});\n\nvar withViewportDisplacement = (function (viewport, point) {\n return add(viewport.scroll.diff.displacement, point);\n});\n\nvar getClientFromPageBorderBoxCenter = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n viewport = _ref.viewport;\n var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n});\n\nvar isTotallyVisibleInNewLocation = (function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n _ref$onlyOnMainAxis = _ref.onlyOnMainAxis,\n onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis;\n var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n var args = {\n target: shifted,\n destination: destination,\n withDroppableDisplacement: withDroppableDisplacement,\n viewport: viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n});\n\nvar moveToNextPlace = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n draggables = _ref.draggables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousClientSelection = _ref.previousClientSelection,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isEnabled) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var isInHomeList = isHomeOf(draggable, destination);\n var impact = moveToNextCombine({\n isMovingForward: isMovingForward,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact\n }) || moveToNextIndex({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n draggables: draggables,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n\n if (isVisibleInNewLocation) {\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n }\n\n var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n var cautious = speculativelyIncrease({\n impact: impact,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n maxScrollChange: distance\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n});\n\nvar getKnownActive = function getKnownActive(droppable) {\n var rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var active = source.subject.active;\n\n if (!active) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n return Boolean(droppable.subject.active);\n }).filter(function (droppable) {\n return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable));\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort(function (a, b) {\n var first = getKnownActive(a)[axis.crossAxisStart];\n var second = getKnownActive(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n});\n\nvar getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) {\n var original = draggable.page.borderBox.center;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original;\n};\nvar getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) {\n var original = draggable.page.borderBox;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n viewport = _ref.viewport,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n var sorted = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, afterCritical),\n destination: destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical)));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical)));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n});\n\nvar getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) {\n var displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nvar getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) {\n var axis = droppable.axis;\n\n if (droppable.descriptor.mode === 'virtual') {\n return patch(axis.line, placeholderSize[axis.line]);\n }\n\n var availableSpace = droppable.subject.page.contentBox[axis.size];\n var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var spaceUsed = insideDroppable.reduce(function (sum, dimension) {\n return sum + dimension.client.marginBox[axis.size];\n }, 0);\n var requiredSpace = spaceUsed + placeholderSize[axis.line];\n var needsToGrowBy = requiredSpace - availableSpace;\n\n if (needsToGrowBy <= 0) {\n return null;\n }\n\n return patch(axis.line, needsToGrowBy);\n};\n\nvar withMaxScroll = function withMaxScroll(frame, max) {\n return _extends({}, frame, {\n scroll: _extends({}, frame.scroll, {\n max: max\n })\n });\n};\n\nvar addPlaceholder = function addPlaceholder(droppable, draggable, draggables) {\n var frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n var added = {\n placeholderSize: placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n\n if (!frame) {\n var _subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n\n return _extends({}, droppable, {\n subject: _subject\n });\n }\n\n var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n var newFrame = withMaxScroll(frame, maxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\nvar removePlaceholder = function removePlaceholder(droppable) {\n var added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n var frame = droppable.frame;\n\n if (!frame) {\n var _subject2 = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n\n return _extends({}, droppable, {\n subject: _subject2\n });\n }\n\n var oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n var newFrame = withMaxScroll(frame, oldMaxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar moveToNewDroppable = (function (_ref) {\n var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n moveRelativeTo = _ref.moveRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n\n var proposed = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n }\n };\n var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n\n var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]);\n\n var proposedIndex = function () {\n var relativeTo = moveRelativeTo.descriptor.index;\n\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return relativeTo;\n }\n\n if (isGoingBeforeTarget) {\n return relativeTo;\n }\n\n return relativeTo + 1;\n }();\n\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n displacedBy: displacedBy,\n last: emptyGroups,\n index: proposedIndex\n });\n});\n\nvar moveCrossAxis = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n draggable = _ref.draggable,\n isOver = _ref.isOver,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport: viewport,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n });\n var impact = moveToNewDroppable({\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n draggables: draggables,\n moveRelativeTo: moveRelativeTo,\n insideDestination: insideDestination,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n});\n\nvar whatIsDraggedOver = (function (impact) {\n var at = impact.at;\n\n if (!at) {\n return null;\n }\n\n if (at.type === 'REORDER') {\n return at.destination.droppableId;\n }\n\n return at.combine.droppableId;\n});\n\nvar getDroppableOver = function getDroppableOver(impact, droppables) {\n var id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\n\nvar moveInDirection = (function (_ref) {\n var state = _ref.state,\n type = _ref.type;\n var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables);\n var isMainAxisMovementAllowed = Boolean(isActuallyOver);\n var home = state.dimensions.droppables[state.critical.droppable.id];\n var isOver = isActuallyOver || home;\n var direction = isOver.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n var _state$dimensions = state.dimensions,\n draggables = _state$dimensions.draggables,\n droppables = _state$dimensions.droppables;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n destination: isOver,\n draggables: draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n afterCritical: state.afterCritical\n }) : moveCrossAxis({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n isOver: isOver,\n draggables: draggables,\n droppables: droppables,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n});\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nfunction isPositionInFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function run(point) {\n return isWithinVertical(point.y) && isWithinHorizontal(point.x);\n };\n}\n\nfunction getHasOverlap(first, second) {\n return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top;\n}\n\nfunction getFurthestAway(_ref) {\n var pageBorderBox = _ref.pageBorderBox,\n draggable = _ref.draggable,\n candidates = _ref.candidates;\n var startCenter = draggable.page.borderBox.center;\n var sorted = candidates.map(function (candidate) {\n var axis = candidate.axis;\n var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]);\n return {\n id: candidate.descriptor.id,\n distance: distance(startCenter, target)\n };\n }).sort(function (a, b) {\n return b.distance - a.distance;\n });\n return sorted[0] ? sorted[0].id : null;\n}\n\nfunction getDroppableOver$1(_ref2) {\n var pageBorderBox = _ref2.pageBorderBox,\n draggable = _ref2.draggable,\n droppables = _ref2.droppables;\n var candidates = toDroppableList(droppables).filter(function (item) {\n if (!item.isEnabled) {\n return false;\n }\n\n var active = item.subject.active;\n\n if (!active) {\n return false;\n }\n\n if (!getHasOverlap(pageBorderBox, active)) {\n return false;\n }\n\n if (isPositionInFrame(active)(pageBorderBox.center)) {\n return true;\n }\n\n var axis = item.axis;\n var childCenter = active.center[axis.crossAxisLine];\n var crossAxisStart = pageBorderBox[axis.crossAxisStart];\n var crossAxisEnd = pageBorderBox[axis.crossAxisEnd];\n var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]);\n var isStartContained = isContained(crossAxisStart);\n var isEndContained = isContained(crossAxisEnd);\n\n if (!isStartContained && !isEndContained) {\n return true;\n }\n\n if (isStartContained) {\n return crossAxisStart < childCenter;\n }\n\n return crossAxisEnd > childCenter;\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0].descriptor.id;\n }\n\n return getFurthestAway({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n candidates: candidates\n });\n}\n\nvar offsetRectByPosition = function offsetRectByPosition(rect, point) {\n return getRect(offsetByPosition(rect, point));\n};\n\nvar withDroppableScroll = (function (droppable, area) {\n var frame = droppable.frame;\n\n if (!frame) {\n return area;\n }\n\n return offsetRectByPosition(area, frame.scroll.diff.value);\n});\n\nfunction getIsDisplaced(_ref) {\n var displaced = _ref.displaced,\n id = _ref.id;\n return Boolean(displaced.visible[id] || displaced.invisible[id]);\n}\n\nfunction atIndex(_ref) {\n var draggable = _ref.draggable,\n closest = _ref.closest,\n inHomeList = _ref.inHomeList;\n\n if (!closest) {\n return null;\n }\n\n if (!inHomeList) {\n return closest.descriptor.index;\n }\n\n if (closest.descriptor.index > draggable.descriptor.index) {\n return closest.descriptor.index - 1;\n }\n\n return closest.descriptor.index;\n}\n\nvar getReorderImpact = (function (_ref2) {\n var targetRect = _ref2.pageBorderBoxWithDroppableScroll,\n draggable = _ref2.draggable,\n destination = _ref2.destination,\n insideDestination = _ref2.insideDestination,\n last = _ref2.last,\n viewport = _ref2.viewport,\n afterCritical = _ref2.afterCritical;\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var closest = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childCenter = child.page.borderBox.center[axis.line];\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: last,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd <= childCenter;\n }\n\n return targetStart < childCenter - displacement;\n }\n\n if (isDisplaced) {\n return targetEnd <= childCenter + displacement;\n }\n\n return targetStart < childCenter;\n });\n var newIndex = atIndex({\n draggable: draggable,\n closest: closest,\n inHomeList: isHomeOf(draggable, destination)\n });\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: last,\n displacedBy: displacedBy,\n index: newIndex\n });\n});\n\nvar combineThresholdDivisor = 4;\nvar getCombineImpact = (function (_ref) {\n var draggable = _ref.draggable,\n targetRect = _ref.pageBorderBoxWithDroppableScroll,\n previousImpact = _ref.previousImpact,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var combineWith = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childRect = child.page.borderBox;\n var childSize = childRect[axis.size];\n var threshold = childSize / combineThresholdDivisor;\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: previousImpact.displaced,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold;\n }\n\n return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold;\n }\n\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold;\n }\n\n return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold;\n });\n\n if (!combineWith) {\n return null;\n }\n\n var impact = {\n displacedBy: displacedBy,\n displaced: previousImpact.displaced,\n at: {\n type: 'COMBINE',\n combine: {\n draggableId: combineWith.descriptor.id,\n droppableId: destination.descriptor.id\n }\n }\n };\n return impact;\n});\n\nvar getDragImpact = (function (_ref) {\n var pageOffset = _ref.pageOffset,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset);\n var destinationId = getDroppableOver$1({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n droppables: droppables\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox);\n return getCombineImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n previousImpact: previousImpact,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n }) || getReorderImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n last: previousImpact.displaced,\n viewport: viewport,\n afterCritical: afterCritical\n });\n});\n\nvar patchDroppableMap = (function (droppables, updated) {\n var _extends2;\n\n return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2));\n});\n\nvar clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) {\n var previousImpact = _ref.previousImpact,\n impact = _ref.impact,\n droppables = _ref.droppables;\n var last = whatIsDraggedOver(previousImpact);\n var now = whatIsDraggedOver(impact);\n\n if (!last) {\n return droppables;\n }\n\n if (last === now) {\n return droppables;\n }\n\n var lastDroppable = droppables[last];\n\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n\n var updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\n\nvar recomputePlaceholders = (function (_ref2) {\n var draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousImpact = _ref2.previousImpact,\n impact = _ref2.impact;\n var cleaned = clearUnusedPlaceholder({\n previousImpact: previousImpact,\n impact: impact,\n droppables: droppables\n });\n var isOver = whatIsDraggedOver(impact);\n\n if (!isOver) {\n return cleaned;\n }\n\n var droppable = droppables[isOver];\n\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n\n var patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n});\n\nvar update = (function (_ref) {\n var state = _ref.state,\n forcedClientSelection = _ref.clientSelection,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport,\n forcedImpact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var clientSelection = forcedClientSelection || state.current.client.selection;\n var offset = subtract(clientSelection, state.initial.client.selection);\n var client = {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n var page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current),\n offset: add(client.offset, viewport.scroll.diff.value)\n };\n var current = {\n client: client,\n page: page\n };\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n dimensions: dimensions,\n viewport: viewport,\n current: current\n });\n }\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var newImpact = forcedImpact || getDragImpact({\n pageOffset: page.offset,\n draggable: draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n var withUpdatedPlaceholders = recomputePlaceholders({\n draggable: draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n\n var result = _extends({}, state, {\n current: current,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport: viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n });\n\n return result;\n});\n\nfunction getDraggables$1(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nvar recompute = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n draggables = _ref.draggables,\n destination = _ref.destination,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var last = impact.displaced;\n var afterDragging = getDraggables$1(last.all, draggables);\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate,\n last: last\n });\n return _extends({}, impact, {\n displaced: displaced\n });\n});\n\nvar getClientBorderBoxCenter = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n});\n\nvar refreshSnap = (function (_ref) {\n var state = _ref.state,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var needsVisibilityCheck = state.impact;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var draggable = draggables[state.critical.draggable.id];\n var isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n var destination = droppables[isOver];\n var impact = recompute({\n impact: needsVisibilityCheck,\n viewport: viewport,\n destination: destination,\n draggables: draggables\n });\n var clientSelection = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n return update({\n impact: impact,\n clientSelection: clientSelection,\n state: state,\n dimensions: dimensions,\n viewport: viewport\n });\n});\n\nvar getHomeLocation = (function (descriptor) {\n return {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n };\n});\n\nvar getLiftEffect = (function (_ref) {\n var draggable = _ref.draggable,\n home = _ref.home,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n var rawIndex = insideHome.indexOf(draggable);\n !(rawIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0;\n var afterDragging = insideHome.slice(rawIndex + 1);\n var effected = afterDragging.reduce(function (previous, item) {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n var afterCritical = {\n inVirtualList: home.descriptor.mode === 'virtual',\n displacedBy: displacedBy,\n effected: effected\n };\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: home,\n displacedBy: displacedBy,\n last: null,\n viewport: viewport.frame,\n forceShouldAnimate: false\n });\n var impact = {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: getHomeLocation(draggable.descriptor)\n }\n };\n return {\n impact: impact,\n afterCritical: afterCritical\n };\n});\n\nvar patchDimensionMap = (function (dimensions, updated) {\n return {\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n };\n});\n\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar offsetDraggable = (function (_ref) {\n var draggable = _ref.draggable,\n offset$1 = _ref.offset,\n initialWindowScroll = _ref.initialWindowScroll;\n var client = offset(draggable.client, offset$1);\n var page = withScroll(client, initialWindowScroll);\n\n var moved = _extends({}, draggable, {\n placeholder: _extends({}, draggable.placeholder, {\n client: client\n }),\n client: client,\n page: page\n });\n\n return moved;\n});\n\nvar getFrame = (function (droppable) {\n var frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n});\n\nvar adjustAdditionsForScrollChanges = (function (_ref) {\n var additions = _ref.additions,\n updatedDroppables = _ref.updatedDroppables,\n viewport = _ref.viewport;\n var windowScrollChange = viewport.scroll.diff.value;\n return additions.map(function (draggable) {\n var droppableId = draggable.descriptor.droppableId;\n var modified = updatedDroppables[droppableId];\n var frame = getFrame(modified);\n var droppableScrollChange = frame.scroll.diff.value;\n var totalChange = add(windowScrollChange, droppableScrollChange);\n var moved = offsetDraggable({\n draggable: draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n});\n\nvar publishWhileDraggingInVirtual = (function (_ref) {\n var state = _ref.state,\n published = _ref.published;\n start();\n var withScrollChange = published.modified.map(function (update) {\n var existing = state.dimensions.droppables[update.droppableId];\n var scrolled = scrollDroppable(existing, update.scroll);\n return scrolled;\n });\n\n var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange));\n\n var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({\n additions: published.additions,\n updatedDroppables: droppables,\n viewport: state.viewport\n }));\n\n var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions);\n\n published.removals.forEach(function (id) {\n delete draggables[id];\n });\n var dimensions = {\n droppables: droppables,\n draggables: draggables\n };\n var wasOverId = whatIsDraggedOver(state.impact);\n var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var home = dimensions.droppables[state.critical.droppable.id];\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: draggables,\n viewport: state.viewport\n }),\n onLiftImpact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact;\n var impact = getDragImpact({\n pageOffset: state.current.page.offset,\n draggable: dimensions.draggables[state.critical.draggable.id],\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: previousImpact,\n viewport: state.viewport,\n afterCritical: afterCritical\n });\n finish();\n\n var draggingState = _extends({\n phase: 'DRAGGING'\n }, state, {\n phase: 'DRAGGING',\n impact: impact,\n onLiftImpact: onLiftImpact,\n dimensions: dimensions,\n afterCritical: afterCritical,\n forceShouldAnimate: false\n });\n\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n\n var dropPending = _extends({\n phase: 'DROP_PENDING'\n }, draggingState, {\n phase: 'DROP_PENDING',\n reason: state.reason,\n isWaiting: false\n });\n\n return dropPending;\n});\n\nvar isSnapping = function isSnapping(state) {\n return state.movementMode === 'SNAP';\n};\n\nvar postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) {\n var dimensions = patchDimensionMap(state.dimensions, updated);\n\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state: state,\n dimensions: dimensions\n });\n }\n\n return refreshSnap({\n state: state,\n dimensions: dimensions\n });\n};\n\nfunction removeScrollJumpRequest(state) {\n if (state.isDragging && state.movementMode === 'SNAP') {\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n scrollJumpRequest: null\n });\n }\n\n return state;\n}\n\nvar idle = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\nvar reducer = (function (state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'FLUSH') {\n return _extends({}, idle, {\n shouldFlush: true\n });\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n clientSelection = _action$payload.clientSelection,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n movementMode = _action$payload.movementMode;\n var draggable = dimensions.draggables[critical.draggable.id];\n var home = dimensions.droppables[critical.droppable.id];\n var client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: add(client.selection, viewport.scroll.diff.value)\n }\n };\n var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) {\n return !item.isFixedOnPage;\n });\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: dimensions.draggables,\n viewport: viewport\n }),\n impact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n movementMode: movementMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n isWindowScrollAllowed: isWindowScrollAllowed,\n impact: impact,\n afterCritical: afterCritical,\n onLiftImpact: impact,\n viewport: viewport,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, {\n phase: 'COLLECTING'\n });\n\n return _result;\n }\n\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n return publishWhileDraggingInVirtual({\n state: state,\n published: action.payload\n });\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _clientSelection = action.payload.client;\n\n if (isEqual(_clientSelection, state.current.client.selection)) {\n return state;\n }\n\n return update({\n state: state,\n clientSelection: _clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return removeScrollJumpRequest(state);\n }\n\n if (state.phase === 'COLLECTING') {\n return removeScrollJumpRequest(state);\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n id = _action$payload2.id,\n newScroll = _action$payload2.newScroll;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var scrolled = scrollDroppable(target, newScroll);\n return postDroppableChange(state, scrolled, false);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n _id = _action$payload3.id,\n isEnabled = _action$payload3.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n return postDroppableChange(state, updated, true);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id2 = _action$payload4.id,\n isCombineEnabled = _action$payload4.isCombineEnabled;\n var _target2 = state.dimensions.droppables[_id2];\n !_target2 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id2 + \"] to toggle its isCombineEnabled state\") : invariant(false) : void 0;\n !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isCombineEnabled to \" + String(isCombineEnabled) + \"\\n but it is already \" + String(_target2.isCombineEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target2, {\n isCombineEnabled: isCombineEnabled\n });\n\n return postDroppableChange(state, _updated, true);\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0;\n var _newScroll = action.payload.newScroll;\n\n if (isEqual(state.viewport.scroll.current, _newScroll)) {\n return removeScrollJumpRequest(state);\n }\n\n var _viewport = scrollViewport(state.viewport, _newScroll);\n\n if (isSnapping(state)) {\n return refreshSnap({\n state: state,\n viewport: _viewport\n });\n }\n\n return update({\n state: state,\n viewport: _viewport\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n\n var maxScroll = action.payload.maxScroll;\n\n if (isEqual(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n\n var withMaxScroll = _extends({}, state.viewport, {\n scroll: _extends({}, state.viewport.scroll, {\n max: maxScroll\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n viewport: withMaxScroll\n });\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return update({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, {\n phase: 'DROP_PENDING',\n isWaiting: true,\n reason: reason\n });\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var _action$payload5 = action.payload,\n completed = _action$payload5.completed,\n dropDuration = _action$payload5.dropDuration,\n newHomeClientOffset = _action$payload5.newHomeClientOffset;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n completed: completed,\n dropDuration: dropDuration,\n newHomeClientOffset: newHomeClientOffset,\n dimensions: state.dimensions\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var _completed = action.payload.completed;\n return {\n phase: 'IDLE',\n completed: _completed,\n shouldFlush: false\n };\n }\n\n return state;\n});\n\nvar beforeInitialCapture = function beforeInitialCapture(args) {\n return {\n type: 'BEFORE_INITIAL_CAPTURE',\n payload: args\n };\n};\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\nvar publishWhileDragging = function publishWhileDragging(args) {\n return {\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n };\n};\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\nvar updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n };\n};\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\nvar updateViewportMaxScroll = function updateViewportMaxScroll(args) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n };\n};\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\nvar flush = function flush() {\n return {\n type: 'FLUSH',\n payload: null\n };\n};\nvar animateDrop = function animateDrop(args) {\n return {\n type: 'DROP_ANIMATE',\n payload: args\n };\n};\nvar completeDrop = function completeDrop(args) {\n return {\n type: 'DROP_COMPLETE',\n payload: args\n };\n};\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nfunction checkIndexes(insideDestination) {\n if (insideDestination.length <= 1) {\n return;\n }\n\n var indexes = insideDestination.map(function (d) {\n return d.descriptor.index;\n });\n var errors = {};\n\n for (var i = 1; i < indexes.length; i++) {\n var current = indexes[i];\n var previous = indexes[i - 1];\n\n if (current !== previous + 1) {\n errors[current] = true;\n }\n }\n\n if (!Object.keys(errors).length) {\n return;\n }\n\n var formatted = indexes.map(function (index) {\n var hasError = Boolean(errors[index]);\n return hasError ? \"[\\uD83D\\uDD25\" + index + \"]\" : \"\" + index;\n }).join(', ');\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected non-consecutive <Draggable /> indexes.\\n\\n (This can cause unexpected bugs)\\n\\n \" + formatted + \"\\n \") : void 0;\n}\n\nfunction validateDimensions(critical, dimensions) {\n if (process.env.NODE_ENV !== 'production') {\n var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables);\n checkIndexes(insideDestination);\n }\n}\n\nvar lift$1 = (function (marshal) {\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n var _action$payload = action.payload,\n id = _action$payload.id,\n clientSelection = _action$payload.clientSelection,\n movementMode = _action$payload.movementMode;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed\n }));\n }\n\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0;\n dispatch(flush());\n dispatch(beforeInitialCapture({\n draggableId: id,\n movementMode: movementMode\n }));\n var scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions,\n viewport = _marshal$startPublish.viewport;\n\n validateDimensions(critical, dimensions);\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n clientSelection: clientSelection,\n movementMode: movementMode,\n viewport: viewport\n }));\n };\n };\n };\n});\n\nvar style = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nvar combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nvar timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nvar outOfTheWayTiming = timings.outOfTheWay + \"s \" + curves.outOfTheWay;\nvar transitions = {\n fluid: \"opacity \" + outOfTheWayTiming,\n snap: \"transform \" + outOfTheWayTiming + \", opacity \" + outOfTheWayTiming,\n drop: function drop(duration) {\n var timing = duration + \"s \" + curves.drop;\n return \"transform \" + timing + \", opacity \" + timing;\n },\n outOfTheWay: \"transform \" + outOfTheWayTiming,\n placeholder: \"height \" + outOfTheWayTiming + \", width \" + outOfTheWayTiming + \", margin \" + outOfTheWayTiming\n};\n\nvar moveTo = function moveTo(offset) {\n return isEqual(offset, origin) ? null : \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar transforms = {\n moveTo: moveTo,\n drop: function drop(offset, isCombining) {\n var translate = moveTo(offset);\n\n if (!translate) {\n return null;\n }\n\n if (!isCombining) {\n return translate;\n }\n\n return translate + \" scale(\" + combine.scale.drop + \")\";\n }\n};\n\nvar minDropTime = timings.minDropTime,\n maxDropTime = timings.maxDropTime;\nvar dropTimeRange = maxDropTime - minDropTime;\nvar maxDropTimeAtDistance = 1500;\nvar cancelDropModifier = 0.6;\nvar getDropDuration = (function (_ref) {\n var current = _ref.current,\n destination = _ref.destination,\n reason = _ref.reason;\n var distance$1 = distance(current, destination);\n\n if (distance$1 <= 0) {\n return minDropTime;\n }\n\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n\n var percentage = distance$1 / maxDropTimeAtDistance;\n var duration = minDropTime + dropTimeRange * percentage;\n var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n});\n\nvar getNewHomeClientOffset = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n dimensions = _ref.dimensions,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var droppableId = whatIsDraggedOver(impact);\n var destination = droppableId ? droppables[droppableId] : null;\n var home = droppables[draggable.descriptor.droppableId];\n var newClientCenter = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n afterCritical: afterCritical,\n droppable: destination || home,\n viewport: viewport\n });\n var offset = subtract(newClientCenter, draggable.client.borderBox.center);\n return offset;\n});\n\nvar getDropImpact = (function (_ref) {\n var draggables = _ref.draggables,\n reason = _ref.reason,\n lastImpact = _ref.lastImpact,\n home = _ref.home,\n viewport = _ref.viewport,\n onLiftImpact = _ref.onLiftImpact;\n\n if (!lastImpact.at || reason !== 'DROP') {\n var recomputedHomeImpact = recompute({\n draggables: draggables,\n impact: onLiftImpact,\n destination: home,\n viewport: viewport,\n forceShouldAnimate: true\n });\n return {\n impact: recomputedHomeImpact,\n didDropInsideDroppable: false\n };\n }\n\n if (lastImpact.at.type === 'REORDER') {\n return {\n impact: lastImpact,\n didDropInsideDroppable: true\n };\n }\n\n var withoutMovement = _extends({}, lastImpact, {\n displaced: emptyGroups\n });\n\n return {\n impact: withoutMovement,\n didDropInsideDroppable: true\n };\n});\n\nvar drop$1 = (function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n\n var _getDropImpact = getDropImpact({\n reason: reason,\n lastImpact: state.impact,\n afterCritical: state.afterCritical,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n }),\n impact = _getDropImpact.impact,\n didDropInsideDroppable = _getDropImpact.didDropInsideDroppable;\n\n var destination = didDropInsideDroppable ? tryGetDestination(impact) : null;\n var combine = didDropInsideDroppable ? tryGetCombine(impact) : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source: source,\n reason: reason,\n mode: state.movementMode,\n destination: destination,\n combine: combine\n };\n var newHomeClientOffset = getNewHomeClientOffset({\n impact: impact,\n draggable: draggable,\n dimensions: dimensions,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n var completed = {\n critical: state.critical,\n afterCritical: state.afterCritical,\n result: result,\n impact: impact\n };\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed: completed\n }));\n return;\n }\n\n var dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason: reason\n });\n var args = {\n newHomeClientOffset: newHomeClientOffset,\n dropDuration: dropDuration,\n completed: completed\n };\n dispatch(animateDrop(args));\n };\n };\n});\n\nvar getWindowScroll = (function () {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n});\n\nfunction getWindowScrollBinding(update) {\n return {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn(event) {\n if (event.target !== window && event.target !== window.document) {\n return;\n }\n\n update();\n }\n };\n}\n\nfunction getScrollListener(_ref) {\n var onWindowScroll = _ref.onWindowScroll;\n\n function updateScroll() {\n onWindowScroll(getWindowScroll());\n }\n\n var scheduled = rafSchd(updateScroll);\n var binding = getWindowScrollBinding(scheduled);\n var unbind = noop;\n\n function isActive() {\n return unbind !== noop;\n }\n\n function start() {\n !!isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0;\n unbind = bindEvents(window, [binding]);\n }\n\n function stop() {\n !isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0;\n scheduled.cancel();\n unbind();\n unbind = noop;\n }\n\n return {\n start: start,\n stop: stop,\n isActive: isActive\n };\n}\n\nvar shouldEnd = function shouldEnd(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar scrollListener = (function (store) {\n var listener = getScrollListener({\n onWindowScroll: function onWindowScroll(newScroll) {\n store.dispatch(moveByWindowScroll({\n newScroll: newScroll\n }));\n }\n });\n return function (next) {\n return function (action) {\n if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') {\n listener.start();\n }\n\n if (listener.isActive() && shouldEnd(action)) {\n listener.stop();\n }\n\n next(action);\n };\n };\n});\n\nvar getExpiringAnnounce = (function (announce) {\n var wasCalled = false;\n var isExpired = false;\n var timeoutId = setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \") : void 0;\n return;\n }\n\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n});\n\nvar getAsyncMarshal = (function () {\n var entries = [];\n\n var execute = function execute(timerId) {\n var index = findIndex(entries, function (item) {\n return item.timerId === timerId;\n });\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n\n var _entries$splice = entries.splice(index, 1),\n entry = _entries$splice[0];\n\n entry.callback();\n };\n\n var add = function add(fn) {\n var timerId = setTimeout(function () {\n return execute(timerId);\n });\n var entry = {\n timerId: timerId,\n callback: fn\n };\n entries.push(entry);\n };\n\n var flush = function flush() {\n if (!entries.length) {\n return;\n }\n\n var shallow = [].concat(entries);\n entries.length = 0;\n shallow.forEach(function (entry) {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n\n return {\n add: add,\n flush: flush\n };\n});\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\nvar isCombineEqual = function isCombineEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar withTimings = function withTimings(key, fn) {\n start();\n fn();\n finish();\n};\n\nvar getDragStart = function getDragStart(critical, mode) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode: mode\n };\n};\n\nvar execute = function execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n responder(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n};\n\nvar getPublisher = (function (getResponders, announce) {\n var asyncMarshal = getAsyncMarshal();\n var dragging = null;\n\n var beforeCapture = function beforeCapture(draggableId, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeCapture', function () {\n var fn = getResponders().onBeforeCapture;\n\n if (fn) {\n var before = {\n draggableId: draggableId,\n mode: mode\n };\n fn(before);\n }\n });\n };\n\n var beforeStart = function beforeStart(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getResponders().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n\n var start = function start(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical, mode);\n dragging = {\n mode: mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(function () {\n withTimings('onDragStart', function () {\n return execute(getResponders().onDragStart, data, announce, preset.onDragStart);\n });\n });\n };\n\n var update = function update(critical, impact) {\n var location = tryGetDestination(impact);\n var combine = tryGetCombine(impact);\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n\n var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical, dragging.mode), {\n combine: combine,\n destination: location\n });\n\n asyncMarshal.add(function () {\n withTimings('onDragUpdate', function () {\n return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate);\n });\n });\n };\n\n var flush = function flush() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n\n var drop = function drop(result) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', function () {\n return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n if (!dragging) {\n return;\n }\n\n var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), {\n combine: null,\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeCapture: beforeCapture,\n beforeStart: beforeStart,\n start: start,\n update: update,\n flush: flush,\n drop: drop,\n abort: abort\n };\n});\n\nvar responders = (function (getResponders, announce) {\n var publisher = getPublisher(getResponders, announce);\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'BEFORE_INITIAL_CAPTURE') {\n publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n\n next(action);\n\n if (action.type === 'FLUSH') {\n publisher.abort();\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n };\n };\n});\n\nvar dropAnimationFinish = (function (store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed\n }));\n };\n };\n});\n\nvar dropAnimationFlushOnScroll = (function (store) {\n var unbind = null;\n var frameId = null;\n\n function clear() {\n if (frameId) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n if (unbind) {\n unbind();\n unbind = null;\n }\n }\n\n return function (next) {\n return function (action) {\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') {\n clear();\n }\n\n next(action);\n\n if (action.type !== 'DROP_ANIMATE') {\n return;\n }\n\n var binding = {\n eventName: 'scroll',\n options: {\n capture: true,\n passive: false,\n once: true\n },\n fn: function flushDropAnimation() {\n var state = store.getState();\n\n if (state.phase === 'DROP_ANIMATING') {\n store.dispatch(dropAnimationFinished());\n }\n }\n };\n frameId = requestAnimationFrame(function () {\n frameId = null;\n unbind = bindEvents(window, [binding]);\n });\n };\n };\n});\n\nvar dimensionMarshalStopper = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar focus = (function (marshal) {\n var isWatching = false;\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n isWatching = true;\n marshal.tryRecordFocus(action.payload.critical.draggable.id);\n next(action);\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n next(action);\n\n if (!isWatching) {\n return;\n }\n\n if (action.type === 'FLUSH') {\n isWatching = false;\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n isWatching = false;\n var result = action.payload.completed.result;\n\n if (result.combine) {\n marshal.tryShiftRecord(result.draggableId, result.combine.draggableId);\n }\n\n marshal.tryRestoreFocusRecorded();\n }\n };\n };\n };\n});\n\nvar shouldStop = function shouldStop(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar autoScroll = (function (autoScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldStop(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n var state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n\n next(action);\n autoScroller.scroll(store.getState());\n };\n };\n };\n});\n\nvar pendingDrop = (function (store) {\n return function (next) {\n return function (action) {\n next(action);\n\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n\n var postActionState = store.getState();\n\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n\n if (postActionState.isWaiting) {\n return;\n }\n\n store.dispatch(drop({\n reason: postActionState.reason\n }));\n };\n };\n});\n\nvar composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\nvar createStore = (function (_ref) {\n var dimensionMarshal = _ref.dimensionMarshal,\n focusMarshal = _ref.focusMarshal,\n styleMarshal = _ref.styleMarshal,\n getResponders = _ref.getResponders,\n announce = _ref.announce,\n autoScroller = _ref.autoScroller;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce))));\n});\n\nvar clean$1 = function clean() {\n return {\n additions: {},\n removals: {},\n modified: {}\n };\n};\nfunction createPublisher(_ref) {\n var registry = _ref.registry,\n callbacks = _ref.callbacks;\n var staging = clean$1();\n var frameId = null;\n\n var collect = function collect() {\n if (frameId) {\n return;\n }\n\n callbacks.collectionStarting();\n frameId = requestAnimationFrame(function () {\n frameId = null;\n start();\n var _staging = staging,\n additions = _staging.additions,\n removals = _staging.removals,\n modified = _staging.modified;\n var added = Object.keys(additions).map(function (id) {\n return registry.draggable.getById(id).getDimension(origin);\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n var updated = Object.keys(modified).map(function (id) {\n var entry = registry.droppable.getById(id);\n var scroll = entry.callbacks.getScrollWhileDragging();\n return {\n droppableId: id,\n scroll: scroll\n };\n });\n var result = {\n additions: added,\n removals: Object.keys(removals),\n modified: updated\n };\n staging = clean$1();\n finish();\n callbacks.publish(result);\n });\n };\n\n var add = function add(entry) {\n var id = entry.descriptor.id;\n staging.additions[id] = entry;\n staging.modified[entry.descriptor.droppableId] = true;\n\n if (staging.removals[id]) {\n delete staging.removals[id];\n }\n\n collect();\n };\n\n var remove = function remove(entry) {\n var descriptor = entry.descriptor;\n staging.removals[descriptor.id] = true;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$1();\n };\n\n return {\n add: add,\n remove: remove,\n stop: stop\n };\n}\n\nvar getMaxScroll = (function (_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n});\n\nvar getDocumentElement = (function () {\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n});\n\nvar getMaxWindowScroll = (function () {\n var doc = getDocumentElement();\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n});\n\nvar getViewport = (function () {\n var scroll = getWindowScroll();\n var maxScroll = getMaxWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = getDocumentElement();\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n});\n\nvar getInitialPublish = (function (_ref) {\n var critical = _ref.critical,\n scrollOptions = _ref.scrollOptions,\n registry = _ref.registry;\n start();\n var viewport = getViewport();\n var windowScroll = viewport.scroll.current;\n var home = critical.droppable;\n var droppables = registry.droppable.getAllByType(home.type).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n });\n var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) {\n return entry.getDimension(windowScroll);\n });\n var dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish();\n var result = {\n dimensions: dimensions,\n critical: critical,\n viewport: viewport\n };\n return result;\n});\n\nfunction shouldPublishUpdate(registry, dragging, entry) {\n if (entry.descriptor.id === dragging.id) {\n return false;\n }\n\n if (entry.descriptor.type !== dragging.type) {\n return false;\n }\n\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n\n if (home.descriptor.mode !== 'virtual') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n You are attempting to add or remove a Draggable [id: \" + entry.descriptor.id + \"]\\n while a drag is occurring. This is only supported for virtual lists.\\n\\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\\n \") : void 0;\n return false;\n }\n\n return true;\n}\n\nvar createDimensionMarshal = (function (registry, callbacks) {\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting\n },\n registry: registry\n });\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update is enabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update isCombineEnabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableIsCombineEnabled({\n id: id,\n isCombineEnabled: isCombineEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableScroll({\n id: id,\n newScroll: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n if (!collection) {\n return;\n }\n\n registry.droppable.getById(id).callbacks.scroll(change);\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n registry.droppable.getAllByType(home.type).forEach(function (entry) {\n return entry.callbacks.dragStopped();\n });\n collection.unsubscribe();\n collection = null;\n };\n\n var subscriber = function subscriber(event) {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0;\n var dragging = collection.critical.draggable;\n\n if (event.type === 'ADDITION') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.add(event.value);\n }\n }\n\n if (event.type === 'REMOVAL') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.remove(event.value);\n }\n }\n };\n\n var startPublishing = function startPublishing(request) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = registry.draggable.getById(request.draggableId);\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n var unsubscribe = registry.subscribe(subscriber);\n collection = {\n critical: critical,\n unsubscribe: unsubscribe\n };\n return getInitialPublish({\n critical: critical,\n registry: registry,\n scrollOptions: request.scrollOptions\n });\n };\n\n var marshal = {\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n});\n\nvar canStartDrag = (function (state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.completed.result.draggableId === id) {\n return false;\n }\n\n return state.completed.result.reason === 'DROP';\n});\n\nvar scrollWindow = (function (change) {\n window.scrollBy(change.x, change.y);\n});\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.frame) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = find(getScrollableDroppables(droppables), function (droppable) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = (function (_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination];\n\n if (!_dimension.frame) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n});\n\nvar config = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n },\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n }\n};\n\nvar getDistanceThresholds = (function (container, axis) {\n var startScrollingFrom = container[axis.size] * config.startFromPercentage;\n var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage;\n var thresholds = {\n startScrollingFrom: startScrollingFrom,\n maxScrollValueAt: maxScrollValueAt\n };\n return thresholds;\n});\n\nvar getPercentage = (function (_ref) {\n var startOfRange = _ref.startOfRange,\n endOfRange = _ref.endOfRange,\n current = _ref.current;\n var range = endOfRange - startOfRange;\n\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected distance range of 0 in the fluid auto scroller\\n This is unexpected and would cause a divide by 0 issue.\\n Not allowing an auto scroll\\n \") : void 0;\n return 0;\n }\n\n var currentInRange = current - startOfRange;\n var percentage = currentInRange / range;\n return percentage;\n});\n\nvar minScroll = 1;\n\nvar getValueFromDistance = (function (distanceToEdge, thresholds) {\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return config.maxPixelScroll;\n }\n\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n\n var percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n});\n\nvar accelerateAt = config.durationDampening.accelerateAt;\nvar stopAt = config.durationDampening.stopDampeningAt;\nvar dampenValueByTime = (function (proposedScroll, dragStartTime) {\n var startOfRange = dragStartTime;\n var endOfRange = stopAt;\n var now = Date.now();\n var runTime = now - startOfRange;\n\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n\n if (runTime < accelerateAt) {\n return minScroll;\n }\n\n var betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange: endOfRange,\n current: runTime\n });\n var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n});\n\nvar getValue = (function (_ref) {\n var distanceToEdge = _ref.distanceToEdge,\n thresholds = _ref.thresholds,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getValueFromDistance(distanceToEdge, thresholds);\n\n if (scroll === 0) {\n return 0;\n }\n\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n\n return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll);\n});\n\nvar getScrollOnAxis = (function (_ref) {\n var container = _ref.container,\n distanceToEdges = _ref.distanceToEdges,\n dragStartTime = _ref.dragStartTime,\n axis = _ref.axis,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var thresholds = getDistanceThresholds(container, axis);\n var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n }\n\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n});\n\nvar adjustForSizeLimits = (function (_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n});\n\nvar clean$2 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\nvar getScroll = (function (_ref) {\n var dragStartTime = _ref.dragStartTime,\n container = _ref.container,\n subject = _ref.subject,\n center = _ref.center,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n var y = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: vertical,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var x = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var required = clean$2({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n});\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return false;\n }\n\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getWindowScrollChange = (function (_ref) {\n var viewport = _ref.viewport,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: viewport.frame,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n});\n\nvar getDroppableScrollChange = (function (_ref) {\n var droppable = _ref.droppable,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: frame.pageMarginBox,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n});\n\nvar scroll$1 = (function (_ref) {\n var state = _ref.state,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening,\n scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n\n if (state.isWindowScrollAllowed) {\n var viewport = state.viewport;\n\n var _change = getWindowScrollChange({\n dragStartTime: dragStartTime,\n viewport: viewport,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (_change) {\n scrollWindow(_change);\n return;\n }\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var change = getDroppableScrollChange({\n dragStartTime: dragStartTime,\n droppable: droppable,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n});\n\nvar createFluidScroller = (function (_ref) {\n var scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n var dragging = null;\n\n var tryScroll = function tryScroll(state) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n var _dragging = dragging,\n shouldUseTimeDampening = _dragging.shouldUseTimeDampening,\n dragStartTime = _dragging.dragStartTime;\n scroll$1({\n state: state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n };\n\n var start$1 = function start$1(state) {\n start();\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n var dragStartTime = Date.now();\n var wasScrollNeeded = false;\n\n var fakeScrollCallback = function fakeScrollCallback() {\n wasScrollNeeded = true;\n };\n\n scroll$1({\n state: state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback\n });\n dragging = {\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish();\n\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n\n var stop = function stop() {\n if (!dragging) {\n return;\n }\n\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n dragging = null;\n };\n\n return {\n start: start$1,\n stop: stop,\n scroll: tryScroll\n };\n});\n\nvar createJumpScroller = (function (_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) {\n if (!isWindowScrollAllowed) {\n return change;\n }\n\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n});\n\nvar createAutoScroller = (function (_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroller = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n\n var scroll = function scroll(state) {\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n jumpScroll(state);\n };\n\n var scroller = {\n scroll: scroll,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n});\n\nvar prefix$1 = 'data-rbd';\nvar dragHandle = function () {\n var base = prefix$1 + \"-drag-handle\";\n return {\n base: base,\n draggableId: base + \"-draggable-id\",\n contextId: base + \"-context-id\"\n };\n}();\nvar draggable = function () {\n var base = prefix$1 + \"-draggable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar droppable = function () {\n var base = prefix$1 + \"-droppable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar scrollContainer = {\n contextId: prefix$1 + \"-scroll-container-context-id\"\n};\n\nvar makeGetSelector = function makeGetSelector(context) {\n return function (attribute) {\n return \"[\" + attribute + \"=\\\"\" + context + \"\\\"]\";\n };\n};\n\nvar getStyles = function getStyles(rules, property) {\n return rules.map(function (rule) {\n var value = rule.styles[property];\n\n if (!value) {\n return '';\n }\n\n return rule.selector + \" { \" + value + \" }\";\n }).join(' ');\n};\n\nvar noPointerEvents = 'pointer-events: none;';\nvar getStyles$1 = (function (contextId) {\n var getSelector = makeGetSelector(contextId);\n\n var dragHandle$1 = function () {\n var grabCursor = \"\\n cursor: -webkit-grab;\\n cursor: grab;\\n \";\n return {\n selector: getSelector(dragHandle.contextId),\n styles: {\n always: \"\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n \",\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n }();\n\n var draggable$1 = function () {\n var transition = \"\\n transition: \" + transitions.outOfTheWay + \";\\n \";\n return {\n selector: getSelector(draggable.contextId),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n }();\n\n var droppable$1 = {\n selector: getSelector(droppable.contextId),\n styles: {\n always: \"overflow-anchor: none;\"\n }\n };\n var body = {\n selector: 'body',\n styles: {\n dragging: \"\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n overflow-anchor: none;\\n \"\n }\n };\n var rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n});\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleEl = function createStyleEl(nonce) {\n var el = document.createElement('style');\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n el.type = 'text/css';\n return el;\n};\n\nfunction useStyleMarshal(contextId, nonce) {\n var styles = useMemo(function () {\n return getStyles$1(contextId);\n }, [contextId]);\n var alwaysRef = useRef(null);\n var dynamicRef = useRef(null);\n var setDynamicStyle = useCallback(memoizeOne(function (proposed) {\n var el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n var setAlwaysStyle = useCallback(function (proposed) {\n var el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useIsomorphicLayoutEffect(function () {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n var always = createStyleEl(nonce);\n var dynamic = createStyleEl(nonce);\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(prefix$1 + \"-always\", contextId);\n dynamic.setAttribute(prefix$1 + \"-dynamic\", contextId);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return function () {\n var remove = function remove(ref) {\n var current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]);\n var dragging = useCallback(function () {\n return setDynamicStyle(styles.dragging);\n }, [setDynamicStyle, styles.dragging]);\n var dropping = useCallback(function (reason) {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n var resting = useCallback(function () {\n if (!dynamicRef.current) {\n return;\n }\n\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n var marshal = useMemo(function () {\n return {\n dragging: dragging,\n dropping: dropping,\n resting: resting\n };\n }, [dragging, dropping, resting]);\n return marshal;\n}\n\nvar getWindowFromEl = (function (el) {\n return el && el.ownerDocument ? el.ownerDocument.defaultView : window;\n});\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction findDragHandle(contextId, draggableId) {\n var selector = \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n\n if (!possible.length) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find any drag handles in the context \\\"\" + contextId + \"\\\"\") : void 0;\n return null;\n }\n\n var handle = find(possible, function (el) {\n return el.getAttribute(dragHandle.draggableId) === draggableId;\n });\n\n if (!handle) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find drag handle with id \\\"\" + draggableId + \"\\\" as no handle with a matching id was found\") : void 0;\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle needs to be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction useFocusMarshal(contextId) {\n var entriesRef = useRef({});\n var recordRef = useRef(null);\n var restoreFocusFrameRef = useRef(null);\n var isMountedRef = useRef(false);\n var register = useCallback(function register(id, focus) {\n var entry = {\n id: id,\n focus: focus\n };\n entriesRef.current[id] = entry;\n return function unregister() {\n var entries = entriesRef.current;\n var current = entries[id];\n\n if (current !== entry) {\n delete entries[id];\n }\n };\n }, []);\n var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) {\n var handle = findDragHandle(contextId, tryGiveFocusTo);\n\n if (handle && handle !== document.activeElement) {\n handle.focus();\n }\n }, [contextId]);\n var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) {\n if (recordRef.current === previous) {\n recordRef.current = redirectTo;\n }\n }, []);\n var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() {\n if (restoreFocusFrameRef.current) {\n return;\n }\n\n if (!isMountedRef.current) {\n return;\n }\n\n restoreFocusFrameRef.current = requestAnimationFrame(function () {\n restoreFocusFrameRef.current = null;\n var record = recordRef.current;\n\n if (record) {\n tryGiveFocus(record);\n }\n });\n }, [tryGiveFocus]);\n var tryRecordFocus = useCallback(function tryRecordFocus(id) {\n recordRef.current = null;\n var focused = document.activeElement;\n\n if (!focused) {\n return;\n }\n\n if (focused.getAttribute(dragHandle.draggableId) !== id) {\n return;\n }\n\n recordRef.current = id;\n }, []);\n useIsomorphicLayoutEffect(function () {\n isMountedRef.current = true;\n return function clearFrameOnUnmount() {\n isMountedRef.current = false;\n var frameId = restoreFocusFrameRef.current;\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n };\n }, []);\n var marshal = useMemo(function () {\n return {\n register: register,\n tryRecordFocus: tryRecordFocus,\n tryRestoreFocusRecorded: tryRestoreFocusRecorded,\n tryShiftRecord: tryShiftRecord\n };\n }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]);\n return marshal;\n}\n\nfunction createRegistry() {\n var entries = {\n draggables: {},\n droppables: {}\n };\n var subscribers = [];\n\n function subscribe(cb) {\n subscribers.push(cb);\n return function unsubscribe() {\n var index = subscribers.indexOf(cb);\n\n if (index === -1) {\n return;\n }\n\n subscribers.splice(index, 1);\n };\n }\n\n function notify(event) {\n if (subscribers.length) {\n subscribers.forEach(function (cb) {\n return cb(event);\n });\n }\n }\n\n function findDraggableById(id) {\n return entries.draggables[id] || null;\n }\n\n function getDraggableById(id) {\n var entry = findDraggableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find draggable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var draggableAPI = {\n register: function register(entry) {\n entries.draggables[entry.descriptor.id] = entry;\n notify({\n type: 'ADDITION',\n value: entry\n });\n },\n update: function update(entry, last) {\n var current = entries.draggables[last.descriptor.id];\n\n if (!current) {\n return;\n }\n\n if (current.uniqueId !== entry.uniqueId) {\n return;\n }\n\n delete entries.draggables[last.descriptor.id];\n entries.draggables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var draggableId = entry.descriptor.id;\n var current = findDraggableById(draggableId);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.draggables[draggableId];\n notify({\n type: 'REMOVAL',\n value: entry\n });\n },\n getById: getDraggableById,\n findById: findDraggableById,\n exists: function exists(id) {\n return Boolean(findDraggableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.draggables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function findDroppableById(id) {\n return entries.droppables[id] || null;\n }\n\n function getDroppableById(id) {\n var entry = findDroppableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find droppable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var droppableAPI = {\n register: function register(entry) {\n entries.droppables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var current = findDroppableById(entry.descriptor.id);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.droppables[entry.descriptor.id];\n },\n getById: getDroppableById,\n findById: findDroppableById,\n exists: function exists(id) {\n return Boolean(findDroppableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function clean() {\n entries.draggables = {};\n entries.droppables = {};\n subscribers.length = 0;\n }\n\n return {\n draggable: draggableAPI,\n droppable: droppableAPI,\n subscribe: subscribe,\n clean: clean\n };\n}\n\nfunction useRegistry() {\n var registry = useMemo(createRegistry, []);\n useEffect(function () {\n return function unmount() {\n requestAnimationFrame(registry.clean);\n };\n }, [registry]);\n return registry;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = (function () {\n var body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n});\n\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\n\nvar getId = function getId(contextId) {\n return \"rbd-announcement-\" + contextId;\n};\nfunction useAnnouncer(contextId) {\n var id = useMemo(function () {\n return getId(contextId);\n }, [contextId]);\n var ref = useRef(null);\n useEffect(function setup() {\n var el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('aria-atomic', 'true');\n\n _extends(el.style, visuallyHidden);\n\n getBodyElement().appendChild(el);\n return function cleanup() {\n setTimeout(function remove() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n\n if (el === ref.current) {\n ref.current = null;\n }\n });\n };\n }, [id]);\n var announce = useCallback(function (message) {\n var el = ref.current;\n\n if (el) {\n el.textContent = message;\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n A screen reader message was trying to be announced but it was unable to do so.\\n This can occur if you unmount your <DragDropContext /> in your onDragEnd.\\n Consider calling provided.announce() before the unmount so that the instruction will\\n not be lost for users relying on a screen reader.\\n\\n Message not passed to screen reader:\\n\\n \\\"\" + message + \"\\\"\\n \") : void 0;\n }, []);\n return announce;\n}\n\nvar count = 0;\nvar defaults = {\n separator: '::'\n};\nfunction reset() {\n count = 0;\n}\nfunction useUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n\n return useMemo(function () {\n return \"\" + prefix + options.separator + count++;\n }, [options.separator, prefix]);\n}\n\nfunction getElementId(_ref) {\n var contextId = _ref.contextId,\n uniqueId = _ref.uniqueId;\n return \"rbd-hidden-text-\" + contextId + \"-\" + uniqueId;\n}\nfunction useHiddenTextElement(_ref2) {\n var contextId = _ref2.contextId,\n text = _ref2.text;\n var uniqueId = useUniqueId('hidden-text', {\n separator: '-'\n });\n var id = useMemo(function () {\n return getElementId({\n contextId: contextId,\n uniqueId: uniqueId\n });\n }, [uniqueId, contextId]);\n useEffect(function mount() {\n var el = document.createElement('div');\n el.id = id;\n el.textContent = text;\n el.style.display = 'none';\n getBodyElement().appendChild(el);\n return function unmount() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n };\n }, [id, text]);\n return id;\n}\n\nvar AppContext = React.createContext(null);\n\nvar peerDependencies = {\n\treact: \"^16.8.5\",\n\t\"react-dom\": \"^16.8.5\"\n};\n\nvar semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\n\nvar getVersion = function getVersion(value) {\n var result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unable to parse React version \" + value) : invariant(false) : void 0;\n var major = Number(result[1]);\n var minor = Number(result[2]);\n var patch = Number(result[3]);\n return {\n major: major,\n minor: minor,\n patch: patch,\n raw: value\n };\n};\n\nvar isSatisfied = function isSatisfied(expected, actual) {\n if (actual.major > expected.major) {\n return true;\n }\n\n if (actual.major < expected.major) {\n return false;\n }\n\n if (actual.minor > expected.minor) {\n return true;\n }\n\n if (actual.minor < expected.minor) {\n return false;\n }\n\n return actual.patch >= expected.patch;\n};\n\nvar checkReactVersion = (function (peerDepValue, actualValue) {\n var peerDep = getVersion(peerDepValue);\n var actual = getVersion(actualValue);\n\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n React version: [\" + actual.raw + \"]\\n does not satisfy expected peer dependency version: [\" + peerDep.raw + \"]\\n\\n This can result in run time bugs, and even fatal crashes\\n \") : void 0;\n});\n\nvar suffix = \"\\n We expect a html5 doctype: <!doctype html>\\n This is to ensure consistent browser layout and measurement\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\\n\";\nvar checkDoctype = (function (doc) {\n var doctype = doc.doctype;\n\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n No <!doctype html> found.\\n\\n \" + suffix + \"\\n \") : void 0;\n return;\n }\n\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected <!doctype> found: (\" + doctype.name + \")\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected <!doctype> publicId found: (\" + doctype.publicId + \")\\n A html5 doctype does not have a publicId\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n});\n\nfunction useDev(useHook) {\n if (process.env.NODE_ENV !== 'production') {\n useHook();\n }\n}\n\nfunction useDevSetupWarning(fn, inputs) {\n useDev(function () {\n useEffect(function () {\n try {\n fn();\n } catch (e) {\n error(\"\\n A setup problem was encountered.\\n\\n > \" + e.message + \"\\n \");\n }\n }, inputs);\n });\n}\n\nfunction useStartupValidation() {\n useDevSetupWarning(function () {\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n var ref = useRef(current);\n useEffect(function () {\n ref.current = current;\n });\n return ref;\n}\n\nfunction create() {\n var lock = null;\n\n function isClaimed() {\n return Boolean(lock);\n }\n\n function isActive(value) {\n return value === lock;\n }\n\n function claim(abandon) {\n !!lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0;\n var newLock = {\n abandon: abandon\n };\n lock = newLock;\n return newLock;\n }\n\n function release() {\n !lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0;\n lock = null;\n }\n\n function tryAbandon() {\n if (lock) {\n lock.abandon();\n release();\n }\n }\n\n return {\n isClaimed: isClaimed,\n isActive: isActive,\n claim: claim,\n release: release,\n tryAbandon: tryAbandon\n };\n}\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar _preventedKeys;\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\nvar preventStandardKeyEvents = (function (event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n});\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = find(candidates, function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar primaryButton = 0;\nvar sloppyClickThreshold = 5;\n\nfunction isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n}\n\nvar idle$1 = {\n type: 'IDLE'\n};\n\nfunction getCaptureBindings(_ref) {\n var cancel = _ref.cancel,\n completed = _ref.completed,\n getPhase = _ref.getPhase,\n setPhase = _ref.setPhase;\n return [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n var phase = getPhase();\n\n if (phase.type === 'DRAGGING') {\n event.preventDefault();\n phase.actions.move(point);\n return;\n }\n\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0;\n var pending = phase.point;\n\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n\n event.preventDefault();\n var actions = phase.actions.fluidLift(point);\n setPhase({\n type: 'DRAGGING',\n actions: actions\n });\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (getPhase().type === 'DRAGGING') {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (getPhase().type === 'PENDING') {\n cancel();\n }\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0;\n\n if (phase.actions.shouldRespectForcePress()) {\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useMouseSensor(api) {\n var phaseRef = useRef(idle$1);\n var unbindEventsRef = useRef(noop);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'mousedown',\n fn: function onMouseDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var preventForcePressBinding = useMemo(function () {\n return {\n eventName: 'webkitmouseforcewillbegin',\n fn: function fn(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var id = api.findClosestDraggableId(event);\n\n if (!id) {\n return;\n }\n\n var options = api.findOptionsForDraggable(id);\n\n if (!options) {\n return;\n }\n\n if (options.shouldRespectForcePress) {\n return;\n }\n\n if (!api.canGetLock(id)) {\n return;\n }\n\n event.preventDefault();\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options);\n }, [preventForcePressBinding, startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n phaseRef.current = idle$1;\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var bindings = getCaptureBindings({\n cancel: cancel,\n completed: stop,\n getPhase: function getPhase() {\n return phaseRef.current;\n },\n setPhase: function setPhase(phase) {\n phaseRef.current = phase;\n }\n });\n unbindEventsRef.current = bindEvents(window, bindings, options);\n }, [cancel, stop]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n phaseRef.current = {\n type: 'PENDING',\n point: point,\n actions: actions\n };\n bindCapturingEvents();\n }, [bindCapturingEvents]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar _scrollJumpKeys;\n\nfunction noop$1() {}\n\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nfunction getDraggingBindings(actions, stop) {\n function cancel() {\n stop();\n actions.cancel();\n }\n\n function drop() {\n stop();\n actions.drop();\n }\n\n return [{\n eventName: 'keydown',\n fn: function fn(event) {\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n drop();\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n actions.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n actions.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n actions.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n actions.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useKeyboardSensor(api) {\n var unbindEventsRef = useRef(noop$1);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'keydown',\n fn: function onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var preDrag = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!preDrag) {\n return;\n }\n\n event.preventDefault();\n var isCapturing = true;\n var actions = preDrag.snapLift();\n unbindEventsRef.current();\n\n function stop() {\n !isCapturing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0;\n isCapturing = false;\n unbindEventsRef.current();\n listenForCapture();\n }\n\n unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), {\n capture: true,\n passive: false\n });\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function tryStartCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar idle$2 = {\n type: 'IDLE'\n};\nvar timeForLongPress = 120;\nvar forcePressThreshold = 0.15;\n\nfunction getWindowBindings(_ref) {\n var cancel = _ref.cancel,\n getPhase = _ref.getPhase;\n return [{\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction getHandleBindings(_ref2) {\n var cancel = _ref2.cancel,\n completed = _ref2.completed,\n getPhase = _ref2.getPhase;\n return [{\n eventName: 'touchmove',\n options: {\n capture: false\n },\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n phase.hasMoved = true;\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n phase.actions.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var touch = event.touches[0];\n\n if (!touch) {\n return;\n }\n\n var isForcePress = touch.force >= forcePressThreshold;\n\n if (!isForcePress) {\n return;\n }\n\n var shouldRespect = phase.actions.shouldRespectForcePress();\n\n if (phase.type === 'PENDING') {\n if (shouldRespect) {\n cancel();\n }\n\n return;\n }\n\n if (shouldRespect) {\n if (phase.hasMoved) {\n event.preventDefault();\n return;\n }\n\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useMouseSensor$1(api) {\n var phaseRef = useRef(idle$2);\n var unbindEventsRef = useRef(noop);\n var getPhase = useCallback(function getPhase() {\n return phaseRef.current;\n }, []);\n var setPhase = useCallback(function setPhase(phase) {\n phaseRef.current = phase;\n }, []);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'touchstart',\n fn: function onTouchStart(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n capture: true,\n passive: false\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n if (current.type === 'PENDING') {\n clearTimeout(current.longPressTimerId);\n }\n\n setPhase(idle$2);\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture, setPhase]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var args = {\n cancel: cancel,\n completed: stop,\n getPhase: getPhase\n };\n var unbindTarget = bindEvents(window, getHandleBindings(args), options);\n var unbindWindow = bindEvents(window, getWindowBindings(args), options);\n\n unbindEventsRef.current = function unbindAll() {\n unbindTarget();\n unbindWindow();\n };\n }, [cancel, getPhase, stop]);\n var startDragging = useCallback(function startDragging() {\n var phase = getPhase();\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot start dragging from phase \" + phase.type) : invariant(false) : void 0;\n var actions = phase.actions.fluidLift(phase.point);\n setPhase({\n type: 'DRAGGING',\n actions: actions,\n hasMoved: false\n });\n }, [getPhase, setPhase]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setPhase({\n type: 'PENDING',\n point: point,\n actions: actions,\n longPressTimerId: longPressTimerId\n });\n bindCapturingEvents();\n }, [bindCapturingEvents, getPhase, setPhase, startDragging]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n clearTimeout(phase.longPressTimerId);\n setPhase(idle$2);\n }\n };\n }, [getPhase, listenForCapture, setPhase]);\n useIsomorphicLayoutEffect(function webkitHack() {\n var unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: function fn() {},\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n}\n\nfunction useValidateSensorHooks(sensorHooks) {\n useDev(function () {\n var previousRef = usePrevious(sensorHooks);\n useDevSetupWarning(function () {\n !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0;\n });\n });\n}\n\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nfunction isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n}\n\nfunction isEventInInteractiveElement(draggable, event) {\n var target = event.target;\n\n if (!isHtmlElement(target)) {\n return false;\n }\n\n return isAnInteractiveElement(draggable, target);\n}\n\nvar getBorderBoxCenterPosition = (function (el) {\n return getRect(el.getBoundingClientRect()).center;\n});\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nvar supportedMatchesName = function () {\n var base = 'matches';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector'];\n var value = find(candidates, function (name) {\n return name in Element.prototype;\n });\n return value || base;\n}();\n\nfunction closestPonyfill(el, selector) {\n if (el == null) {\n return null;\n }\n\n if (el[supportedMatchesName](selector)) {\n return el;\n }\n\n return closestPonyfill(el.parentElement, selector);\n}\n\nfunction closest$1(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n\n return closestPonyfill(el, selector);\n}\n\nfunction getSelector(contextId) {\n return \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n}\n\nfunction findClosestDragHandleFromEvent(contextId, event) {\n var target = event.target;\n\n if (!isElement(target)) {\n process.env.NODE_ENV !== \"production\" ? warning('event.target must be a Element') : void 0;\n return null;\n }\n\n var selector = getSelector(contextId);\n var handle = closest$1(target, selector);\n\n if (!handle) {\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle must be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction tryGetClosestDraggableIdFromEvent(contextId, event) {\n var handle = findClosestDragHandleFromEvent(contextId, event);\n\n if (!handle) {\n return null;\n }\n\n return handle.getAttribute(dragHandle.draggableId);\n}\n\nfunction findDraggable(contextId, draggableId) {\n var selector = \"[\" + draggable.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n var draggable$1 = find(possible, function (el) {\n return el.getAttribute(draggable.id) === draggableId;\n });\n\n if (!draggable$1) {\n return null;\n }\n\n if (!isHtmlElement(draggable$1)) {\n process.env.NODE_ENV !== \"production\" ? warning('Draggable element is not a HTMLElement') : void 0;\n return null;\n }\n\n return draggable$1;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\n\nfunction _isActive(_ref) {\n var expected = _ref.expected,\n phase = _ref.phase,\n isLockActive = _ref.isLockActive,\n shouldWarn = _ref.shouldWarn;\n\n if (!isLockActive()) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The sensor no longer has an action lock.\\n\\n Tips:\\n\\n - Throw away your action handlers when forceStop() is called\\n - Check actions.isActive() if you really need to\\n \") : void 0;\n }\n\n return false;\n }\n\n if (expected !== phase) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The actions you used belong to an outdated phase\\n\\n Current phase: \" + expected + \"\\n You called an action from outdated phase: \" + phase + \"\\n\\n Tips:\\n\\n - Do not use preDragActions actions after calling preDragActions.lift()\\n \") : void 0;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction canStart(_ref2) {\n var lockAPI = _ref2.lockAPI,\n store = _ref2.store,\n registry = _ref2.registry,\n draggableId = _ref2.draggableId;\n\n if (lockAPI.isClaimed()) {\n return false;\n }\n\n var entry = registry.draggable.findById(draggableId);\n\n if (!entry) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable with id: \" + draggableId) : void 0;\n return false;\n }\n\n if (!entry.options.isEnabled) {\n return false;\n }\n\n if (!canStartDrag(store.getState(), draggableId)) {\n return false;\n }\n\n return true;\n}\n\nfunction tryStart(_ref3) {\n var lockAPI = _ref3.lockAPI,\n contextId = _ref3.contextId,\n store = _ref3.store,\n registry = _ref3.registry,\n draggableId = _ref3.draggableId,\n forceSensorStop = _ref3.forceSensorStop,\n sourceEvent = _ref3.sourceEvent;\n var shouldStart = canStart({\n lockAPI: lockAPI,\n store: store,\n registry: registry,\n draggableId: draggableId\n });\n\n if (!shouldStart) {\n return null;\n }\n\n var entry = registry.draggable.getById(draggableId);\n var el = findDraggable(contextId, entry.descriptor.id);\n\n if (!el) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable element with id: \" + draggableId) : void 0;\n return null;\n }\n\n if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) {\n return null;\n }\n\n var lock = lockAPI.claim(forceSensorStop || noop);\n var phase = 'PRE_DRAG';\n\n function getShouldRespectForcePress() {\n return entry.options.shouldRespectForcePress;\n }\n\n function isLockActive() {\n return lockAPI.isActive(lock);\n }\n\n function tryDispatch(expected, getAction) {\n if (_isActive({\n expected: expected,\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n })) {\n store.dispatch(getAction());\n }\n }\n\n var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING');\n\n function lift$1(args) {\n function completed() {\n lockAPI.release();\n phase = 'COMPLETED';\n }\n\n if (phase !== 'PRE_DRAG') {\n completed();\n !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot lift in phase \" + phase) : invariant(false) : void 0;\n }\n\n store.dispatch(lift(args.liftActionArgs));\n phase = 'DRAGGING';\n\n function finish(reason, options) {\n if (options === void 0) {\n options = {\n shouldBlockNextClick: false\n };\n }\n\n args.cleanup();\n\n if (options.shouldBlockNextClick) {\n var unbind = bindEvents(window, [{\n eventName: 'click',\n fn: preventDefault,\n options: {\n once: true,\n passive: false,\n capture: true\n }\n }]);\n setTimeout(unbind);\n }\n\n completed();\n store.dispatch(drop({\n reason: reason\n }));\n }\n\n return _extends({\n isActive: function isActive() {\n return _isActive({\n expected: 'DRAGGING',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n drop: function drop(options) {\n return finish('DROP', options);\n },\n cancel: function cancel(options) {\n return finish('CANCEL', options);\n }\n }, args.actions);\n }\n\n function fluidLift(clientSelection) {\n var move$1 = rafSchd(function (client) {\n tryDispatchWhenDragging(function () {\n return move({\n client: client\n });\n });\n });\n var api = lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: clientSelection,\n movementMode: 'FLUID'\n },\n cleanup: function cleanup() {\n return move$1.cancel();\n },\n actions: {\n move: move$1\n }\n });\n return _extends({}, api, {\n move: move$1\n });\n }\n\n function snapLift() {\n var actions = {\n moveUp: function moveUp$1() {\n return tryDispatchWhenDragging(moveUp);\n },\n moveRight: function moveRight$1() {\n return tryDispatchWhenDragging(moveRight);\n },\n moveDown: function moveDown$1() {\n return tryDispatchWhenDragging(moveDown);\n },\n moveLeft: function moveLeft$1() {\n return tryDispatchWhenDragging(moveLeft);\n }\n };\n return lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: getBorderBoxCenterPosition(el),\n movementMode: 'SNAP'\n },\n cleanup: noop,\n actions: actions\n });\n }\n\n function abortPreDrag() {\n var shouldRelease = _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n });\n\n if (shouldRelease) {\n lockAPI.release();\n }\n }\n\n var preDrag = {\n isActive: function isActive() {\n return _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n fluidLift: fluidLift,\n snapLift: snapLift,\n abort: abortPreDrag\n };\n return preDrag;\n}\n\nvar defaultSensors = [useMouseSensor, useKeyboardSensor, useMouseSensor$1];\nfunction useSensorMarshal(_ref4) {\n var contextId = _ref4.contextId,\n store = _ref4.store,\n registry = _ref4.registry,\n customSensors = _ref4.customSensors,\n enableDefaultSensors = _ref4.enableDefaultSensors;\n var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []);\n var lockAPI = useState(function () {\n return create();\n })[0];\n var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) {\n if (previous.isDragging && !current.isDragging) {\n lockAPI.tryAbandon();\n }\n }, [lockAPI]);\n useIsomorphicLayoutEffect(function listenToStore() {\n var previous = store.getState();\n var unsubscribe = store.subscribe(function () {\n var current = store.getState();\n tryAbandonLock(previous, current);\n previous = current;\n });\n return unsubscribe;\n }, [lockAPI, store, tryAbandonLock]);\n useIsomorphicLayoutEffect(function () {\n return lockAPI.tryAbandon;\n }, [lockAPI.tryAbandon]);\n var canGetLock = useCallback(function (draggableId) {\n return canStart({\n lockAPI: lockAPI,\n registry: registry,\n store: store,\n draggableId: draggableId\n });\n }, [lockAPI, registry, store]);\n var tryGetLock = useCallback(function (draggableId, forceStop, options) {\n return tryStart({\n lockAPI: lockAPI,\n registry: registry,\n contextId: contextId,\n store: store,\n draggableId: draggableId,\n forceSensorStop: forceStop,\n sourceEvent: options && options.sourceEvent ? options.sourceEvent : null\n });\n }, [contextId, lockAPI, registry, store]);\n var findClosestDraggableId = useCallback(function (event) {\n return tryGetClosestDraggableIdFromEvent(contextId, event);\n }, [contextId]);\n var findOptionsForDraggable = useCallback(function (id) {\n var entry = registry.draggable.findById(id);\n return entry ? entry.options : null;\n }, [registry.draggable]);\n var tryReleaseLock = useCallback(function tryReleaseLock() {\n if (!lockAPI.isClaimed()) {\n return;\n }\n\n lockAPI.tryAbandon();\n\n if (store.getState().phase !== 'IDLE') {\n store.dispatch(flush());\n }\n }, [lockAPI, store]);\n var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);\n var api = useMemo(function () {\n return {\n canGetLock: canGetLock,\n tryGetLock: tryGetLock,\n findClosestDraggableId: findClosestDraggableId,\n findOptionsForDraggable: findOptionsForDraggable,\n tryReleaseLock: tryReleaseLock,\n isLockClaimed: isLockClaimed\n };\n }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]);\n useValidateSensorHooks(useSensors);\n\n for (var i = 0; i < useSensors.length; i++) {\n useSensors[i](api);\n }\n}\n\nvar createResponders = function createResponders(props) {\n return {\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n };\n};\n\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\n\nfunction App(props) {\n var contextId = props.contextId,\n setCallbacks = props.setCallbacks,\n sensors = props.sensors,\n nonce = props.nonce,\n dragHandleUsageInstructions = props.dragHandleUsageInstructions;\n var lazyStoreRef = useRef(null);\n useStartupValidation();\n var lastPropsRef = usePrevious(props);\n var getResponders = useCallback(function () {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n var announce = useAnnouncer(contextId);\n var dragHandleUsageInstructionsId = useHiddenTextElement({\n contextId: contextId,\n text: dragHandleUsageInstructions\n });\n var styleMarshal = useStyleMarshal(contextId, nonce);\n var lazyDispatch = useCallback(function (action) {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n var marshalCallbacks = useMemo(function () {\n return bindActionCreators({\n publishWhileDragging: publishWhileDragging,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n collectionStarting: collectionStarting\n }, lazyDispatch);\n }, [lazyDispatch]);\n var registry = useRegistry();\n var dimensionMarshal = useMemo(function () {\n return createDimensionMarshal(registry, marshalCallbacks);\n }, [registry, marshalCallbacks]);\n var autoScroller = useMemo(function () {\n return createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, lazyDispatch)));\n }, [dimensionMarshal.scrollDroppable, lazyDispatch]);\n var focusMarshal = useFocusMarshal(contextId);\n var store = useMemo(function () {\n return createStore({\n announce: announce,\n autoScroller: autoScroller,\n dimensionMarshal: dimensionMarshal,\n focusMarshal: focusMarshal,\n getResponders: getResponders,\n styleMarshal: styleMarshal\n });\n }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n\n lazyStoreRef.current = store;\n var tryResetStore = useCallback(function () {\n var current = getStore(lazyStoreRef);\n var state = current.getState();\n\n if (state.phase !== 'IDLE') {\n current.dispatch(flush());\n }\n }, []);\n var isDragging = useCallback(function () {\n var state = getStore(lazyStoreRef).getState();\n return state.isDragging || state.phase === 'DROP_ANIMATING';\n }, []);\n var appCallbacks = useMemo(function () {\n return {\n isDragging: isDragging,\n tryAbort: tryResetStore\n };\n }, [isDragging, tryResetStore]);\n setCallbacks(appCallbacks);\n var getCanLift = useCallback(function (id) {\n return canStartDrag(getStore(lazyStoreRef).getState(), id);\n }, []);\n var getIsMovementAllowed = useCallback(function () {\n return isMovementAllowed(getStore(lazyStoreRef).getState());\n }, []);\n var appContext = useMemo(function () {\n return {\n marshal: dimensionMarshal,\n focus: focusMarshal,\n contextId: contextId,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed,\n dragHandleUsageInstructionsId: dragHandleUsageInstructionsId,\n registry: registry\n };\n }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]);\n useSensorMarshal({\n contextId: contextId,\n store: store,\n registry: registry,\n customSensors: sensors,\n enableDefaultSensors: props.enableDefaultSensors !== false\n });\n useEffect(function () {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nvar count$1 = 0;\nfunction reset$1() {\n count$1 = 0;\n}\nfunction useInstanceCount() {\n return useMemo(function () {\n return \"\" + count$1++;\n }, []);\n}\n\nfunction resetServerContext() {\n reset$1();\n reset();\n}\nfunction DragDropContext(props) {\n var contextId = useInstanceCount();\n var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions;\n return React.createElement(ErrorBoundary, null, function (setCallbacks) {\n return React.createElement(App, {\n nonce: props.nonce,\n contextId: contextId,\n setCallbacks: setCallbacks,\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n enableDefaultSensors: props.enableDefaultSensors,\n sensors: props.sensors,\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragUpdate: props.onDragUpdate,\n onDragEnd: props.onDragEnd\n }, props.children);\n });\n}\n\nvar isEqual$1 = function isEqual(base) {\n return function (value) {\n return base === value;\n };\n};\n\nvar isScroll = isEqual$1('scroll');\nvar isAuto = isEqual$1('auto');\nvar isVisible$1 = isEqual$1('visible');\n\nvar isEither = function isEither(overflow, fn) {\n return fn(overflow.overflowX) || fn(overflow.overflowY);\n};\n\nvar isBoth = function isBoth(overflow, fn) {\n return fn(overflow.overflowX) && fn(overflow.overflowY);\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n var overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\n\nvar isBodyScrollable = function isBodyScrollable() {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n\n var body = getBodyElement();\n var html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (!isElementScrollable(body)) {\n return false;\n }\n\n var htmlStyle = window.getComputedStyle(html);\n var htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n\n if (isBoth(htmlOverflow, isVisible$1)) {\n return false;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n We have detected that your <body> element might be a scroll container.\\n We have found no reliable way of detecting whether the <body> element is a scroll container.\\n Under most circumstances a <body> scroll bar will be on the <html> element (document.documentElement)\\n\\n Because we cannot determine if the <body> is a scroll container, and generally it is not one,\\n we will be treating the <body> as *not* a scroll container\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\\n \") : void 0;\n return false;\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n\n if (el === document.documentElement) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar checkForNestedScrollContainers = (function (scrollable) {\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \") : void 0;\n});\n\nvar getScroll$1 = (function (el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n});\n\nvar getIsFixed = function getIsFixed(el) {\n if (!el) {\n return false;\n }\n\n var style = window.getComputedStyle(el);\n\n if (style.position === 'fixed') {\n return true;\n }\n\n return getIsFixed(el.parentElement);\n};\n\nvar getEnv = (function (start) {\n var closestScrollable = getClosestScrollable(start);\n var isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable: closestScrollable,\n isFixedOnPage: isFixedOnPage\n };\n});\n\nvar getDroppableDimension = (function (_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n isCombineEnabled = _ref.isCombineEnabled,\n isFixedOnPage = _ref.isFixedOnPage,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest = _ref.closest;\n\n var frame = function () {\n if (!closest) {\n return null;\n }\n\n var scrollSize = closest.scrollSize,\n frameClient = closest.client;\n var maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient: frameClient,\n scrollSize: scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var axis = direction === 'vertical' ? vertical : horizontal;\n var subject = getSubject({\n page: page,\n withPlaceholder: null,\n axis: axis,\n frame: frame\n });\n var dimension = {\n descriptor: descriptor,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: isFixedOnPage,\n axis: axis,\n isEnabled: isEnabled,\n client: client,\n page: page,\n frame: frame,\n subject: subject\n };\n return dimension;\n});\n\nvar getClient = function getClient(targetRef, closestScrollable) {\n var base = getBox(targetRef);\n\n if (!closestScrollable) {\n return base;\n }\n\n if (targetRef !== closestScrollable) {\n return base;\n }\n\n var top = base.paddingBox.top - closestScrollable.scrollTop;\n var left = base.paddingBox.left - closestScrollable.scrollLeft;\n var bottom = top + closestScrollable.scrollHeight;\n var right = left + closestScrollable.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = expand(paddingBox, base.border);\n var client = createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\n\nvar getDimension = (function (_ref) {\n var ref = _ref.ref,\n descriptor = _ref.descriptor,\n env = _ref.env,\n windowScroll = _ref.windowScroll,\n direction = _ref.direction,\n isDropDisabled = _ref.isDropDisabled,\n isCombineEnabled = _ref.isCombineEnabled,\n shouldClipSubject = _ref.shouldClipSubject;\n var closestScrollable = env.closestScrollable;\n var client = getClient(ref, closestScrollable);\n var page = withScroll(client, windowScroll);\n\n var closest = function () {\n if (!closestScrollable) {\n return null;\n }\n\n var frameClient = getBox(closestScrollable);\n var scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll$1(closestScrollable),\n scrollSize: scrollSize,\n shouldClipSubject: shouldClipSubject\n };\n }();\n\n var dimension = getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction: direction,\n client: client,\n page: page,\n closest: closest\n });\n return dimension;\n});\n\nvar immediate = {\n passive: false\n};\nvar delayed = {\n passive: true\n};\nvar getListenerOptions = (function (options) {\n return options.shouldPublishImmediately ? immediate : delayed;\n});\n\nfunction useRequiredContext(Context) {\n var result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nvar getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) {\n return dragging && dragging.env.closestScrollable || null;\n};\n\nfunction useDroppablePublisher(args) {\n var whileDraggingRef = useRef(null);\n var appContext = useRequiredContext(AppContext);\n var uniqueId = useUniqueId('droppable');\n var registry = appContext.registry,\n marshal = appContext.marshal;\n var previousRef = usePrevious(args);\n var descriptor = useMemo(function () {\n return {\n id: args.droppableId,\n type: args.type,\n mode: args.mode\n };\n }, [args.droppableId, args.mode, args.type]);\n var publishedDescriptorRef = useRef(descriptor);\n var memoizedUpdateScroll = useMemo(function () {\n return memoizeOne(function (x, y) {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n var scroll = {\n x: x,\n y: y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n });\n }, [descriptor.id, marshal]);\n var getClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n\n return getScroll$1(dragging.env.closestScrollable);\n }, []);\n var updateScroll = useCallback(function () {\n var scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n var scheduleScrollUpdate = useMemo(function () {\n return rafSchd(updateScroll);\n }, [updateScroll]);\n var onClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = dragging.scrollOptions;\n\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n var previous = previousRef.current;\n var ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n var env = getEnv(ref);\n var dragging = {\n ref: ref,\n descriptor: descriptor,\n env: env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n var dimension = getDimension({\n ref: ref,\n descriptor: descriptor,\n env: env,\n windowScroll: windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n var scrollable = env.closestScrollable;\n\n if (scrollable) {\n scrollable.setAttribute(scrollContainer.contextId, appContext.contextId);\n scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(scrollable);\n }\n }\n\n return dimension;\n }, [appContext.contextId, descriptor, onClosestScroll, previousRef]);\n var getScrollWhileDragging = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n return getScroll$1(closest);\n }, []);\n var dragStopped = useCallback(function () {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n\n if (!closest) {\n return;\n }\n\n scheduleScrollUpdate.cancel();\n closest.removeAttribute(scrollContainer.contextId);\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n var scroll = useCallback(function (change) {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n var callbacks = useMemo(function () {\n return {\n getDimensionAndWatchScroll: getDimensionAndWatchScroll,\n getScrollWhileDragging: getScrollWhileDragging,\n dragStopped: dragStopped,\n scroll: scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n callbacks: callbacks\n };\n }, [callbacks, descriptor, uniqueId]);\n useIsomorphicLayoutEffect(function () {\n publishedDescriptorRef.current = entry.descriptor;\n registry.droppable.register(entry);\n return function () {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n\n registry.droppable.unregister(entry);\n };\n }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop$2() {}\n\nvar empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\n\nvar getSize = function getSize(_ref) {\n var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount,\n placeholder = _ref.placeholder,\n animate = _ref.animate;\n\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n\n if (animate === 'close') {\n return empty;\n }\n\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\n\nvar getStyle = function getStyle(_ref2) {\n var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount,\n placeholder = _ref2.placeholder,\n animate = _ref2.animate;\n var size = getSize({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n placeholder: placeholder,\n animate: animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: animate !== 'none' ? transitions.placeholder : null\n };\n};\n\nfunction Placeholder(props) {\n var animateOpenTimerRef = useRef(null);\n var tryClearAnimateOpenTimer = useCallback(function () {\n if (!animateOpenTimerRef.current) {\n return;\n }\n\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n var animate = props.animate,\n onTransitionEnd = props.onTransitionEnd,\n onClose = props.onClose,\n contextId = props.contextId;\n\n var _useState = useState(props.animate === 'open'),\n isAnimatingOpenOnMount = _useState[0],\n setIsAnimatingOpenOnMount = _useState[1];\n\n useEffect(function () {\n if (!isAnimatingOpenOnMount) {\n return noop$2;\n }\n\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop$2;\n }\n\n if (animateOpenTimerRef.current) {\n return noop$2;\n }\n\n animateOpenTimerRef.current = setTimeout(function () {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n var onSizeChangeEnd = useCallback(function (event) {\n if (event.propertyName !== 'height') {\n return;\n }\n\n onTransitionEnd();\n\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n var style = getStyle({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style: style,\n 'data-rbd-placeholder-context-id': contextId,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n}\n\nvar Placeholder$1 = React.memo(Placeholder);\n\nvar DroppableContext = React.createContext(null);\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n}\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\nfunction runChecks(args, checks) {\n checks.forEach(function (check) {\n return check(args);\n });\n}\n\nvar shared = [function required(_ref) {\n var props = _ref.props;\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A Droppable requires a [string] droppableId. Provided: [\" + typeof props.droppableId + \"]\") : invariant(false) : void 0;\n}, function _boolean(_ref2) {\n var props = _ref2.props;\n !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}, function ref(_ref3) {\n var getDroppableRef = _ref3.getDroppableRef;\n checkIsValidInnerRef(getDroppableRef());\n}];\nvar standard = [function placeholder(_ref4) {\n var props = _ref4.props,\n getPlaceholderRef = _ref4.getPlaceholderRef;\n\n if (!props.placeholder) {\n return;\n }\n\n var ref = getPlaceholderRef();\n\n if (ref) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable setup issue [droppableId: \\\"\" + props.droppableId + \"\\\"]:\\n DroppableProvided > placeholder could not be found.\\n\\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\\n \") : void 0;\n}];\nvar virtual = [function hasClone(_ref5) {\n var props = _ref5.props;\n !props.renderClone ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0;\n}, function hasNoPlaceholder(_ref6) {\n var getPlaceholderRef = _ref6.getPlaceholderRef;\n !!getPlaceholderRef() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0;\n}];\nfunction useValidation(args) {\n useDevSetupWarning(function () {\n runChecks(args, shared);\n\n if (args.props.mode === 'standard') {\n runChecks(args, standard);\n }\n\n if (args.props.mode === 'virtual') {\n runChecks(args, virtual);\n }\n });\n}\n\nvar AnimateInOut = function (_React$PureComponent) {\n _inheritsLoose(AnimateInOut, _React$PureComponent);\n\n function AnimateInOut() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.state = {\n isVisible: Boolean(_this.props.on),\n data: _this.props.on,\n animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none'\n };\n\n _this.onClose = function () {\n if (_this.state.animate !== 'close') {\n return;\n }\n\n _this.setState({\n isVisible: false\n });\n };\n\n return _this;\n }\n\n AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n };\n\n var _proto = AnimateInOut.prototype;\n\n _proto.render = function render() {\n if (!this.state.isVisible) {\n return null;\n }\n\n var provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n };\n\n return AnimateInOut;\n}(React.PureComponent);\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n\n return transitions.fluid;\n};\n\nvar getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) {\n if (!isCombining) {\n return null;\n }\n\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\n\nvar getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n\n return dragging.mode === 'SNAP';\n};\n\nfunction getDraggingStyle(dragging) {\n var dimension = dragging.dimension;\n var box = dimension.client;\n var offset = dragging.offset,\n combineWith = dragging.combineWith,\n dropping = dragging.dropping;\n var isCombining = Boolean(combineWith);\n var shouldAnimate = getShouldDraggingAnimate(dragging);\n var isDropAnimating = Boolean(dropping);\n var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform: transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\n\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? null : 'none'\n };\n}\n\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n\n var computedStyles = window.getComputedStyle(el);\n var borderBox = el.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n displaceBy: displaceBy,\n client: client,\n page: page\n };\n return dimension;\n}\n\nfunction useDraggablePublisher(args) {\n var uniqueId = useUniqueId('draggable');\n var descriptor = args.descriptor,\n registry = args.registry,\n getDraggableRef = args.getDraggableRef,\n canDragInteractiveElements = args.canDragInteractiveElements,\n shouldRespectForcePress = args.shouldRespectForcePress,\n isEnabled = args.isEnabled;\n var options = useMemo(function () {\n return {\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]);\n var getDimension = useCallback(function (windowScroll) {\n var el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(descriptor, el, windowScroll);\n }, [descriptor, getDraggableRef]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n options: options,\n getDimension: getDimension\n };\n }, [descriptor, getDimension, options, uniqueId]);\n var publishedRef = useRef(entry);\n var isFirstPublishRef = useRef(true);\n useIsomorphicLayoutEffect(function () {\n registry.draggable.register(publishedRef.current);\n return function () {\n return registry.draggable.unregister(publishedRef.current);\n };\n }, [registry.draggable]);\n useIsomorphicLayoutEffect(function () {\n if (isFirstPublishRef.current) {\n isFirstPublishRef.current = false;\n return;\n }\n\n var last = publishedRef.current;\n publishedRef.current = entry;\n registry.draggable.update(entry, last);\n }, [entry, registry.draggable]);\n}\n\nfunction useValidation$1(props, contextId, getRef) {\n useDevSetupWarning(function () {\n function prefix(id) {\n return \"Draggable[id: \" + id + \"]: \";\n }\n\n var id = props.draggableId;\n !id ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Draggable requires a [string] draggableId.\\n Provided: [type: \" + typeof id + \"] (value: \" + id + \")\") : invariant(false) : void 0;\n !isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" requires an integer index prop\") : invariant(false) : void 0;\n\n if (props.mapped.type === 'DRAGGING') {\n return;\n }\n\n checkIsValidInnerRef(getRef());\n\n if (props.isEnabled) {\n !findDragHandle(contextId, id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" Unable to find drag handle\") : invariant(false) : void 0;\n }\n });\n}\nfunction useClonePropValidation(isClone) {\n useDev(function () {\n var initialRef = useRef(isClone);\n useDevSetupWarning(function () {\n !(isClone === initialRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0;\n }, [isClone]);\n });\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\n\nfunction Draggable(props) {\n var ref = useRef(null);\n var setRef = useCallback(function (el) {\n ref.current = el;\n }, []);\n var getRef = useCallback(function () {\n return ref.current;\n }, []);\n\n var _useRequiredContext = useRequiredContext(AppContext),\n contextId = _useRequiredContext.contextId,\n dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId,\n registry = _useRequiredContext.registry;\n\n var _useRequiredContext2 = useRequiredContext(DroppableContext),\n type = _useRequiredContext2.type,\n droppableId = _useRequiredContext2.droppableId;\n\n var descriptor = useMemo(function () {\n return {\n id: props.draggableId,\n index: props.index,\n type: type,\n droppableId: droppableId\n };\n }, [props.draggableId, props.index, type, droppableId]);\n var children = props.children,\n draggableId = props.draggableId,\n isEnabled = props.isEnabled,\n shouldRespectForcePress = props.shouldRespectForcePress,\n canDragInteractiveElements = props.canDragInteractiveElements,\n isClone = props.isClone,\n mapped = props.mapped,\n dropAnimationFinishedAction = props.dropAnimationFinished;\n useValidation$1(props, contextId, getRef);\n useClonePropValidation(isClone);\n\n if (!isClone) {\n var forPublisher = useMemo(function () {\n return {\n descriptor: descriptor,\n registry: registry,\n getDraggableRef: getRef,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]);\n useDraggablePublisher(forPublisher);\n }\n\n var dragHandleProps = useMemo(function () {\n return isEnabled ? {\n tabIndex: 0,\n role: 'button',\n 'aria-describedby': dragHandleUsageInstructionsId,\n 'data-rbd-drag-handle-draggable-id': draggableId,\n 'data-rbd-drag-handle-context-id': contextId,\n draggable: false,\n onDragStart: preventHtml5Dnd\n } : null;\n }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]);\n var onMoveEnd = useCallback(function (event) {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n\n if (!mapped.dropping) {\n return;\n }\n\n if (event.propertyName !== 'transform') {\n return;\n }\n\n dropAnimationFinishedAction();\n }, [dropAnimationFinishedAction, mapped]);\n var provided = useMemo(function () {\n var style = getStyle$1(mapped);\n var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;\n var result = {\n innerRef: setRef,\n draggableProps: {\n 'data-rbd-draggable-context-id': contextId,\n 'data-rbd-draggable-id': draggableId,\n style: style,\n onTransitionEnd: onTransitionEnd\n },\n dragHandleProps: dragHandleProps\n };\n return result;\n }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);\n var rubric = useMemo(function () {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]);\n return children(provided, mapped.snapshot, rubric);\n}\n\nvar isStrictEqual = (function (a, b) {\n return a === b;\n});\n\nvar whatIsDraggedOverFromResult = (function (result) {\n var combine = result.combine,\n destination = result.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (combine) {\n return combine.droppableId;\n }\n\n return null;\n});\n\nvar getCombineWithFromResult = function getCombineWithFromResult(result) {\n return result.combine ? result.combine.draggableId : null;\n};\n\nvar getCombineWithFromImpact = function getCombineWithFromImpact(impact) {\n return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null;\n};\n\nfunction getDraggableSelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) {\n return {\n isDragging: true,\n isClone: isClone,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode: mode,\n draggingOver: draggingOver,\n combineWith: combineWith,\n combineTargetFor: null\n };\n });\n var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) {\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver: draggingOver,\n combineWith: combineWith,\n mode: mode,\n offset: offset,\n dimension: dimension,\n forceShouldAnimate: forceShouldAnimate,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null)\n }\n };\n });\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var draggingOver = whatIsDraggedOver(state.impact);\n var combineWith = getCombineWithFromImpact(state.impact);\n var forceShouldAnimate = state.forceShouldAnimate;\n return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var isClone = ownProps.isClone;\n var _dimension = state.dimensions.draggables[ownProps.draggableId];\n var result = completed.result;\n var mode = result.mode;\n\n var _draggingOver = whatIsDraggedOverFromResult(result);\n\n var _combineWith = getCombineWithFromResult(result);\n\n var duration = state.dropDuration;\n var dropping = {\n duration: duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: _combineWith ? combine.opacity.drop : null,\n scale: _combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension: _dimension,\n dropping: dropping,\n draggingOver: _draggingOver,\n combineWith: _combineWith,\n mode: mode,\n forceShouldAnimate: null,\n snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping)\n }\n };\n }\n\n return null;\n };\n\n return selector;\n}\n\nfunction getSecondarySnapshot(combineTargetFor) {\n return {\n isDragging: false,\n isDropAnimating: false,\n isClone: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor: combineTargetFor,\n combineWith: null\n };\n}\n\nvar atRest = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n};\n\nfunction getSecondarySelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot);\n var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n\n return {\n mapped: {\n type: 'SECONDARY',\n offset: offset,\n combineTargetFor: combineTargetFor,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n snapshot: getMemoizedSnapshot(combineTargetFor)\n }\n };\n });\n\n var getFallback = function getFallback(combineTargetFor) {\n return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null;\n };\n\n var getProps = function getProps(ownId, draggingId, impact, afterCritical) {\n var visualDisplacement = impact.displaced.visible[ownId];\n var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]);\n var combine = tryGetCombine(impact);\n var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null;\n\n if (!visualDisplacement) {\n if (!isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n if (impact.displaced.invisible[ownId]) {\n return null;\n }\n\n var change = negate(afterCritical.displacedBy.point);\n\n var _offset = memoizedOffset(change.x, change.y);\n\n return getMemoizedProps(_offset, combineTargetFor, true);\n }\n\n if (isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n var displaceBy = impact.displacedBy.point;\n var offset = memoizedOffset(displaceBy.x, displaceBy.y);\n return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate);\n };\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical);\n }\n\n return null;\n };\n\n return selector;\n}\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var draggingSelector = getDraggableSelector();\n var secondarySelector = getSecondarySelector();\n\n var selector = function selector(state, ownProps) {\n return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest;\n };\n\n return selector;\n};\nvar mapDispatchToProps = {\n dropAnimationFinished: dropAnimationFinished\n};\nvar ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\n\nfunction PrivateDraggable(props) {\n var droppableContext = useRequiredContext(DroppableContext);\n var isUsingCloneFor = droppableContext.isUsingCloneFor;\n\n if (isUsingCloneFor === props.draggableId && !props.isClone) {\n return null;\n }\n\n return React.createElement(ConnectedDraggable, props);\n}\nfunction PublicDraggable(props) {\n var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true;\n var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking);\n var shouldRespectForcePress = Boolean(props.shouldRespectForcePress);\n return React.createElement(PrivateDraggable, _extends({}, props, {\n isClone: false,\n isEnabled: isEnabled,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress\n }));\n}\n\nfunction Droppable(props) {\n var appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n var contextId = appContext.contextId,\n isMovementAllowed = appContext.isMovementAllowed;\n var droppableRef = useRef(null);\n var placeholderRef = useRef(null);\n var children = props.children,\n droppableId = props.droppableId,\n type = props.type,\n mode = props.mode,\n direction = props.direction,\n ignoreContainerClipping = props.ignoreContainerClipping,\n isDropDisabled = props.isDropDisabled,\n isCombineEnabled = props.isCombineEnabled,\n snapshot = props.snapshot,\n useClone = props.useClone,\n updateViewportMaxScroll = props.updateViewportMaxScroll,\n getContainerForClone = props.getContainerForClone;\n var getDroppableRef = useCallback(function () {\n return droppableRef.current;\n }, []);\n var setDroppableRef = useCallback(function (value) {\n droppableRef.current = value;\n }, []);\n var getPlaceholderRef = useCallback(function () {\n return placeholderRef.current;\n }, []);\n var setPlaceholderRef = useCallback(function (value) {\n placeholderRef.current = value;\n }, []);\n useValidation({\n props: props,\n getDroppableRef: getDroppableRef,\n getPlaceholderRef: getPlaceholderRef\n });\n var onPlaceholderTransitionEnd = useCallback(function () {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppablePublisher({\n droppableId: droppableId,\n type: type,\n mode: mode,\n direction: direction,\n isDropDisabled: isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n ignoreContainerClipping: ignoreContainerClipping,\n getDroppableRef: getDroppableRef\n });\n var placeholder = React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, function (_ref) {\n var onClose = _ref.onClose,\n data = _ref.data,\n animate = _ref.animate;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n contextId: contextId,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n });\n var provided = useMemo(function () {\n return {\n innerRef: setDroppableRef,\n placeholder: placeholder,\n droppableProps: {\n 'data-rbd-droppable-id': droppableId,\n 'data-rbd-droppable-context-id': contextId\n }\n };\n }, [contextId, droppableId, placeholder, setDroppableRef]);\n var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;\n var droppableContext = useMemo(function () {\n return {\n droppableId: droppableId,\n type: type,\n isUsingCloneFor: isUsingCloneFor\n };\n }, [droppableId, isUsingCloneFor, type]);\n\n function getClone() {\n if (!useClone) {\n return null;\n }\n\n var dragging = useClone.dragging,\n render = useClone.render;\n var node = React.createElement(PrivateDraggable, {\n draggableId: dragging.draggableId,\n index: dragging.source.index,\n isClone: true,\n isEnabled: true,\n shouldRespectForcePress: false,\n canDragInteractiveElements: true\n }, function (draggableProvided, draggableSnapshot) {\n return render(draggableProvided, draggableSnapshot, dragging);\n });\n return ReactDOM.createPortal(node, getContainerForClone());\n }\n\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot), getClone());\n}\n\nvar isMatchingType = function isMatchingType(type, critical) {\n return type === critical.droppable.type;\n};\n\nvar getDraggable = function getDraggable(critical, dimensions) {\n return dimensions.draggables[critical.draggable.id];\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var idleWithAnimation = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null,\n isUsingPlaceholder: false\n },\n useClone: null\n };\n\n var idleWithoutAnimation = _extends({}, idleWithAnimation, {\n shouldAnimatePlaceholder: false\n });\n\n var getDraggableRubric = memoizeOne(function (descriptor) {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n });\n var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) {\n var draggableId = dragging.descriptor.id;\n var isHome = dragging.descriptor.droppableId === id;\n\n if (isHome) {\n var useClone = renderClone ? {\n render: renderClone,\n dragging: getDraggableRubric(dragging.descriptor)\n } : null;\n var _snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: isDraggingOverForConsumer ? draggableId : null,\n draggingFromThisWith: draggableId,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot: _snapshot,\n useClone: useClone\n };\n }\n\n if (!isEnabled) {\n return idleWithoutAnimation;\n }\n\n if (!isDraggingOverForImpact) {\n return idleWithAnimation;\n }\n\n var snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: draggableId,\n draggingFromThisWith: null,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot: snapshot,\n useClone: null\n };\n });\n\n var selector = function selector(state, ownProps) {\n var id = ownProps.droppableId;\n var type = ownProps.type;\n var isEnabled = !ownProps.isDropDisabled;\n var renderClone = ownProps.renderClone;\n\n if (state.isDragging) {\n var critical = state.critical;\n\n if (!isMatchingType(type, critical)) {\n return idleWithoutAnimation;\n }\n\n var dragging = getDraggable(critical, state.dimensions);\n var isDraggingOver = whatIsDraggedOver(state.impact) === id;\n return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var _dragging = getDraggable(completed.critical, state.dimensions);\n\n return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone);\n }\n\n if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) {\n var _completed = state.completed;\n\n if (!isMatchingType(type, _completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var wasOver = whatIsDraggedOver(_completed.impact) === id;\n var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE');\n var isHome = _completed.critical.droppable.id === id;\n\n if (wasOver) {\n return wasCombining ? idleWithAnimation : idleWithoutAnimation;\n }\n\n if (isHome) {\n return idleWithAnimation;\n }\n\n return idleWithoutAnimation;\n }\n\n return idleWithoutAnimation;\n };\n\n return selector;\n};\nvar mapDispatchToProps$1 = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\n\nfunction getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0;\n return document.body;\n}\n\nvar defaultProps = {\n mode: 'standard',\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false,\n renderClone: null,\n getContainerForClone: getBody\n};\nvar ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nConnectedDroppable.defaultProps = defaultProps;\n\nexport { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext };\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","'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;","'use strict';\n\n/**\n * Copyright (c) 2015-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(function(f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f(require('react'));\n /* global define */\n } else if (typeof define === 'function' && define.amd) {\n define(['react'], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n\n if (typeof g.React === 'undefined') {\n throw Error('React module should be required before ReactDOMFactories');\n }\n\n g.ReactDOMFactories = f(g.React);\n }\n})(function(React) {\n /**\n * Create a factory that creates HTML tag elements.\n */\n function createDOMFactory(type) {\n var factory = React.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n factory.type = type;\n return factory;\n };\n\n /**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n */\n var ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n var: createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan'),\n };\n\n // due to wrapper and conditionals at the top, this will either become\n // `module.exports ReactDOMFactories` if that is available,\n // otherwise it will be defined via `define(['react'], ReactDOMFactories)`\n // if that is available,\n // otherwise it will be defined as global variable.\n return ReactDOMFactories;\n});\n\n","/** @license React v16.8.6\n * react-dom-server.browser.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\nvar _assign = require('object-assign');\nvar React = require('react');\nvar checkPropTypes = require('prop-types/checkPropTypes');\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 () {};\n\n{\n validateFormat = function (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 = void 0;\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\n// Relying on the `invariant()` implementation lets us\n// preserve the format and params in the www builds.\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.8.6';\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 warningWithoutStack = function () {};\n\n{\n warningWithoutStack = function (condition, format) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (format === undefined) {\n throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (args.length > 8) {\n // Check before the condition to catch violations early.\n throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n }\n if (condition) {\n return;\n }\n if (typeof console !== 'undefined') {\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n });\n argsWithFormat.unshift('Warning: ' + format);\n\n // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n Function.prototype.apply.call(console.error, console, argsWithFormat);\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 var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\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\n\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\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_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nvar Resolved = 1;\n\n\nfunction refineResolvedLazyComponent(lazyComponent) {\n return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n {\n if (typeof type.tag === 'number') {\n warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n if (typeof type === 'string') {\n return type;\n }\n switch (type) {\n case REACT_CONCURRENT_MODE_TYPE:\n return 'ConcurrentMode';\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n case REACT_PORTAL_TYPE:\n return 'Portal';\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return 'Context.Consumer';\n case REACT_PROVIDER_TYPE:\n return 'Context.Provider';\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n case REACT_LAZY_TYPE:\n {\n var thenable = type;\n var resolvedThenable = refineResolvedLazyComponent(thenable);\n if (resolvedThenable) {\n return getComponentName(resolvedThenable);\n }\n }\n }\n }\n return null;\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\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// Prevent newer renderers from RTE when used with older react package versions.\n// Current owner and dispatcher used to share the same ref,\n// but PR #14548 split them out to better support the react-debug-tools package.\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {\n ReactSharedInternals.ReactCurrentDispatcher = {\n current: null\n };\n}\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 = warningWithoutStack$1;\n\n{\n warning = function (condition, format) {\n if (condition) {\n return;\n }\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));\n };\n}\n\nvar warning$1 = warning;\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\n\nvar describeComponentFrame = function (name, source, ownerName) {\n var sourceInfo = '';\n if (source) {\n var path = source.fileName;\n var fileName = path.replace(BEFORE_SLASH_RE, '');\n {\n // In DEV, include code for a common special case:\n // prefer \"folder/index.js\" instead of just \"index.js\".\n if (/^index\\./.test(fileName)) {\n var match = path.match(BEFORE_SLASH_RE);\n if (match) {\n var pathBeforeSlash = match[1];\n if (pathBeforeSlash) {\n var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n fileName = folderName + '/' + fileName;\n }\n }\n }\n }\n sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n } else if (ownerName) {\n sourceInfo = ' (created by ' + ownerName + ')';\n }\n return '\\n in ' + (name || 'Unknown') + sourceInfo;\n};\n\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\n\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\n\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\nvar warnAboutDeprecatedLifecycles = false;\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\n\n\n// Only used in www builds.\nvar enableSuspenseServerRenderer = false; // TODO: true? Here it might just be false.\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\n\n// These APIs will no longer be \"unstable\" in the upcoming 16.7 release,\n// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.\n\nvar ReactDebugCurrentFrame$1 = void 0;\nvar didWarnAboutInvalidateContextType = void 0;\n{\n ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n didWarnAboutInvalidateContextType = new Set();\n}\n\nvar emptyObject = {};\n{\n Object.freeze(emptyObject);\n}\n\nfunction maskContext(type, context) {\n var contextTypes = type.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n}\n\nfunction checkContextTypes(typeSpecs, values, location) {\n {\n checkPropTypes(typeSpecs, values, location, 'Component', ReactDebugCurrentFrame$1.getCurrentStack);\n }\n}\n\nfunction validateContextBounds(context, threadID) {\n // If we don't have enough slots in this context to store this threadID,\n // fill it in without leaving any holes to ensure that the VM optimizes\n // this as non-holey index properties.\n // (Note: If `react` package is < 16.6, _threadCount is undefined.)\n for (var i = context._threadCount | 0; i <= threadID; i++) {\n // We assume that this is the same as the defaultValue which might not be\n // true if we're rendering inside a secondary renderer but they are\n // secondary because these use cases are very rare.\n context[i] = context._currentValue2;\n context._threadCount = i + 1;\n }\n}\n\nfunction processContext(type, context, threadID) {\n var contextType = type.contextType;\n {\n if ('contextType' in type) {\n var isValid =\n // Allow null for conditional declaration\n contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n if (!isValid && !didWarnAboutInvalidateContextType.has(type)) {\n didWarnAboutInvalidateContextType.add(type);\n\n var addendum = '';\n if (contextType === undefined) {\n addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n } else if (typeof contextType !== 'object') {\n addendum = ' However, it is set to a ' + typeof contextType + '.';\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = ' Did you accidentally pass the Context.Provider instead?';\n } else if (contextType._context !== undefined) {\n // <Context.Consumer>\n addendum = ' Did you accidentally pass the Context.Consumer instead?';\n } else {\n addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n }\n warningWithoutStack$1(false, '%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(type) || 'Component', addendum);\n }\n }\n }\n if (typeof contextType === 'object' && contextType !== null) {\n validateContextBounds(contextType, threadID);\n return contextType[threadID];\n } else {\n var maskedContext = maskContext(type, context);\n {\n if (type.contextTypes) {\n checkContextTypes(type.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n }\n}\n\n// Allocates a new index for each request. Tries to stay as compact as possible so that these\n// indices can be used to reference a tightly packaged array. As opposed to being used in a Map.\n// The first allocated index is 1.\n\nvar nextAvailableThreadIDs = new Uint16Array(16);\nfor (var i = 0; i < 15; i++) {\n nextAvailableThreadIDs[i] = i + 1;\n}\nnextAvailableThreadIDs[15] = 0;\n\nfunction growThreadCountAndReturnNextAvailable() {\n var oldArray = nextAvailableThreadIDs;\n var oldSize = oldArray.length;\n var newSize = oldSize * 2;\n !(newSize <= 0x10000) ? invariant(false, 'Maximum number of concurrent React renderers exceeded. This can happen if you are not properly destroying the Readable provided by React. Ensure that you call .destroy() on it if you no longer want to read from it, and did not read to the end. If you use .pipe() this should be automatic.') : void 0;\n var newArray = new Uint16Array(newSize);\n newArray.set(oldArray);\n nextAvailableThreadIDs = newArray;\n nextAvailableThreadIDs[0] = oldSize + 1;\n for (var _i = oldSize; _i < newSize - 1; _i++) {\n nextAvailableThreadIDs[_i] = _i + 1;\n }\n nextAvailableThreadIDs[newSize - 1] = 0;\n return oldSize;\n}\n\nfunction allocThreadID() {\n var nextID = nextAvailableThreadIDs[0];\n if (nextID === 0) {\n return growThreadCountAndReturnNextAvailable();\n }\n nextAvailableThreadIDs[0] = nextAvailableThreadIDs[nextID];\n return nextID;\n}\n\nfunction freeThreadID(id) {\n nextAvailableThreadIDs[id] = nextAvailableThreadIDs[0];\n nextAvailableThreadIDs[0] = id;\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\nvar STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty$1.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n if (hasOwnProperty$1.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n {\n warning$1(false, 'Invalid attribute name: `%s`', attributeName);\n }\n return false;\n}\n\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n if (isCustomComponentTag) {\n return false;\n }\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n return false;\n}\n\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n switch (typeof value) {\n case 'function':\n // $FlowIssue symbol is perfectly valid here\n case 'symbol':\n // eslint-disable-line\n return true;\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n default:\n return false;\n }\n}\n\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n if (isCustomComponentTag) {\n return false;\n }\n if (propertyInfo !== null) {\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n case OVERLOADED_BOOLEAN:\n return value === false;\n case NUMERIC:\n return isNaN(value);\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n return false;\n}\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\n['children', 'dangerouslySetInnerHTML',\n// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML boolean attributes.\n['allowFullScreen', 'async',\n// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',\n// Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',\n// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture', 'download'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be positive numbers.\n['cols', 'rows', 'size', 'span'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n};\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scrapping the MDN documentation.\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null);\n} // attributeNamespace\n);\n\n// String SVG attributes with the xlink namespace.\n['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink');\n});\n\n// String SVG attributes with the xml namespace.\n['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace');\n});\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escapes special characters and HTML entities in a given html string.\n *\n * @param {string} string HTML string to escape for later insertion\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape = void 0;\n var html = '';\n var index = void 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '&quot;';\n break;\n case 38:\n // &\n escape = '&amp;';\n break;\n case 39:\n // '\n escape = '&#x27;'; // modified from escape-html; used to be '&#39'\n break;\n case 60:\n // <\n escape = '&lt;';\n break;\n case 62:\n // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextForBrowser(value) + '\"';\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\n\n/**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n\n\nfunction createMarkupForRoot() {\n return ROOT_ATTRIBUTE_NAME + '=\"\"';\n}\n\n/**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\nfunction createMarkupForProperty(name, value) {\n var propertyInfo = getPropertyInfo(name);\n if (name !== 'style' && shouldIgnoreAttribute(name, propertyInfo, false)) {\n return '';\n }\n if (shouldRemoveAttribute(name, value, propertyInfo, false)) {\n return '';\n }\n if (propertyInfo !== null) {\n var attributeName = propertyInfo.attributeName;\n var type = propertyInfo.type;\n\n if (type === BOOLEAN || type === OVERLOADED_BOOLEAN && value === true) {\n return attributeName + '=\"\"';\n } else {\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n }\n } else if (isAttributeNameSafe(name)) {\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return '';\n}\n\n/**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\nfunction createMarkupForCustomAttribute(name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\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 */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar currentlyRenderingComponent = null;\nvar firstWorkInProgressHook = null;\nvar workInProgressHook = null;\n// Whether the work-in-progress hook is a re-rendered hook\nvar isReRender = false;\n// Whether an update was scheduled during the currently executing render pass.\nvar didScheduleRenderPhaseUpdate = false;\n// Lazily created map of render-phase updates\nvar renderPhaseUpdates = null;\n// Counter to prevent infinite loops.\nvar numberOfReRenders = 0;\nvar RE_RENDER_LIMIT = 25;\n\nvar isInHookUserCodeInDev = false;\n\n// In DEV, this is the name of the currently executing primitive hook\nvar currentHookNameInDev = void 0;\n\nfunction resolveCurrentlyRenderingComponent() {\n !(currentlyRenderingComponent !== null) ? invariant(false, 'Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.') : void 0;\n {\n !!isInHookUserCodeInDev ? warning$1(false, 'Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://fb.me/rules-of-hooks') : void 0;\n }\n return currentlyRenderingComponent;\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (prevDeps === null) {\n {\n warning$1(false, '%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n return false;\n }\n\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n warning$1(false, 'The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, '[' + nextDeps.join(', ') + ']', '[' + prevDeps.join(', ') + ']');\n }\n }\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (is(nextDeps[i], prevDeps[i])) {\n continue;\n }\n return false;\n }\n return true;\n}\n\nfunction createHook() {\n if (numberOfReRenders > 0) {\n invariant(false, 'Rendered more hooks than during the previous render');\n }\n return {\n memoizedState: null,\n queue: null,\n next: null\n };\n}\n\nfunction createWorkInProgressHook() {\n if (workInProgressHook === null) {\n // This is the first hook in the list\n if (firstWorkInProgressHook === null) {\n isReRender = false;\n firstWorkInProgressHook = workInProgressHook = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = firstWorkInProgressHook;\n }\n } else {\n if (workInProgressHook.next === null) {\n isReRender = false;\n // Append to the end of the list\n workInProgressHook = workInProgressHook.next = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = workInProgressHook.next;\n }\n }\n return workInProgressHook;\n}\n\nfunction prepareToUseHooks(componentIdentity) {\n currentlyRenderingComponent = componentIdentity;\n {\n isInHookUserCodeInDev = false;\n }\n\n // The following should have already been reset\n // didScheduleRenderPhaseUpdate = false;\n // firstWorkInProgressHook = null;\n // numberOfReRenders = 0;\n // renderPhaseUpdates = null;\n // workInProgressHook = null;\n}\n\nfunction finishHooks(Component, props, children, refOrContext) {\n // This must be called after every function component to prevent hooks from\n // being used in classes.\n\n while (didScheduleRenderPhaseUpdate) {\n // Updates were scheduled during the render phase. They are stored in\n // the `renderPhaseUpdates` map. Call the component again, reusing the\n // work-in-progress hooks and applying the additional updates on top. Keep\n // restarting until no more updates are scheduled.\n didScheduleRenderPhaseUpdate = false;\n numberOfReRenders += 1;\n\n // Start over from the beginning of the list\n workInProgressHook = null;\n\n children = Component(props, refOrContext);\n }\n currentlyRenderingComponent = null;\n firstWorkInProgressHook = null;\n numberOfReRenders = 0;\n renderPhaseUpdates = null;\n workInProgressHook = null;\n {\n isInHookUserCodeInDev = false;\n }\n\n // These were reset above\n // currentlyRenderingComponent = null;\n // didScheduleRenderPhaseUpdate = false;\n // firstWorkInProgressHook = null;\n // numberOfReRenders = 0;\n // renderPhaseUpdates = null;\n // workInProgressHook = null;\n\n return children;\n}\n\nfunction readContext(context, observedBits) {\n var threadID = currentThreadID;\n validateContextBounds(context, threadID);\n {\n !!isInHookUserCodeInDev ? warning$1(false, 'Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().') : void 0;\n }\n return context[threadID];\n}\n\nfunction useContext(context, observedBits) {\n {\n currentHookNameInDev = 'useContext';\n }\n resolveCurrentlyRenderingComponent();\n var threadID = currentThreadID;\n validateContextBounds(context, threadID);\n return context[threadID];\n}\n\nfunction basicStateReducer(state, action) {\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction useState(initialState) {\n {\n currentHookNameInDev = 'useState';\n }\n return useReducer(basicStateReducer,\n // useReducer has a special case to support lazy useState initializers\n initialState);\n}\n\nfunction useReducer(reducer, initialArg, init) {\n {\n if (reducer !== basicStateReducer) {\n currentHookNameInDev = 'useReducer';\n }\n }\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n if (isReRender) {\n // This is a re-render. Apply the new render phase updates to the previous\n var _queue = workInProgressHook.queue;\n var _dispatch = _queue.dispatch;\n if (renderPhaseUpdates !== null) {\n // Render phase updates are stored in a map of queue -> linked list\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(_queue);\n if (firstRenderPhaseUpdate !== undefined) {\n renderPhaseUpdates.delete(_queue);\n var newState = workInProgressHook.memoizedState;\n var update = firstRenderPhaseUpdate;\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var _action = update.action;\n {\n isInHookUserCodeInDev = true;\n }\n newState = reducer(newState, _action);\n {\n isInHookUserCodeInDev = false;\n }\n update = update.next;\n } while (update !== null);\n\n workInProgressHook.memoizedState = newState;\n\n return [newState, _dispatch];\n }\n }\n return [workInProgressHook.memoizedState, _dispatch];\n } else {\n {\n isInHookUserCodeInDev = true;\n }\n var initialState = void 0;\n if (reducer === basicStateReducer) {\n // Special case for `useState`.\n initialState = typeof initialArg === 'function' ? initialArg() : initialArg;\n } else {\n initialState = init !== undefined ? init(initialArg) : initialArg;\n }\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = initialState;\n var _queue2 = workInProgressHook.queue = {\n last: null,\n dispatch: null\n };\n var _dispatch2 = _queue2.dispatch = dispatchAction.bind(null, currentlyRenderingComponent, _queue2);\n return [workInProgressHook.memoizedState, _dispatch2];\n }\n}\n\nfunction useMemo(nextCreate, deps) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n\n var nextDeps = deps === undefined ? null : deps;\n\n if (workInProgressHook !== null) {\n var prevState = workInProgressHook.memoizedState;\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n }\n\n {\n isInHookUserCodeInDev = true;\n }\n var nextValue = nextCreate();\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction useRef(initialValue) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n var previousRef = workInProgressHook.memoizedState;\n if (previousRef === null) {\n var ref = { current: initialValue };\n {\n Object.seal(ref);\n }\n workInProgressHook.memoizedState = ref;\n return ref;\n } else {\n return previousRef;\n }\n}\n\nfunction useLayoutEffect(create, inputs) {\n {\n currentHookNameInDev = 'useLayoutEffect';\n }\n warning$1(false, 'useLayoutEffect does nothing on the server, because its effect cannot ' + \"be encoded into the server renderer's output format. This will lead \" + 'to a mismatch between the initial, non-hydrated UI and the intended ' + 'UI. To avoid this, useLayoutEffect should only be used in ' + 'components that render exclusively on the client. ' + 'See https://fb.me/react-uselayouteffect-ssr for common fixes.');\n}\n\nfunction dispatchAction(componentIdentity, queue, action) {\n !(numberOfReRenders < RE_RENDER_LIMIT) ? invariant(false, 'Too many re-renders. React limits the number of renders to prevent an infinite loop.') : void 0;\n\n if (componentIdentity === currentlyRenderingComponent) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdate = true;\n var update = {\n action: action,\n next: null\n };\n if (renderPhaseUpdates === null) {\n renderPhaseUpdates = new Map();\n }\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);\n if (firstRenderPhaseUpdate === undefined) {\n renderPhaseUpdates.set(queue, update);\n } else {\n // Append the update to the end of the list.\n var lastRenderPhaseUpdate = firstRenderPhaseUpdate;\n while (lastRenderPhaseUpdate.next !== null) {\n lastRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n }\n lastRenderPhaseUpdate.next = update;\n }\n } else {\n // This means an update has happened after the function component has\n // returned. On the server this is a no-op. In React Fiber, the update\n // would be scheduled for a future render.\n }\n}\n\nfunction useCallback(callback, deps) {\n // Callbacks are passed as they are in the server environment.\n return callback;\n}\n\nfunction noop() {}\n\nvar currentThreadID = 0;\n\nfunction setCurrentThreadID(threadID) {\n currentThreadID = threadID;\n}\n\nvar Dispatcher = {\n readContext: readContext,\n useContext: useContext,\n useMemo: useMemo,\n useReducer: useReducer,\n useRef: useRef,\n useState: useState,\n useLayoutEffect: useLayoutEffect,\n useCallback: useCallback,\n // useImperativeHandle is not run in the server environment\n useImperativeHandle: noop,\n // Effects are not run in the server environment.\n useEffect: noop,\n // Debugging effect\n useDebugValue: noop\n};\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nvar Namespaces = {\n html: HTML_NAMESPACE,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n};\n\n// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n case 'math':\n return MATH_NAMESPACE;\n default:\n return HTML_NAMESPACE;\n }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE;\n }\n // By default, pass namespace below.\n return parentNamespace;\n}\n\nvar ReactDebugCurrentFrame$2 = null;\n\nvar ReactControlledValuePropTypes = {\n checkPropTypes: null\n};\n\n{\n ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n\n var hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n };\n\n var propTypes = {\n value: function (props, propName, componentName) {\n if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n };\n\n /**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\n ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n };\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\n// TODO: We can remove this if we add invariantWithStack()\n// or add stack by default to invariants where possible.\nvar HTML = '__html';\n\nvar ReactDebugCurrentFrame$3 = null;\n{\n ReactDebugCurrentFrame$3 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;\n }\n {\n !(props.suppressContentEditableWarning || !props.contentEditable || props.children == null) ? warning$1(false, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n}\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\nvar warnValidStyle = function () {};\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning$1(false, 'Unsupported style property %s. Did you mean %s?', name,\n // As Andi Smith suggests\n // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning$1(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n warning$1(false, \"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n warning$1(false, '`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n warning$1(false, '`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\nvar ariaProperties = {\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n if (hasOwnProperty$2.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (correctName == null) {\n warning$1(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n warnedProperties[name] = true;\n return true;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== correctName) {\n warning$1(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== standardName) {\n warning$1(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n warnedProperties[name] = true;\n return true;\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n warning$1(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n warning$1(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\n\nfunction validateProperties$1(type, props) {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n if (type === 'select' && props.multiple) {\n warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\n\n/**\n * Ordered list of injected plugins.\n */\n\n\n/**\n * Mapping from event name to dispatch config\n */\n\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\n\n\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\nvar possibleRegistrationNames = {};\n// Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n\n\n/**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n warning$1(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n // We can't rely on the event system being injected on the server.\n if (canUseEventSystem) {\n if (registrationNameModules.hasOwnProperty(name)) {\n return true;\n }\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n if (registrationName != null) {\n warning$1(false, 'Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n warnedProperties$1[name] = true;\n return true;\n }\n if (EVENT_NAME_REGEX.test(name)) {\n warning$1(false, 'Unknown event handler property `%s`. It will be ignored.', name);\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n warning$1(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Let the ARIA attribute hook validate ARIA attributes\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n warning$1(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n warning$1(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n warning$1(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warning$1(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED;\n\n // Known attributes should match the casing specified in the property config.\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n if (standardName !== name) {\n warning$1(false, 'Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n warning$1(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Now that we've validated casing, do not validate\n // data types for reserved props\n if (isReserved) {\n return true;\n }\n\n // Warn when a known attribute is a bad type\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n }\n\n // Warn when passing the strings 'false' or 'true' into a boolean prop\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n warning$1(false, 'Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, canUseEventSystem) {\n var unknownProps = [];\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n if (unknownProps.length === 1) {\n warning$1(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n warning$1(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n }\n};\n\nfunction validateProperties$2(type, props, canUseEventSystem) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnUnknownProperties(type, props, canUseEventSystem);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Based on reading the React.Children implementation. TODO: type this somewhere?\n\nvar toArray = React.Children.toArray;\n\n// This is only used in DEV.\n// Each entry is `this.stack` from a currently executing renderer instance.\n// (There may be more than one because ReactDOMServer is reentrant).\n// Each stack is an array of frames which may contain nested stacks of elements.\nvar currentDebugStacks = [];\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar ReactDebugCurrentFrame = void 0;\nvar prevGetCurrentStackImpl = null;\nvar getCurrentServerStackImpl = function () {\n return '';\n};\nvar describeStackFrame = function (element) {\n return '';\n};\n\nvar validatePropertiesInDevelopment = function (type, props) {};\nvar pushCurrentDebugStack = function (stack) {};\nvar pushElementToDebugStack = function (element) {};\nvar popCurrentDebugStack = function () {};\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\n{\n ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, /* canUseEventSystem */false);\n };\n\n describeStackFrame = function (element) {\n var source = element._source;\n var type = element.type;\n var name = getComponentName(type);\n var ownerName = null;\n return describeComponentFrame(name, source, ownerName);\n };\n\n pushCurrentDebugStack = function (stack) {\n currentDebugStacks.push(stack);\n\n if (currentDebugStacks.length === 1) {\n // We are entering a server renderer.\n // Remember the previous (e.g. client) global stack implementation.\n prevGetCurrentStackImpl = ReactDebugCurrentFrame.getCurrentStack;\n ReactDebugCurrentFrame.getCurrentStack = getCurrentServerStackImpl;\n }\n };\n\n pushElementToDebugStack = function (element) {\n // For the innermost executing ReactDOMServer call,\n var stack = currentDebugStacks[currentDebugStacks.length - 1];\n // Take the innermost executing frame (e.g. <Foo>),\n var frame = stack[stack.length - 1];\n // and record that it has one more element associated with it.\n frame.debugElementStack.push(element);\n // We only need this because we tail-optimize single-element\n // children and directly handle them in an inner loop instead of\n // creating separate frames for them.\n };\n\n popCurrentDebugStack = function () {\n currentDebugStacks.pop();\n\n if (currentDebugStacks.length === 0) {\n // We are exiting the server renderer.\n // Restore the previous (e.g. client) global stack implementation.\n ReactDebugCurrentFrame.getCurrentStack = prevGetCurrentStackImpl;\n prevGetCurrentStackImpl = null;\n }\n };\n\n getCurrentServerStackImpl = function () {\n if (currentDebugStacks.length === 0) {\n // Nothing is currently rendering.\n return '';\n }\n // ReactDOMServer is reentrant so there may be multiple calls at the same time.\n // Take the frames from the innermost call which is the last in the array.\n var frames = currentDebugStacks[currentDebugStacks.length - 1];\n var stack = '';\n // Go through every frame in the stack from the innermost one.\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n // Every frame might have more than one debug element stack entry associated with it.\n // This is because single-child nesting doesn't create materialized frames.\n // Instead it would push them through `pushElementToDebugStack()`.\n var _debugElementStack = frame.debugElementStack;\n for (var ii = _debugElementStack.length - 1; ii >= 0; ii--) {\n stack += describeStackFrame(_debugElementStack[ii]);\n }\n }\n return stack;\n };\n}\n\nvar didWarnDefaultInputValue = false;\nvar didWarnDefaultChecked = false;\nvar didWarnDefaultSelectValue = false;\nvar didWarnDefaultTextareaValue = false;\nvar didWarnInvalidOptionChildren = false;\nvar didWarnAboutNoopUpdateForComponent = {};\nvar didWarnAboutBadClass = {};\nvar didWarnAboutDeprecatedWillMount = {};\nvar didWarnAboutUndefinedDerivedState = {};\nvar didWarnAboutUninitializedState = {};\nvar valuePropNames = ['value', 'defaultValue'];\nvar newlineEatingTags = {\n listing: true,\n pre: true,\n textarea: true\n};\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nfunction validateDangerousTag(tag) {\n if (!validatedTagCache.hasOwnProperty(tag)) {\n !VALID_TAG_REGEX.test(tag) ? invariant(false, 'Invalid tag: %s', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nvar styleNameCache = {};\nvar processStyleName = function (styleName) {\n if (styleNameCache.hasOwnProperty(styleName)) {\n return styleNameCache[styleName];\n }\n var result = hyphenateStyleName(styleName);\n styleNameCache[styleName] = result;\n return result;\n};\n\nfunction createMarkupForStyles(styles) {\n var serialized = '';\n var delimiter = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = styles[styleName];\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styleValue);\n }\n }\n if (styleValue != null) {\n serialized += delimiter + processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n delimiter = ';';\n }\n }\n return serialized || null;\n}\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && getComponentName(_constructor) || 'ReactClass';\n var warningKey = componentName + '.' + callerName;\n if (didWarnAboutNoopUpdateForComponent[warningKey]) {\n return;\n }\n\n warningWithoutStack$1(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op.\\n\\nPlease check the code for the %s component.', callerName, callerName, componentName);\n didWarnAboutNoopUpdateForComponent[warningKey] = true;\n }\n}\n\nfunction shouldConstruct(Component) {\n return Component.prototype && Component.prototype.isReactComponent;\n}\n\nfunction getNonChildrenInnerMarkup(props) {\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n return innerHTML.__html;\n }\n } else {\n var content = props.children;\n if (typeof content === 'string' || typeof content === 'number') {\n return escapeTextForBrowser(content);\n }\n }\n return null;\n}\n\nfunction flattenTopLevelChildren(children) {\n if (!React.isValidElement(children)) {\n return toArray(children);\n }\n var element = children;\n if (element.type !== REACT_FRAGMENT_TYPE) {\n return [element];\n }\n var fragmentChildren = element.props.children;\n if (!React.isValidElement(fragmentChildren)) {\n return toArray(fragmentChildren);\n }\n var fragmentChildElement = fragmentChildren;\n return [fragmentChildElement];\n}\n\nfunction flattenOptionChildren(children) {\n if (children === undefined || children === null) {\n return children;\n }\n var content = '';\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n content += child;\n {\n if (!didWarnInvalidOptionChildren && typeof child !== 'string' && typeof child !== 'number') {\n didWarnInvalidOptionChildren = true;\n warning$1(false, 'Only strings and numbers are supported as <option> children.');\n }\n }\n });\n return content;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar STYLE = 'style';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null,\n suppressHydrationWarning: null\n};\n\nfunction createOpenTagMarkup(tagVerbatim, tagLowercase, props, namespace, makeStaticMarkup, isRootElement) {\n var ret = '<' + tagVerbatim;\n\n for (var propKey in props) {\n if (!hasOwnProperty.call(props, propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (propKey === STYLE) {\n propValue = createMarkupForStyles(propValue);\n }\n var markup = null;\n if (isCustomComponent(tagLowercase, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (makeStaticMarkup) {\n return ret;\n }\n\n if (isRootElement) {\n ret += ' ' + createMarkupForRoot();\n }\n return ret;\n}\n\nfunction validateRenderResult(child, type) {\n if (child === undefined) {\n invariant(false, '%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.', getComponentName(type) || 'Component');\n }\n}\n\nfunction resolve(child, context, threadID) {\n while (React.isValidElement(child)) {\n // Safe because we just checked it's an element.\n var element = child;\n var Component = element.type;\n {\n pushElementToDebugStack(element);\n }\n if (typeof Component !== 'function') {\n break;\n }\n processChild(element, Component);\n }\n\n // Extra closure so queue and replace can be captured properly\n function processChild(element, Component) {\n var publicContext = processContext(Component, context, threadID);\n\n var queue = [];\n var replace = false;\n var updater = {\n isMounted: function (publicInstance) {\n return false;\n },\n enqueueForceUpdate: function (publicInstance) {\n if (queue === null) {\n warnNoop(publicInstance, 'forceUpdate');\n return null;\n }\n },\n enqueueReplaceState: function (publicInstance, completeState) {\n replace = true;\n queue = [completeState];\n },\n enqueueSetState: function (publicInstance, currentPartialState) {\n if (queue === null) {\n warnNoop(publicInstance, 'setState');\n return null;\n }\n queue.push(currentPartialState);\n }\n };\n\n var inst = void 0;\n if (shouldConstruct(Component)) {\n inst = new Component(element.props, publicContext, updater);\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n {\n if (inst.state === null || inst.state === undefined) {\n var componentName = getComponentName(Component) || 'Unknown';\n if (!didWarnAboutUninitializedState[componentName]) {\n warningWithoutStack$1(false, '`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, inst.state === null ? 'null' : 'undefined', componentName);\n didWarnAboutUninitializedState[componentName] = true;\n }\n }\n }\n\n var partialState = Component.getDerivedStateFromProps.call(null, element.props, inst.state);\n\n {\n if (partialState === undefined) {\n var _componentName = getComponentName(Component) || 'Unknown';\n if (!didWarnAboutUndefinedDerivedState[_componentName]) {\n warningWithoutStack$1(false, '%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', _componentName);\n didWarnAboutUndefinedDerivedState[_componentName] = true;\n }\n }\n }\n\n if (partialState != null) {\n inst.state = _assign({}, inst.state, partialState);\n }\n }\n } else {\n {\n if (Component.prototype && typeof Component.prototype.render === 'function') {\n var _componentName2 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutBadClass[_componentName2]) {\n warningWithoutStack$1(false, \"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', _componentName2, _componentName2);\n didWarnAboutBadClass[_componentName2] = true;\n }\n }\n }\n var componentIdentity = {};\n prepareToUseHooks(componentIdentity);\n inst = Component(element.props, publicContext, updater);\n inst = finishHooks(Component, element.props, inst, publicContext);\n\n if (inst == null || inst.render == null) {\n child = inst;\n validateRenderResult(child, Component);\n return;\n }\n }\n\n inst.props = element.props;\n inst.context = publicContext;\n inst.updater = updater;\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n if (typeof inst.UNSAFE_componentWillMount === 'function' || typeof inst.componentWillMount === 'function') {\n if (typeof inst.componentWillMount === 'function') {\n {\n if (warnAboutDeprecatedLifecycles && inst.componentWillMount.__suppressDeprecationWarning !== true) {\n var _componentName3 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutDeprecatedWillMount[_componentName3]) {\n lowPriorityWarning$1(false, '%s: componentWillMount() is deprecated and will be ' + 'removed in the next major version. Read about the motivations ' + 'behind this change: ' + 'https://fb.me/react-async-component-lifecycle-hooks' + '\\n\\n' + 'As a temporary workaround, you can rename to ' + 'UNSAFE_componentWillMount instead.', _componentName3);\n didWarnAboutDeprecatedWillMount[_componentName3] = true;\n }\n }\n }\n\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for any component with the new gDSFP.\n if (typeof Component.getDerivedStateFromProps !== 'function') {\n inst.componentWillMount();\n }\n }\n if (typeof inst.UNSAFE_componentWillMount === 'function' && typeof Component.getDerivedStateFromProps !== 'function') {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for any component with the new gDSFP.\n inst.UNSAFE_componentWillMount();\n }\n if (queue.length) {\n var oldQueue = queue;\n var oldReplace = replace;\n queue = null;\n replace = false;\n\n if (oldReplace && oldQueue.length === 1) {\n inst.state = oldQueue[0];\n } else {\n var nextState = oldReplace ? oldQueue[0] : inst.state;\n var dontMutate = true;\n for (var i = oldReplace ? 1 : 0; i < oldQueue.length; i++) {\n var partial = oldQueue[i];\n var _partialState = typeof partial === 'function' ? partial.call(inst, nextState, element.props, publicContext) : partial;\n if (_partialState != null) {\n if (dontMutate) {\n dontMutate = false;\n nextState = _assign({}, nextState, _partialState);\n } else {\n _assign(nextState, _partialState);\n }\n }\n }\n inst.state = nextState;\n }\n } else {\n queue = null;\n }\n }\n child = inst.render();\n\n {\n if (child === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n child = null;\n }\n }\n validateRenderResult(child, Component);\n\n var childContext = void 0;\n if (typeof inst.getChildContext === 'function') {\n var childContextTypes = Component.childContextTypes;\n if (typeof childContextTypes === 'object') {\n childContext = inst.getChildContext();\n for (var contextKey in childContext) {\n !(contextKey in childContextTypes) ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', getComponentName(Component) || 'Unknown', contextKey) : void 0;\n }\n } else {\n warningWithoutStack$1(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(Component) || 'Unknown');\n }\n }\n if (childContext) {\n context = _assign({}, context, childContext);\n }\n }\n return { child: child, context: context };\n}\n\nvar ReactDOMServerRenderer = function () {\n // DEV-only\n\n // TODO: type this more strictly:\n function ReactDOMServerRenderer(children, makeStaticMarkup) {\n _classCallCheck(this, ReactDOMServerRenderer);\n\n var flatChildren = flattenTopLevelChildren(children);\n\n var topFrame = {\n type: null,\n // Assume all trees start in the HTML namespace (not totally true, but\n // this is what we did historically)\n domNamespace: Namespaces.html,\n children: flatChildren,\n childIndex: 0,\n context: emptyObject,\n footer: ''\n };\n {\n topFrame.debugElementStack = [];\n }\n this.threadID = allocThreadID();\n this.stack = [topFrame];\n this.exhausted = false;\n this.currentSelectValue = null;\n this.previousWasTextNode = false;\n this.makeStaticMarkup = makeStaticMarkup;\n this.suspenseDepth = 0;\n\n // Context (new API)\n this.contextIndex = -1;\n this.contextStack = [];\n this.contextValueStack = [];\n {\n this.contextProviderStack = [];\n }\n }\n\n ReactDOMServerRenderer.prototype.destroy = function destroy() {\n if (!this.exhausted) {\n this.exhausted = true;\n this.clearProviders();\n freeThreadID(this.threadID);\n }\n };\n\n /**\n * Note: We use just two stacks regardless of how many context providers you have.\n * Providers are always popped in the reverse order to how they were pushed\n * so we always know on the way down which provider you'll encounter next on the way up.\n * On the way down, we push the current provider, and its context value *before*\n * we mutated it, onto the stacks. Therefore, on the way up, we always know which\n * provider needs to be \"restored\" to which value.\n * https://github.com/facebook/react/pull/12985#issuecomment-396301248\n */\n\n ReactDOMServerRenderer.prototype.pushProvider = function pushProvider(provider) {\n var index = ++this.contextIndex;\n var context = provider.type._context;\n var threadID = this.threadID;\n validateContextBounds(context, threadID);\n var previousValue = context[threadID];\n\n // Remember which value to restore this context to on our way up.\n this.contextStack[index] = context;\n this.contextValueStack[index] = previousValue;\n {\n // Only used for push/pop mismatch warnings.\n this.contextProviderStack[index] = provider;\n }\n\n // Mutate the current value.\n context[threadID] = provider.props.value;\n };\n\n ReactDOMServerRenderer.prototype.popProvider = function popProvider(provider) {\n var index = this.contextIndex;\n {\n !(index > -1 && provider === this.contextProviderStack[index]) ? warningWithoutStack$1(false, 'Unexpected pop.') : void 0;\n }\n\n var context = this.contextStack[index];\n var previousValue = this.contextValueStack[index];\n\n // \"Hide\" these null assignments from Flow by using `any`\n // because conceptually they are deletions--as long as we\n // promise to never access values beyond `this.contextIndex`.\n this.contextStack[index] = null;\n this.contextValueStack[index] = null;\n {\n this.contextProviderStack[index] = null;\n }\n this.contextIndex--;\n\n // Restore to the previous value we stored as we were walking down.\n // We've already verified that this context has been expanded to accommodate\n // this thread id, so we don't need to do it again.\n context[this.threadID] = previousValue;\n };\n\n ReactDOMServerRenderer.prototype.clearProviders = function clearProviders() {\n // Restore any remaining providers on the stack to previous values\n for (var index = this.contextIndex; index >= 0; index--) {\n var _context = this.contextStack[index];\n var previousValue = this.contextValueStack[index];\n _context[this.threadID] = previousValue;\n }\n };\n\n ReactDOMServerRenderer.prototype.read = function read(bytes) {\n if (this.exhausted) {\n return null;\n }\n\n var prevThreadID = currentThreadID;\n setCurrentThreadID(this.threadID);\n var prevDispatcher = ReactCurrentDispatcher.current;\n ReactCurrentDispatcher.current = Dispatcher;\n try {\n // Markup generated within <Suspense> ends up buffered until we know\n // nothing in that boundary suspended\n var out = [''];\n var suspended = false;\n while (out[0].length < bytes) {\n if (this.stack.length === 0) {\n this.exhausted = true;\n freeThreadID(this.threadID);\n break;\n }\n var frame = this.stack[this.stack.length - 1];\n if (suspended || frame.childIndex >= frame.children.length) {\n var _footer = frame.footer;\n if (_footer !== '') {\n this.previousWasTextNode = false;\n }\n this.stack.pop();\n if (frame.type === 'select') {\n this.currentSelectValue = null;\n } else if (frame.type != null && frame.type.type != null && frame.type.type.$$typeof === REACT_PROVIDER_TYPE) {\n var provider = frame.type;\n this.popProvider(provider);\n } else if (frame.type === REACT_SUSPENSE_TYPE) {\n this.suspenseDepth--;\n var buffered = out.pop();\n\n if (suspended) {\n suspended = false;\n // If rendering was suspended at this boundary, render the fallbackFrame\n var _fallbackFrame = frame.fallbackFrame;\n !_fallbackFrame ? invariant(false, 'suspense fallback not found, something is broken') : void 0;\n this.stack.push(_fallbackFrame);\n // Skip flushing output since we're switching to the fallback\n continue;\n } else {\n out[this.suspenseDepth] += buffered;\n }\n }\n\n // Flush output\n out[this.suspenseDepth] += _footer;\n continue;\n }\n var child = frame.children[frame.childIndex++];\n\n var outBuffer = '';\n {\n pushCurrentDebugStack(this.stack);\n // We're starting work on this frame, so reset its inner stack.\n frame.debugElementStack.length = 0;\n }\n try {\n outBuffer += this.render(child, frame.context, frame.domNamespace);\n } catch (err) {\n if (enableSuspenseServerRenderer && typeof err.then === 'function') {\n suspended = true;\n } else {\n throw err;\n }\n } finally {\n {\n popCurrentDebugStack();\n }\n }\n if (out.length <= this.suspenseDepth) {\n out.push('');\n }\n out[this.suspenseDepth] += outBuffer;\n }\n return out[0];\n } finally {\n ReactCurrentDispatcher.current = prevDispatcher;\n setCurrentThreadID(prevThreadID);\n }\n };\n\n ReactDOMServerRenderer.prototype.render = function render(child, context, parentNamespace) {\n if (typeof child === 'string' || typeof child === 'number') {\n var text = '' + child;\n if (text === '') {\n return '';\n }\n if (this.makeStaticMarkup) {\n return escapeTextForBrowser(text);\n }\n if (this.previousWasTextNode) {\n return '<!-- -->' + escapeTextForBrowser(text);\n }\n this.previousWasTextNode = true;\n return escapeTextForBrowser(text);\n } else {\n var nextChild = void 0;\n\n var _resolve = resolve(child, context, this.threadID);\n\n nextChild = _resolve.child;\n context = _resolve.context;\n\n if (nextChild === null || nextChild === false) {\n return '';\n } else if (!React.isValidElement(nextChild)) {\n if (nextChild != null && nextChild.$$typeof != null) {\n // Catch unexpected special types early.\n var $$typeof = nextChild.$$typeof;\n !($$typeof !== REACT_PORTAL_TYPE) ? invariant(false, 'Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render.') : void 0;\n // Catch-all to prevent an infinite loop if React.Children.toArray() supports some new type.\n invariant(false, 'Unknown element-like object type: %s. This is likely a bug in React. Please file an issue.', $$typeof.toString());\n }\n var nextChildren = toArray(nextChild);\n var frame = {\n type: null,\n domNamespace: parentNamespace,\n children: nextChildren,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n frame.debugElementStack = [];\n }\n this.stack.push(frame);\n return '';\n }\n // Safe because we just checked it's an element.\n var nextElement = nextChild;\n var elementType = nextElement.type;\n\n if (typeof elementType === 'string') {\n return this.renderDOM(nextElement, context, parentNamespace);\n }\n\n switch (elementType) {\n case REACT_STRICT_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_FRAGMENT_TYPE:\n {\n var _nextChildren = toArray(nextChild.props.children);\n var _frame = {\n type: null,\n domNamespace: parentNamespace,\n children: _nextChildren,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame.debugElementStack = [];\n }\n this.stack.push(_frame);\n return '';\n }\n case REACT_SUSPENSE_TYPE:\n {\n if (enableSuspenseServerRenderer) {\n var fallback = nextChild.props.fallback;\n if (fallback === undefined) {\n // If there is no fallback, then this just behaves as a fragment.\n var _nextChildren3 = toArray(nextChild.props.children);\n var _frame3 = {\n type: null,\n domNamespace: parentNamespace,\n children: _nextChildren3,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame3.debugElementStack = [];\n }\n this.stack.push(_frame3);\n return '';\n }\n var fallbackChildren = toArray(fallback);\n var _nextChildren2 = toArray(nextChild.props.children);\n var _fallbackFrame2 = {\n type: null,\n domNamespace: parentNamespace,\n children: fallbackChildren,\n childIndex: 0,\n context: context,\n footer: '',\n out: ''\n };\n var _frame2 = {\n fallbackFrame: _fallbackFrame2,\n type: REACT_SUSPENSE_TYPE,\n domNamespace: parentNamespace,\n children: _nextChildren2,\n childIndex: 0,\n context: context,\n footer: '<!--/$-->'\n };\n {\n _frame2.debugElementStack = [];\n _fallbackFrame2.debugElementStack = [];\n }\n this.stack.push(_frame2);\n this.suspenseDepth++;\n return '<!--$-->';\n } else {\n invariant(false, 'ReactDOMServer does not yet support Suspense.');\n }\n }\n // eslint-disable-next-line-no-fallthrough\n default:\n break;\n }\n if (typeof elementType === 'object' && elementType !== null) {\n switch (elementType.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n {\n var element = nextChild;\n var _nextChildren4 = void 0;\n var componentIdentity = {};\n prepareToUseHooks(componentIdentity);\n _nextChildren4 = elementType.render(element.props, element.ref);\n _nextChildren4 = finishHooks(elementType.render, element.props, _nextChildren4, element.ref);\n _nextChildren4 = toArray(_nextChildren4);\n var _frame4 = {\n type: null,\n domNamespace: parentNamespace,\n children: _nextChildren4,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame4.debugElementStack = [];\n }\n this.stack.push(_frame4);\n return '';\n }\n case REACT_MEMO_TYPE:\n {\n var _element = nextChild;\n var _nextChildren5 = [React.createElement(elementType.type, _assign({ ref: _element.ref }, _element.props))];\n var _frame5 = {\n type: null,\n domNamespace: parentNamespace,\n children: _nextChildren5,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame5.debugElementStack = [];\n }\n this.stack.push(_frame5);\n return '';\n }\n case REACT_PROVIDER_TYPE:\n {\n var provider = nextChild;\n var nextProps = provider.props;\n var _nextChildren6 = toArray(nextProps.children);\n var _frame6 = {\n type: provider,\n domNamespace: parentNamespace,\n children: _nextChildren6,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame6.debugElementStack = [];\n }\n\n this.pushProvider(provider);\n\n this.stack.push(_frame6);\n return '';\n }\n case REACT_CONTEXT_TYPE:\n {\n var reactContext = nextChild.type;\n // The logic below for Context differs depending on PROD or DEV mode. In\n // DEV mode, we create a separate object for Context.Consumer that acts\n // like a proxy to Context. This proxy object adds unnecessary code in PROD\n // so we use the old behaviour (Context.Consumer references Context) to\n // reduce size and overhead. The separate object references context via\n // a property called \"_context\", which also gives us the ability to check\n // in DEV mode if this property exists or not and warn if it does not.\n {\n if (reactContext._context === undefined) {\n // This may be because it's a Context (rather than a Consumer).\n // Or it may be because it's older React where they're the same thing.\n // We only want to warn if we're sure it's a new React.\n if (reactContext !== reactContext.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n warning$1(false, 'Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n }\n } else {\n reactContext = reactContext._context;\n }\n }\n var _nextProps = nextChild.props;\n var threadID = this.threadID;\n validateContextBounds(reactContext, threadID);\n var nextValue = reactContext[threadID];\n\n var _nextChildren7 = toArray(_nextProps.children(nextValue));\n var _frame7 = {\n type: nextChild,\n domNamespace: parentNamespace,\n children: _nextChildren7,\n childIndex: 0,\n context: context,\n footer: ''\n };\n {\n _frame7.debugElementStack = [];\n }\n this.stack.push(_frame7);\n return '';\n }\n case REACT_LAZY_TYPE:\n invariant(false, 'ReactDOMServer does not yet support lazy-loaded components.');\n }\n }\n\n var info = '';\n {\n var owner = nextElement._owner;\n if (elementType === undefined || typeof elementType === 'object' && elementType !== null && Object.keys(elementType).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n }\n var ownerName = owner ? getComponentName(owner) : null;\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', elementType == null ? elementType : typeof elementType, info);\n }\n };\n\n ReactDOMServerRenderer.prototype.renderDOM = function renderDOM(element, context, parentNamespace) {\n var tag = element.type.toLowerCase();\n\n var namespace = parentNamespace;\n if (parentNamespace === Namespaces.html) {\n namespace = getIntrinsicNamespace(tag);\n }\n\n {\n if (namespace === Namespaces.html) {\n // Should this check be gated by parent namespace? Not sure we want to\n // allow <SVG> or <mATH>.\n !(tag === element.type) ? warning$1(false, '<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', element.type) : void 0;\n }\n }\n\n validateDangerousTag(tag);\n\n var props = element.props;\n if (tag === 'input') {\n {\n ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnDefaultChecked) {\n warning$1(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', 'A component', props.type);\n didWarnDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultInputValue) {\n warning$1(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', 'A component', props.type);\n didWarnDefaultInputValue = true;\n }\n }\n\n props = _assign({\n type: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: props.value != null ? props.value : props.defaultValue,\n checked: props.checked != null ? props.checked : props.defaultChecked\n });\n } else if (tag === 'textarea') {\n {\n ReactControlledValuePropTypes.checkPropTypes('textarea', props);\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultTextareaValue) {\n warning$1(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n didWarnDefaultTextareaValue = true;\n }\n }\n\n var initialValue = props.value;\n if (initialValue == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var textareaChildren = props.children;\n if (textareaChildren != null) {\n {\n warning$1(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n !(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;\n if (Array.isArray(textareaChildren)) {\n !(textareaChildren.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;\n textareaChildren = textareaChildren[0];\n }\n\n defaultValue = '' + textareaChildren;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n props = _assign({}, props, {\n value: undefined,\n children: '' + initialValue\n });\n } else if (tag === 'select') {\n {\n ReactControlledValuePropTypes.checkPropTypes('select', props);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n warning$1(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.', propName);\n } else if (!props.multiple && isArray) {\n warning$1(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.', propName);\n }\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultSelectValue) {\n warning$1(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n didWarnDefaultSelectValue = true;\n }\n }\n this.currentSelectValue = props.value != null ? props.value : props.defaultValue;\n props = _assign({}, props, {\n value: undefined\n });\n } else if (tag === 'option') {\n var selected = null;\n var selectValue = this.currentSelectValue;\n var optionChildren = flattenOptionChildren(props.children);\n if (selectValue != null) {\n var value = void 0;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = optionChildren;\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var j = 0; j < selectValue.length; j++) {\n if ('' + selectValue[j] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n\n props = _assign({\n selected: undefined,\n children: undefined\n }, props, {\n selected: selected,\n children: optionChildren\n });\n }\n }\n\n {\n validatePropertiesInDevelopment(tag, props);\n }\n\n assertValidProps(tag, props);\n\n var out = createOpenTagMarkup(element.type, tag, props, namespace, this.makeStaticMarkup, this.stack.length === 1);\n var footer = '';\n if (omittedCloseTags.hasOwnProperty(tag)) {\n out += '/>';\n } else {\n out += '>';\n footer = '</' + element.type + '>';\n }\n var children = void 0;\n var innerMarkup = getNonChildrenInnerMarkup(props);\n if (innerMarkup != null) {\n children = [];\n if (newlineEatingTags[tag] && innerMarkup.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n out += '\\n';\n }\n out += innerMarkup;\n } else {\n children = toArray(props.children);\n }\n var frame = {\n domNamespace: getChildNamespace(parentNamespace, element.type),\n type: tag,\n children: children,\n childIndex: 0,\n context: context,\n footer: footer\n };\n {\n frame.debugElementStack = [];\n }\n this.stack.push(frame);\n this.previousWasTextNode = false;\n return out;\n };\n\n return ReactDOMServerRenderer;\n}();\n\n/**\n * Render a ReactElement to its initial HTML. This should only be used on the\n * server.\n * See https://reactjs.org/docs/react-dom-server.html#rendertostring\n */\nfunction renderToString(element) {\n var renderer = new ReactDOMServerRenderer(element, false);\n try {\n var markup = renderer.read(Infinity);\n return markup;\n } finally {\n renderer.destroy();\n }\n}\n\n/**\n * Similar to renderToString, except this doesn't create extra DOM attributes\n * such as data-react-id that React uses internally.\n * See https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup\n */\nfunction renderToStaticMarkup(element) {\n var renderer = new ReactDOMServerRenderer(element, true);\n try {\n var markup = renderer.read(Infinity);\n return markup;\n } finally {\n renderer.destroy();\n }\n}\n\nfunction renderToNodeStream() {\n invariant(false, 'ReactDOMServer.renderToNodeStream(): The streaming API is not available in the browser. Use ReactDOMServer.renderToString() instead.');\n}\n\nfunction renderToStaticNodeStream() {\n invariant(false, 'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.');\n}\n\n// Note: when changing this, also consider https://github.com/facebook/react/issues/11526\nvar ReactDOMServerBrowser = {\n renderToString: renderToString,\n renderToStaticMarkup: renderToStaticMarkup,\n renderToNodeStream: renderToNodeStream,\n renderToStaticNodeStream: renderToStaticNodeStream,\n version: ReactVersion\n};\n\nvar ReactDOMServerBrowser$1 = Object.freeze({\n\tdefault: ReactDOMServerBrowser\n});\n\nvar ReactDOMServer = ( ReactDOMServerBrowser$1 && ReactDOMServerBrowser ) || ReactDOMServerBrowser$1;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest\nvar server_browser = ReactDOMServer.default || ReactDOMServer;\n\nmodule.exports = server_browser;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define([], factory) : \"object\" == typeof exports ? exports.ReactImageLightbox = factory() : root.ReactImageLightbox = factory();\n}(\"undefined\" != typeof self ? self : this, function() {\n /******/\n return function(modules) {\n /******/\n /******/\n // The require function\n /******/\n function __webpack_require__(moduleId) {\n /******/\n /******/\n // Check if module is in cache\n /******/\n if (installedModules[moduleId]) /******/\n return installedModules[moduleId].exports;\n /******/\n // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n /******/\n l: !1,\n /******/\n exports: {}\n };\n /******/\n /******/\n // Return the exports of the module\n /******/\n /******/\n /******/\n // Execute the module function\n /******/\n /******/\n /******/\n // Flag the module as loaded\n /******/\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n module.l = !0, module.exports;\n }\n // webpackBootstrap\n /******/\n // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/\n // Load entry module and return exports\n /******/\n /******/\n /******/\n /******/\n // expose the modules object (__webpack_modules__)\n /******/\n /******/\n /******/\n // expose the module cache\n /******/\n /******/\n /******/\n // define getter function for harmony exports\n /******/\n /******/\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n /******/\n /******/\n /******/\n // Object.prototype.hasOwnProperty.call\n /******/\n /******/\n /******/\n // __webpack_public_path__\n /******/\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n __webpack_require__.d = function(exports, name, getter) {\n /******/\n __webpack_require__.o(exports, name) || /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: !1,\n /******/\n enumerable: !0,\n /******/\n get: getter\n });\n }, __webpack_require__.n = function(module) {\n /******/\n var getter = module && module.__esModule ? /******/\n function() {\n return module.default;\n } : /******/\n function() {\n return module;\n };\n /******/\n /******/\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 1);\n }([ /* 0 */\n /***/\n function(module, exports) {\n var g;\n // This works in non-strict mode\n g = function() {\n return this;\n }();\n try {\n // This works if eval is allowed (see CSP)\n g = g || Function(\"return this\")() || (0, eval)(\"this\");\n } catch (e) {\n // This works if the window reference is available\n \"object\" == typeof window && (g = window);\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 module.exports = g;\n }, /* 1 */\n /***/\n function(module, exports, __webpack_require__) {\n \"use strict\";\n module.exports = __webpack_require__(2).default;\n }, /* 2 */\n /***/\n function(module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n (function(global) {\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n return arr2;\n }\n return Array.from(arr);\n }\n function _defineProperty(obj, key, value) {\n return key in obj ? Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : obj[key] = value, obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !call || \"object\" != typeof call && \"function\" != typeof call ? self : call;\n }\n function _inherits(subClass, superClass) {\n if (\"function\" != typeof superClass && null !== superClass) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);\n }\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var _slicedToArray = function() {\n function sliceIterator(arr, i) {\n var _arr = [], _n = !0, _d = !1, _e = void 0;\n try {\n for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), \n !i || _arr.length !== i); _n = !0) ;\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n !_n && _i.return && _i.return();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function(arr, i) {\n if (Array.isArray(arr)) return arr;\n if (Symbol.iterator in Object(arr)) return sliceIterator(arr, i);\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n };\n }(), _createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, \n \"value\" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), \n Constructor;\n };\n }(), _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) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _propTypes = __webpack_require__(4), _propTypes2 = _interopRequireDefault(_propTypes), _reactModal = __webpack_require__(5), _reactModal2 = _interopRequireDefault(_reactModal), _util = __webpack_require__(6), _constant = __webpack_require__(7), _style = __webpack_require__(8), _style2 = _interopRequireDefault(_style), styles = _style2.default, ieVersion = (0, \n _util.getIEVersion)();\n ieVersion < 10 && (styles = _extends({}, styles, {\n toolbarSide: styles.toolbarSide + \" \" + styles.toolbarSideNoFlex,\n toolbarLeftSide: styles.toolbarLeftSide + \" \" + styles.toolbarLeftSideNoFlex,\n toolbarRightSide: styles.toolbarRightSide + \" \" + styles.toolbarRightSideNoFlex\n }));\n var ReactImageLightbox = function(_Component) {\n function ReactImageLightbox(props) {\n _classCallCheck(this, ReactImageLightbox);\n var _this = _possibleConstructorReturn(this, (ReactImageLightbox.__proto__ || Object.getPrototypeOf(ReactImageLightbox)).call(this, props));\n return _this.state = {\n //-----------------------------\n // Animation\n //-----------------------------\n // Lightbox is closing\n // When Lightbox is mounted, if animation is enabled it will open with the reverse of the closing animation\n isClosing: !props.animationDisabled,\n // Component parts should animate (e.g., when images are moving, or image is being zoomed)\n shouldAnimate: !1,\n //-----------------------------\n // Zoom settings\n //-----------------------------\n // Zoom level of image\n zoomLevel: _constant.MIN_ZOOM_LEVEL,\n //-----------------------------\n // Image position settings\n //-----------------------------\n // Horizontal offset from center\n offsetX: 0,\n // Vertical offset from center\n offsetY: 0,\n // image load error for srcType\n loadErrorStatus: {}\n }, _this.closeIfClickInner = _this.closeIfClickInner.bind(_this), _this.handleImageDoubleClick = _this.handleImageDoubleClick.bind(_this), \n _this.handleImageMouseWheel = _this.handleImageMouseWheel.bind(_this), _this.handleKeyInput = _this.handleKeyInput.bind(_this), \n _this.handleMouseUp = _this.handleMouseUp.bind(_this), _this.handleMouseDown = _this.handleMouseDown.bind(_this), \n _this.handleMouseMove = _this.handleMouseMove.bind(_this), _this.handleOuterMousewheel = _this.handleOuterMousewheel.bind(_this), \n _this.handleTouchStart = _this.handleTouchStart.bind(_this), _this.handleTouchMove = _this.handleTouchMove.bind(_this), \n _this.handleTouchEnd = _this.handleTouchEnd.bind(_this), _this.handlePointerEvent = _this.handlePointerEvent.bind(_this), \n _this.handleCaptionMousewheel = _this.handleCaptionMousewheel.bind(_this), _this.handleWindowResize = _this.handleWindowResize.bind(_this), \n _this.handleZoomInButtonClick = _this.handleZoomInButtonClick.bind(_this), _this.handleZoomOutButtonClick = _this.handleZoomOutButtonClick.bind(_this), \n _this.requestClose = _this.requestClose.bind(_this), _this.requestMoveNext = _this.requestMoveNext.bind(_this), \n _this.requestMovePrev = _this.requestMovePrev.bind(_this), _this;\n }\n return _inherits(ReactImageLightbox, _Component), _createClass(ReactImageLightbox, null, [ {\n key: \"isTargetMatchImage\",\n value: function(target) {\n return target && /ril-image-current/.test(target.className);\n }\n }, {\n key: \"parseMouseEvent\",\n value: function(mouseEvent) {\n return {\n id: \"mouse\",\n source: _constant.SOURCE_MOUSE,\n x: parseInt(mouseEvent.clientX, 10),\n y: parseInt(mouseEvent.clientY, 10)\n };\n }\n }, {\n key: \"parseTouchPointer\",\n value: function(touchPointer) {\n return {\n id: touchPointer.identifier,\n source: _constant.SOURCE_TOUCH,\n x: parseInt(touchPointer.clientX, 10),\n y: parseInt(touchPointer.clientY, 10)\n };\n }\n }, {\n key: \"parsePointerEvent\",\n value: function(pointerEvent) {\n return {\n id: pointerEvent.pointerId,\n source: _constant.SOURCE_POINTER,\n x: parseInt(pointerEvent.clientX, 10),\n y: parseInt(pointerEvent.clientY, 10)\n };\n }\n }, {\n key: \"getTransform\",\n value: function(_ref) {\n var _ref$x = _ref.x, x = void 0 === _ref$x ? 0 : _ref$x, _ref$y = _ref.y, y = void 0 === _ref$y ? 0 : _ref$y, _ref$zoom = _ref.zoom, zoom = void 0 === _ref$zoom ? 1 : _ref$zoom, width = _ref.width, targetWidth = _ref.targetWidth, nextX = x, isOldIE = ieVersion < 10, windowWidth = (0, \n _util.getWindowWidth)();\n width > windowWidth && (nextX += (windowWidth - width) / 2);\n var scaleFactor = zoom * (targetWidth / width);\n return isOldIE ? {\n msTransform: \"translate(\" + nextX + \"px,\" + y + \"px) scale(\" + scaleFactor + \")\"\n } : {\n transform: \"translate3d(\" + nextX + \"px,\" + y + \"px,0) scale3d(\" + scaleFactor + \",\" + scaleFactor + \",1)\"\n };\n }\n }, {\n key: \"loadStyles\",\n value: function() {\n // Insert component styles\n void 0 !== global.window && // eslint-disable-next-line no-underscore-dangle\n styles._insertCss();\n }\n } ]), _createClass(ReactImageLightbox, [ {\n key: \"componentWillMount\",\n value: function() {\n // Timeouts - always clear it before umount\n this.timeouts = [], // Current action\n this.currentAction = _constant.ACTION_NONE, // Events source\n this.eventsSource = _constant.SOURCE_ANY, // Empty pointers list\n this.pointerList = [], // Prevent inner close\n this.preventInnerClose = !1, this.preventInnerCloseTimeout = null, // Used to disable animation when changing props.mainSrc|nextSrc|prevSrc\n this.keyPressed = !1, // Used to store load state / dimensions of images\n this.imageCache = {}, // Time the last keydown event was called (used in keyboard action rate limiting)\n this.lastKeyDownTime = 0, // Used for debouncing window resize event\n this.resizeTimeout = null, // Used to determine when actions are triggered by the scroll wheel\n this.wheelActionTimeout = null, this.resetScrollTimeout = null, this.scrollX = 0, \n this.scrollY = 0, // Used in panning zoomed images\n this.moveStartX = 0, this.moveStartY = 0, this.moveStartOffsetX = 0, this.moveStartOffsetY = 0, \n // Used to swipe\n this.swipeStartX = 0, this.swipeStartY = 0, this.swipeEndX = 0, this.swipeEndY = 0, \n // Used to pinch\n this.pinchTouchList = null, this.pinchDistance = 0, // Used to differentiate between images with identical src\n this.keyCounter = 0, // Used to detect a move when all src's remain unchanged (four or more of the same image in a row)\n this.moveRequested = !1, this.props.animationDisabled || // Make opening animation play\n this.setState({\n isClosing: !1\n });\n }\n }, {\n key: \"componentDidMount\",\n value: function() {\n var _this2 = this;\n ReactImageLightbox.loadStyles(), // Prevents cross-origin errors when using a cross-origin iframe\n this.windowContext = (0, _util.getHighestSafeWindowContext)(), this.listeners = {\n resize: this.handleWindowResize,\n mouseup: this.handleMouseUp,\n touchend: this.handleTouchEnd,\n touchcancel: this.handleTouchEnd,\n pointerdown: this.handlePointerEvent,\n pointermove: this.handlePointerEvent,\n pointerup: this.handlePointerEvent,\n pointercancel: this.handlePointerEvent\n }, Object.keys(this.listeners).forEach(function(type) {\n _this2.windowContext.addEventListener(type, _this2.listeners[type]);\n }), this.loadAllImages();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function(nextProps) {\n var _this3 = this, sourcesChanged = !1, prevSrcDict = {}, nextSrcDict = {};\n this.getSrcTypes().forEach(function(srcType) {\n _this3.props[srcType.name] !== nextProps[srcType.name] && (sourcesChanged = !0, \n prevSrcDict[_this3.props[srcType.name]] = !0, nextSrcDict[nextProps[srcType.name]] = !0);\n }), (sourcesChanged || this.moveRequested) && (// Reset the loaded state for images not rendered next\n Object.keys(prevSrcDict).forEach(function(prevSrc) {\n !(prevSrc in nextSrcDict) && prevSrc in _this3.imageCache && (_this3.imageCache[prevSrc].loaded = !1);\n }), this.moveRequested = !1, // Load any new images\n this.loadAllImages(nextProps));\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function() {\n // Wait for move...\n return !this.moveRequested;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function() {\n var _this4 = this;\n this.didUnmount = !0, Object.keys(this.listeners).forEach(function(type) {\n _this4.windowContext.removeEventListener(type, _this4.listeners[type]);\n }), this.timeouts.forEach(function(tid) {\n return clearTimeout(tid);\n });\n }\n }, {\n key: \"setTimeout\",\n value: function(_setTimeout) {\n function setTimeout(_x, _x2) {\n return _setTimeout.apply(this, arguments);\n }\n return setTimeout.toString = function() {\n return _setTimeout.toString();\n }, setTimeout;\n }(function(func, time) {\n var _this5 = this, id = setTimeout(function() {\n _this5.timeouts = _this5.timeouts.filter(function(tid) {\n return tid !== id;\n }), func();\n }, time);\n return this.timeouts.push(id), id;\n })\n }, {\n key: \"setPreventInnerClose\",\n value: function() {\n var _this6 = this;\n this.preventInnerCloseTimeout && this.clearTimeout(this.preventInnerCloseTimeout), \n this.preventInnerClose = !0, this.preventInnerCloseTimeout = this.setTimeout(function() {\n _this6.preventInnerClose = !1, _this6.preventInnerCloseTimeout = null;\n }, 100);\n }\n }, {\n key: \"getBestImageForType\",\n value: function(srcType) {\n var imageSrc = this.props[srcType], fitSizes = {};\n if (this.isImageLoaded(imageSrc)) // Use full-size image if available\n fitSizes = this.getFitSizes(this.imageCache[imageSrc].width, this.imageCache[imageSrc].height); else {\n if (!this.isImageLoaded(this.props[srcType + \"Thumbnail\"])) return null;\n // Fall back to using thumbnail if the image has not been loaded\n imageSrc = this.props[srcType + \"Thumbnail\"], fitSizes = this.getFitSizes(this.imageCache[imageSrc].width, this.imageCache[imageSrc].height, !0);\n }\n return {\n src: imageSrc,\n height: this.imageCache[imageSrc].height,\n width: this.imageCache[imageSrc].width,\n targetHeight: fitSizes.height,\n targetWidth: fitSizes.width\n };\n }\n }, {\n key: \"getFitSizes\",\n value: function(width, height, stretch) {\n var boxSize = this.getLightboxRect(), maxHeight = boxSize.height - 2 * this.props.imagePadding, maxWidth = boxSize.width - 2 * this.props.imagePadding;\n return stretch || (maxHeight = Math.min(maxHeight, height), maxWidth = Math.min(maxWidth, width)), \n maxWidth / maxHeight > width / height ? {\n width: width * maxHeight / height,\n height: maxHeight\n } : {\n width: maxWidth,\n height: height * maxWidth / width\n };\n }\n }, {\n key: \"getMaxOffsets\",\n value: function() {\n var zoomLevel = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state.zoomLevel, currentImageInfo = this.getBestImageForType(\"mainSrc\");\n if (null === currentImageInfo) return {\n maxX: 0,\n minX: 0,\n maxY: 0,\n minY: 0\n };\n var boxSize = this.getLightboxRect(), zoomMultiplier = this.getZoomMultiplier(zoomLevel), maxX = 0;\n // if there is still blank space in the X dimension, don't limit except to the opposite edge\n maxX = zoomMultiplier * currentImageInfo.width - boxSize.width < 0 ? (boxSize.width - zoomMultiplier * currentImageInfo.width) / 2 : (zoomMultiplier * currentImageInfo.width - boxSize.width) / 2;\n var maxY = 0;\n // if there is still blank space in the Y dimension, don't limit except to the opposite edge\n return maxY = zoomMultiplier * currentImageInfo.height - boxSize.height < 0 ? (boxSize.height - zoomMultiplier * currentImageInfo.height) / 2 : (zoomMultiplier * currentImageInfo.height - boxSize.height) / 2, \n {\n maxX: maxX,\n maxY: maxY,\n minX: -1 * maxX,\n minY: -1 * maxY\n };\n }\n }, {\n key: \"getSrcTypes\",\n value: function() {\n return [ {\n name: \"mainSrc\",\n keyEnding: \"i\" + this.keyCounter\n }, {\n name: \"mainSrcThumbnail\",\n keyEnding: \"t\" + this.keyCounter\n }, {\n name: \"nextSrc\",\n keyEnding: \"i\" + (this.keyCounter + 1)\n }, {\n name: \"nextSrcThumbnail\",\n keyEnding: \"t\" + (this.keyCounter + 1)\n }, {\n name: \"prevSrc\",\n keyEnding: \"i\" + (this.keyCounter - 1)\n }, {\n name: \"prevSrcThumbnail\",\n keyEnding: \"t\" + (this.keyCounter - 1)\n } ];\n }\n }, {\n key: \"getZoomMultiplier\",\n value: function() {\n var zoomLevel = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state.zoomLevel;\n return Math.pow(_constant.ZOOM_RATIO, zoomLevel);\n }\n }, {\n key: \"getLightboxRect\",\n value: function() {\n return this.outerEl ? this.outerEl.getBoundingClientRect() : {\n width: (0, _util.getWindowWidth)(),\n height: (0, _util.getWindowHeight)(),\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n }\n }, {\n key: \"clearTimeout\",\n value: function(_clearTimeout) {\n function clearTimeout(_x3) {\n return _clearTimeout.apply(this, arguments);\n }\n return clearTimeout.toString = function() {\n return _clearTimeout.toString();\n }, clearTimeout;\n }(function(id) {\n this.timeouts = this.timeouts.filter(function(tid) {\n return tid !== id;\n }), clearTimeout(id);\n })\n }, {\n key: \"changeZoom\",\n value: function(zoomLevel, clientX, clientY) {\n // Ignore if zoom disabled\n if (this.props.enableZoom) {\n // Constrain zoom level to the set bounds\n var nextZoomLevel = Math.max(_constant.MIN_ZOOM_LEVEL, Math.min(_constant.MAX_ZOOM_LEVEL, zoomLevel));\n // Ignore requests that don't change the zoom level\n if (nextZoomLevel !== this.state.zoomLevel) {\n if (nextZoomLevel === _constant.MIN_ZOOM_LEVEL) // Snap back to center if zoomed all the way out\n return void this.setState({\n zoomLevel: nextZoomLevel,\n offsetX: 0,\n offsetY: 0\n });\n var imageBaseSize = this.getBestImageForType(\"mainSrc\");\n if (null !== imageBaseSize) {\n var currentZoomMultiplier = this.getZoomMultiplier(), nextZoomMultiplier = this.getZoomMultiplier(nextZoomLevel), boxRect = this.getLightboxRect(), pointerX = void 0 !== clientX ? clientX - boxRect.left : boxRect.width / 2, pointerY = void 0 !== clientY ? clientY - boxRect.top : boxRect.height / 2, currentImageOffsetX = (boxRect.width - imageBaseSize.width * currentZoomMultiplier) / 2, currentImageOffsetY = (boxRect.height - imageBaseSize.height * currentZoomMultiplier) / 2, currentImageRealOffsetX = currentImageOffsetX - this.state.offsetX, currentImageRealOffsetY = currentImageOffsetY - this.state.offsetY, currentPointerXRelativeToImage = (pointerX - currentImageRealOffsetX) / currentZoomMultiplier, currentPointerYRelativeToImage = (pointerY - currentImageRealOffsetY) / currentZoomMultiplier, nextImageRealOffsetX = pointerX - currentPointerXRelativeToImage * nextZoomMultiplier, nextImageRealOffsetY = pointerY - currentPointerYRelativeToImage * nextZoomMultiplier, nextImageOffsetX = (boxRect.width - imageBaseSize.width * nextZoomMultiplier) / 2, nextImageOffsetY = (boxRect.height - imageBaseSize.height * nextZoomMultiplier) / 2, nextOffsetX = nextImageOffsetX - nextImageRealOffsetX, nextOffsetY = nextImageOffsetY - nextImageRealOffsetY;\n // When zooming out, limit the offset so things don't get left askew\n if (this.currentAction !== _constant.ACTION_PINCH) {\n var maxOffsets = this.getMaxOffsets();\n this.state.zoomLevel > nextZoomLevel && (nextOffsetX = Math.max(maxOffsets.minX, Math.min(maxOffsets.maxX, nextOffsetX)), \n nextOffsetY = Math.max(maxOffsets.minY, Math.min(maxOffsets.maxY, nextOffsetY)));\n }\n this.setState({\n zoomLevel: nextZoomLevel,\n offsetX: nextOffsetX,\n offsetY: nextOffsetY\n });\n }\n }\n }\n }\n }, {\n key: \"closeIfClickInner\",\n value: function(event) {\n !this.preventInnerClose && event.target.className.search(/\\bril-inner\\b/) > -1 && this.requestClose(event);\n }\n }, {\n key: \"handleKeyInput\",\n value: function(event) {\n // Ignore key input during animations\n if (event.stopPropagation(), !this.isAnimating()) {\n // Allow slightly faster navigation through the images when user presses keys repeatedly\n if (\"keyup\" === event.type) return void (this.lastKeyDownTime -= this.props.keyRepeatKeyupBonus);\n var keyCode = event.which || event.keyCode, currentTime = new Date();\n if (!(currentTime.getTime() - this.lastKeyDownTime < this.props.keyRepeatLimit && keyCode !== _constant.KEYS.ESC)) switch (this.lastKeyDownTime = currentTime.getTime(), \n keyCode) {\n // ESC key closes the lightbox\n case _constant.KEYS.ESC:\n event.preventDefault(), this.requestClose(event);\n break;\n\n // Left arrow key moves to previous image\n case _constant.KEYS.LEFT_ARROW:\n if (!this.props.prevSrc) return;\n event.preventDefault(), this.keyPressed = !0, this.requestMovePrev(event);\n break;\n\n // Right arrow key moves to next image\n case _constant.KEYS.RIGHT_ARROW:\n if (!this.props.nextSrc) return;\n event.preventDefault(), this.keyPressed = !0, this.requestMoveNext(event);\n }\n }\n }\n }, {\n key: \"handleOuterMousewheel\",\n value: function(event) {\n var _this7 = this;\n // Prevent scrolling of the background\n event.preventDefault(), event.stopPropagation();\n var xThreshold = _constant.WHEEL_MOVE_X_THRESHOLD, actionDelay = 0;\n // Prevent rapid-fire zoom behavior\n if (this.clearTimeout(this.resetScrollTimeout), this.resetScrollTimeout = this.setTimeout(function() {\n _this7.scrollX = 0, _this7.scrollY = 0;\n }, 300), null === this.wheelActionTimeout && !this.isAnimating()) {\n if (Math.abs(event.deltaY) < Math.abs(event.deltaX)) {\n // handle horizontal scrolls with image moves\n this.scrollY = 0, this.scrollX += event.deltaX;\n var bigLeapX = xThreshold / 2;\n // If the scroll amount has accumulated sufficiently, or a large leap was taken\n this.scrollX >= xThreshold || event.deltaX >= bigLeapX ? (// Scroll right moves to next\n this.requestMoveNext(event), actionDelay = 500, this.scrollX = 0) : (this.scrollX <= -1 * xThreshold || event.deltaX <= -1 * bigLeapX) && (// Scroll left moves to previous\n this.requestMovePrev(event), actionDelay = 500, this.scrollX = 0);\n }\n // Allow successive actions after the set delay\n 0 !== actionDelay && (this.wheelActionTimeout = this.setTimeout(function() {\n _this7.wheelActionTimeout = null;\n }, actionDelay));\n }\n }\n }, {\n key: \"handleImageMouseWheel\",\n value: function(event) {\n event.preventDefault();\n var yThreshold = _constant.WHEEL_MOVE_Y_THRESHOLD;\n if (Math.abs(event.deltaY) >= Math.abs(event.deltaX)) {\n // If the vertical scroll amount was large enough, perform a zoom\n if (event.stopPropagation(), Math.abs(event.deltaY) < yThreshold) return;\n this.scrollX = 0, this.scrollY += event.deltaY, this.changeZoom(this.state.zoomLevel - event.deltaY, event.clientX, event.clientY);\n }\n }\n }, {\n key: \"handleImageDoubleClick\",\n value: function(event) {\n this.state.zoomLevel > _constant.MIN_ZOOM_LEVEL ? // A double click when zoomed in zooms all the way out\n this.changeZoom(_constant.MIN_ZOOM_LEVEL, event.clientX, event.clientY) : // A double click when zoomed all the way out zooms in\n this.changeZoom(this.state.zoomLevel + _constant.ZOOM_BUTTON_INCREMENT_SIZE, event.clientX, event.clientY);\n }\n }, {\n key: \"shouldHandleEvent\",\n value: function(source) {\n if (this.eventsSource === source) return !0;\n if (this.eventsSource === _constant.SOURCE_ANY) return this.eventsSource = source, \n !0;\n switch (source) {\n case _constant.SOURCE_MOUSE:\n return !1;\n\n case _constant.SOURCE_TOUCH:\n return this.eventsSource = _constant.SOURCE_TOUCH, this.filterPointersBySource(), \n !0;\n\n case _constant.SOURCE_POINTER:\n return this.eventsSource === _constant.SOURCE_MOUSE && (this.eventsSource = _constant.SOURCE_POINTER, \n this.filterPointersBySource(), !0);\n\n default:\n return !1;\n }\n }\n }, {\n key: \"addPointer\",\n value: function(pointer) {\n this.pointerList.push(pointer);\n }\n }, {\n key: \"removePointer\",\n value: function(pointer) {\n this.pointerList = this.pointerList.filter(function(_ref2) {\n return _ref2.id !== pointer.id;\n });\n }\n }, {\n key: \"filterPointersBySource\",\n value: function() {\n var _this8 = this;\n this.pointerList = this.pointerList.filter(function(_ref3) {\n return _ref3.source === _this8.eventsSource;\n });\n }\n }, {\n key: \"handleMouseDown\",\n value: function(event) {\n this.shouldHandleEvent(_constant.SOURCE_MOUSE) && ReactImageLightbox.isTargetMatchImage(event.target) && (this.addPointer(ReactImageLightbox.parseMouseEvent(event)), \n this.multiPointerStart(event));\n }\n }, {\n key: \"handleMouseMove\",\n value: function(event) {\n this.shouldHandleEvent(_constant.SOURCE_MOUSE) && this.multiPointerMove(event, [ ReactImageLightbox.parseMouseEvent(event) ]);\n }\n }, {\n key: \"handleMouseUp\",\n value: function(event) {\n this.shouldHandleEvent(_constant.SOURCE_MOUSE) && (this.removePointer(ReactImageLightbox.parseMouseEvent(event)), \n this.multiPointerEnd(event));\n }\n }, {\n key: \"handlePointerEvent\",\n value: function(event) {\n if (this.shouldHandleEvent(_constant.SOURCE_POINTER)) switch (event.type) {\n case \"pointerdown\":\n ReactImageLightbox.isTargetMatchImage(event.target) && (this.addPointer(ReactImageLightbox.parsePointerEvent(event)), \n this.multiPointerStart(event));\n break;\n\n case \"pointermove\":\n this.multiPointerMove(event, [ ReactImageLightbox.parsePointerEvent(event) ]);\n break;\n\n case \"pointerup\":\n case \"pointercancel\":\n this.removePointer(ReactImageLightbox.parsePointerEvent(event)), this.multiPointerEnd(event);\n }\n }\n }, {\n key: \"handleTouchStart\",\n value: function(event) {\n var _this9 = this;\n this.shouldHandleEvent(_constant.SOURCE_TOUCH) && ReactImageLightbox.isTargetMatchImage(event.target) && ([].forEach.call(event.changedTouches, function(eventTouch) {\n return _this9.addPointer(ReactImageLightbox.parseTouchPointer(eventTouch));\n }), this.multiPointerStart(event));\n }\n }, {\n key: \"handleTouchMove\",\n value: function(event) {\n this.shouldHandleEvent(_constant.SOURCE_TOUCH) && this.multiPointerMove(event, [].map.call(event.changedTouches, function(eventTouch) {\n return ReactImageLightbox.parseTouchPointer(eventTouch);\n }));\n }\n }, {\n key: \"handleTouchEnd\",\n value: function(event) {\n var _this10 = this;\n this.shouldHandleEvent(_constant.SOURCE_TOUCH) && ([].map.call(event.changedTouches, function(touch) {\n return _this10.removePointer(ReactImageLightbox.parseTouchPointer(touch));\n }), this.multiPointerEnd(event));\n }\n }, {\n key: \"decideMoveOrSwipe\",\n value: function(pointer) {\n this.state.zoomLevel <= _constant.MIN_ZOOM_LEVEL ? this.handleSwipeStart(pointer) : this.handleMoveStart(pointer);\n }\n }, {\n key: \"multiPointerStart\",\n value: function(event) {\n switch (this.handleEnd(null), this.pointerList.length) {\n case 1:\n event.preventDefault(), this.decideMoveOrSwipe(this.pointerList[0]);\n break;\n\n case 2:\n event.preventDefault(), this.handlePinchStart(this.pointerList);\n }\n }\n }, {\n key: \"multiPointerMove\",\n value: function(event, pointerList) {\n switch (this.currentAction) {\n case _constant.ACTION_MOVE:\n event.preventDefault(), this.handleMove(pointerList[0]);\n break;\n\n case _constant.ACTION_SWIPE:\n event.preventDefault(), this.handleSwipe(pointerList[0]);\n break;\n\n case _constant.ACTION_PINCH:\n event.preventDefault(), this.handlePinch(pointerList);\n }\n }\n }, {\n key: \"multiPointerEnd\",\n value: function(event) {\n switch (this.currentAction !== _constant.ACTION_NONE && (this.setPreventInnerClose(), \n this.handleEnd(event)), this.pointerList.length) {\n case 0:\n this.eventsSource = _constant.SOURCE_ANY;\n break;\n\n case 1:\n event.preventDefault(), this.decideMoveOrSwipe(this.pointerList[0]);\n break;\n\n case 2:\n event.preventDefault(), this.handlePinchStart(this.pointerList);\n }\n }\n }, {\n key: \"handleEnd\",\n value: function(event) {\n switch (this.currentAction) {\n case _constant.ACTION_MOVE:\n this.handleMoveEnd(event);\n break;\n\n case _constant.ACTION_SWIPE:\n this.handleSwipeEnd(event);\n break;\n\n case _constant.ACTION_PINCH:\n this.handlePinchEnd(event);\n }\n }\n }, {\n key: \"handleMoveStart\",\n value: function(_ref4) {\n var clientX = _ref4.x, clientY = _ref4.y;\n this.props.enableZoom && (this.currentAction = _constant.ACTION_MOVE, this.moveStartX = clientX, \n this.moveStartY = clientY, this.moveStartOffsetX = this.state.offsetX, this.moveStartOffsetY = this.state.offsetY);\n }\n }, {\n key: \"handleMove\",\n value: function(_ref5) {\n var clientX = _ref5.x, clientY = _ref5.y, newOffsetX = this.moveStartX - clientX + this.moveStartOffsetX, newOffsetY = this.moveStartY - clientY + this.moveStartOffsetY;\n this.state.offsetX === newOffsetX && this.state.offsetY === newOffsetY || this.setState({\n offsetX: newOffsetX,\n offsetY: newOffsetY\n });\n }\n }, {\n key: \"handleMoveEnd\",\n value: function() {\n var _this11 = this;\n this.currentAction = _constant.ACTION_NONE, this.moveStartX = 0, this.moveStartY = 0, \n this.moveStartOffsetX = 0, this.moveStartOffsetY = 0;\n // Snap image back into frame if outside max offset range\n var maxOffsets = this.getMaxOffsets(), nextOffsetX = Math.max(maxOffsets.minX, Math.min(maxOffsets.maxX, this.state.offsetX)), nextOffsetY = Math.max(maxOffsets.minY, Math.min(maxOffsets.maxY, this.state.offsetY));\n nextOffsetX === this.state.offsetX && nextOffsetY === this.state.offsetY || (this.setState({\n offsetX: nextOffsetX,\n offsetY: nextOffsetY,\n shouldAnimate: !0\n }), this.setTimeout(function() {\n _this11.setState({\n shouldAnimate: !1\n });\n }, this.props.animationDuration));\n }\n }, {\n key: \"handleSwipeStart\",\n value: function(_ref6) {\n var clientX = _ref6.x, clientY = _ref6.y;\n this.currentAction = _constant.ACTION_SWIPE, this.swipeStartX = clientX, this.swipeStartY = clientY, \n this.swipeEndX = clientX, this.swipeEndY = clientY;\n }\n }, {\n key: \"handleSwipe\",\n value: function(_ref7) {\n var clientX = _ref7.x, clientY = _ref7.y;\n this.swipeEndX = clientX, this.swipeEndY = clientY;\n }\n }, {\n key: \"handleSwipeEnd\",\n value: function(event) {\n var xDiff = this.swipeEndX - this.swipeStartX, xDiffAbs = Math.abs(xDiff), yDiffAbs = Math.abs(this.swipeEndY - this.swipeStartY);\n if (this.currentAction = _constant.ACTION_NONE, this.swipeStartX = 0, this.swipeStartY = 0, \n this.swipeEndX = 0, this.swipeEndY = 0, !(!event || this.isAnimating() || xDiffAbs < 1.5 * yDiffAbs)) {\n if (xDiffAbs < _constant.MIN_SWIPE_DISTANCE) {\n if (xDiffAbs < this.getLightboxRect().width / 4) return;\n }\n xDiff > 0 && this.props.prevSrc ? (event.preventDefault(), this.requestMovePrev()) : xDiff < 0 && this.props.nextSrc && (event.preventDefault(), \n this.requestMoveNext());\n }\n }\n }, {\n key: \"calculatePinchDistance\",\n value: function() {\n var _ref8 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.pinchTouchList, _ref9 = _slicedToArray(_ref8, 2), a = _ref9[0], b = _ref9[1];\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\n }\n }, {\n key: \"calculatePinchCenter\",\n value: function() {\n var _ref10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.pinchTouchList, _ref11 = _slicedToArray(_ref10, 2), a = _ref11[0], b = _ref11[1];\n return {\n x: a.x - (a.x - b.x) / 2,\n y: a.y - (a.y - b.y) / 2\n };\n }\n }, {\n key: \"handlePinchStart\",\n value: function(pointerList) {\n this.props.enableZoom && (this.currentAction = _constant.ACTION_PINCH, this.pinchTouchList = pointerList.map(function(_ref12) {\n return {\n id: _ref12.id,\n x: _ref12.x,\n y: _ref12.y\n };\n }), this.pinchDistance = this.calculatePinchDistance());\n }\n }, {\n key: \"handlePinch\",\n value: function(pointerList) {\n this.pinchTouchList = this.pinchTouchList.map(function(oldPointer) {\n for (var i = 0; i < pointerList.length; i += 1) if (pointerList[i].id === oldPointer.id) return pointerList[i];\n return oldPointer;\n });\n var newDistance = this.calculatePinchDistance(), zoomLevel = this.state.zoomLevel + newDistance - this.pinchDistance;\n this.pinchDistance = newDistance;\n var _calculatePinchCenter = this.calculatePinchCenter(this.pinchTouchList), clientX = _calculatePinchCenter.x, clientY = _calculatePinchCenter.y;\n this.changeZoom(zoomLevel, clientX, clientY);\n }\n }, {\n key: \"handlePinchEnd\",\n value: function() {\n this.currentAction = _constant.ACTION_NONE, this.pinchTouchList = null, this.pinchDistance = 0;\n }\n }, {\n key: \"handleWindowResize\",\n value: function() {\n this.clearTimeout(this.resizeTimeout), this.resizeTimeout = this.setTimeout(this.forceUpdate.bind(this), 100);\n }\n }, {\n key: \"handleZoomInButtonClick\",\n value: function() {\n this.changeZoom(this.state.zoomLevel + _constant.ZOOM_BUTTON_INCREMENT_SIZE);\n }\n }, {\n key: \"handleZoomOutButtonClick\",\n value: function() {\n this.changeZoom(this.state.zoomLevel - _constant.ZOOM_BUTTON_INCREMENT_SIZE);\n }\n }, {\n key: \"handleCaptionMousewheel\",\n value: function(event) {\n if (event.stopPropagation(), this.caption) {\n var _caption$getBoundingC = this.caption.getBoundingClientRect(), height = _caption$getBoundingC.height, _caption = this.caption, scrollHeight = _caption.scrollHeight, scrollTop = _caption.scrollTop;\n (event.deltaY > 0 && height + scrollTop >= scrollHeight || event.deltaY < 0 && scrollTop <= 0) && event.preventDefault();\n }\n }\n }, {\n key: \"isAnimating\",\n value: function() {\n return this.state.shouldAnimate || this.state.isClosing;\n }\n }, {\n key: \"isImageLoaded\",\n value: function(imageSrc) {\n return imageSrc && imageSrc in this.imageCache && this.imageCache[imageSrc].loaded;\n }\n }, {\n key: \"loadImage\",\n value: function(srcType, imageSrc, done) {\n var _this12 = this;\n // Return the image info if it is already cached\n if (this.isImageLoaded(imageSrc)) return void this.setTimeout(function() {\n done();\n }, 1);\n var inMemoryImage = new global.Image();\n this.props.imageCrossOrigin && (inMemoryImage.crossOrigin = this.props.imageCrossOrigin), \n inMemoryImage.onerror = function(errorEvent) {\n _this12.props.onImageLoadError(imageSrc, srcType, errorEvent), // failed to load so set the state loadErrorStatus\n _this12.setState(function(prevState) {\n return {\n loadErrorStatus: _extends({}, prevState.loadErrorStatus, _defineProperty({}, srcType, !0))\n };\n }), done(errorEvent);\n }, inMemoryImage.onload = function() {\n _this12.props.onImageLoad(imageSrc, srcType, inMemoryImage), _this12.imageCache[imageSrc] = {\n loaded: !0,\n width: inMemoryImage.width,\n height: inMemoryImage.height\n }, done();\n }, inMemoryImage.src = imageSrc;\n }\n }, {\n key: \"loadAllImages\",\n value: function() {\n var _this13 = this, props = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props, generateLoadDoneCallback = function(srcType, imageSrc) {\n return function(err) {\n // Give up showing image on error\n err || _this13.props[srcType] !== imageSrc || _this13.didUnmount || // Force rerender with the new image\n _this13.forceUpdate();\n };\n };\n // Load the images\n this.getSrcTypes().forEach(function(srcType) {\n var type = srcType.name;\n // there is no error when we try to load it initially\n props[type] && _this13.state.loadErrorStatus[type] && _this13.setState(function(prevState) {\n return {\n loadErrorStatus: _extends({}, prevState.loadErrorStatus, _defineProperty({}, type, !1))\n };\n }), // Load unloaded images\n props[type] && !_this13.isImageLoaded(props[type]) && _this13.loadImage(type, props[type], generateLoadDoneCallback(type, props[type]));\n });\n }\n }, {\n key: \"requestClose\",\n value: function(event) {\n var _this14 = this, closeLightbox = function() {\n return _this14.props.onCloseRequest(event);\n };\n if (this.props.animationDisabled || \"keydown\" === event.type && !this.props.animationOnKeyInput) // No animation\n return void closeLightbox();\n // With animation\n // Start closing animation\n this.setState({\n isClosing: !0\n }), // Perform the actual closing at the end of the animation\n this.setTimeout(closeLightbox, this.props.animationDuration);\n }\n }, {\n key: \"requestMove\",\n value: function(direction, event) {\n var _this15 = this, nextState = {\n zoomLevel: _constant.MIN_ZOOM_LEVEL,\n offsetX: 0,\n offsetY: 0\n };\n // Enable animated states\n this.props.animationDisabled || this.keyPressed && !this.props.animationOnKeyInput || (nextState.shouldAnimate = !0, \n this.setTimeout(function() {\n return _this15.setState({\n shouldAnimate: !1\n });\n }, this.props.animationDuration)), this.keyPressed = !1, this.moveRequested = !0, \n \"prev\" === direction ? (this.keyCounter -= 1, this.setState(nextState), this.props.onMovePrevRequest(event)) : (this.keyCounter += 1, \n this.setState(nextState), this.props.onMoveNextRequest(event));\n }\n }, {\n key: \"requestMoveNext\",\n value: function(event) {\n this.requestMove(\"next\", event);\n }\n }, {\n key: \"requestMovePrev\",\n value: function(event) {\n this.requestMove(\"prev\", event);\n }\n }, {\n key: \"render\",\n value: function() {\n var _this16 = this, _props = this.props, animationDisabled = _props.animationDisabled, animationDuration = _props.animationDuration, clickOutsideToClose = _props.clickOutsideToClose, discourageDownloads = _props.discourageDownloads, enableZoom = _props.enableZoom, imageTitle = _props.imageTitle, nextSrc = _props.nextSrc, prevSrc = _props.prevSrc, toolbarButtons = _props.toolbarButtons, reactModalStyle = _props.reactModalStyle, _onAfterOpen = _props.onAfterOpen, imageCrossOrigin = _props.imageCrossOrigin, reactModalProps = _props.reactModalProps, _state = this.state, zoomLevel = _state.zoomLevel, offsetX = _state.offsetX, offsetY = _state.offsetY, isClosing = _state.isClosing, loadErrorStatus = _state.loadErrorStatus, boxSize = this.getLightboxRect(), transitionStyle = {};\n // Transition settings for sliding animations\n !animationDisabled && this.isAnimating() && (transitionStyle = _extends({}, transitionStyle, {\n transition: \"transform \" + animationDuration + \"ms\"\n }));\n // Key endings to differentiate between images with the same src\n var keyEndings = {};\n this.getSrcTypes().forEach(function(_ref13) {\n var name = _ref13.name, keyEnding = _ref13.keyEnding;\n keyEndings[name] = keyEnding;\n });\n // Images to be displayed\n var images = [], addImage = function(srcType, imageClass, transforms) {\n // Ignore types that have no source defined for their full size image\n if (_this16.props[srcType]) {\n var bestImageInfo = _this16.getBestImageForType(srcType), imageStyle = _extends({}, transitionStyle, ReactImageLightbox.getTransform(_extends({}, transforms, bestImageInfo)));\n zoomLevel > _constant.MIN_ZOOM_LEVEL && (imageStyle.cursor = \"move\");\n // when error on one of the loads then push custom error stuff\n if (null === bestImageInfo && function(object) {\n return Object.keys(object).some(function(key) {\n return object[key];\n });\n }(loadErrorStatus)) return void images.push(_react2.default.createElement(\"div\", {\n className: imageClass + \" \" + styles.image + \" ril-errored\",\n style: imageStyle,\n key: _this16.props[srcType] + keyEndings[srcType]\n }, _react2.default.createElement(\"div\", {\n className: styles.errorContainer\n }, _this16.props.imageLoadErrorMessage)));\n if (null === bestImageInfo) {\n var loadingIcon = ieVersion < 10 ? _react2.default.createElement(\"div\", {\n className: styles.loadingContainer__icon\n }, (0, _util.translate)(\"Loading...\")) : _react2.default.createElement(\"div\", {\n className: \"ril-loading-circle \" + styles.loadingCircle + \" \" + styles.loadingContainer__icon\n }, [].concat(_toConsumableArray(new Array(12))).map(function(_, index) {\n return _react2.default.createElement(\"div\", {\n // eslint-disable-next-line react/no-array-index-key\n key: index,\n className: \"ril-loading-circle-point \" + styles.loadingCirclePoint\n });\n }));\n // Fall back to loading icon if the thumbnail has not been loaded\n return void images.push(_react2.default.createElement(\"div\", {\n className: imageClass + \" \" + styles.image + \" ril-not-loaded\",\n style: imageStyle,\n key: _this16.props[srcType] + keyEndings[srcType]\n }, _react2.default.createElement(\"div\", {\n className: styles.loadingContainer\n }, loadingIcon)));\n }\n var imageSrc = bestImageInfo.src;\n discourageDownloads ? (imageStyle.backgroundImage = \"url('\" + imageSrc + \"')\", images.push(_react2.default.createElement(\"div\", {\n className: imageClass + \" \" + styles.image + \" \" + styles.imageDiscourager,\n onDoubleClick: _this16.handleImageDoubleClick,\n onWheel: _this16.handleImageMouseWheel,\n style: imageStyle,\n key: imageSrc + keyEndings[srcType]\n }, _react2.default.createElement(\"div\", {\n className: \"ril-download-blocker \" + styles.downloadBlocker\n })))) : images.push(_react2.default.createElement(\"img\", _extends({}, imageCrossOrigin ? {\n crossOrigin: imageCrossOrigin\n } : {}, {\n className: imageClass + \" \" + styles.image,\n onDoubleClick: _this16.handleImageDoubleClick,\n onWheel: _this16.handleImageMouseWheel,\n onDragStart: function(e) {\n return e.preventDefault();\n },\n style: imageStyle,\n src: imageSrc,\n key: imageSrc + keyEndings[srcType],\n alt: \"string\" == typeof imageTitle ? imageTitle : (0, _util.translate)(\"Image\"),\n draggable: !1\n })));\n }\n }, zoomMultiplier = this.getZoomMultiplier();\n // Next Image (displayed on the right)\n addImage(\"nextSrc\", \"ril-image-next \" + styles.imageNext, {\n x: boxSize.width\n }), // Main Image\n addImage(\"mainSrc\", \"ril-image-current\", {\n x: -1 * offsetX,\n y: -1 * offsetY,\n zoom: zoomMultiplier\n }), // Previous Image (displayed on the left)\n addImage(\"prevSrc\", \"ril-image-prev \" + styles.imagePrev, {\n x: -1 * boxSize.width\n });\n var modalStyle = {\n overlay: _extends({\n zIndex: 1e3,\n backgroundColor: \"transparent\"\n }, reactModalStyle.overlay),\n content: _extends({\n backgroundColor: \"transparent\",\n overflow: \"hidden\",\n // Needed, otherwise keyboard shortcuts scroll the page\n border: \"none\",\n borderRadius: 0,\n padding: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }, reactModalStyle.content)\n };\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n return _react2.default.createElement(_reactModal2.default, _extends({\n isOpen: !0,\n onRequestClose: clickOutsideToClose ? this.requestClose : void 0,\n onAfterOpen: function() {\n // Focus on the div with key handlers\n _this16.outerEl && _this16.outerEl.focus(), _onAfterOpen();\n },\n style: modalStyle,\n contentLabel: (0, _util.translate)(\"Lightbox\"),\n appElement: void 0 !== global.window ? global.window.document.body : void 0\n }, reactModalProps), _react2.default.createElement(\"div\", {\n // eslint-disable-line jsx-a11y/no-static-element-interactions\n // Floating modal with closing animations\n className: \"ril-outer \" + styles.outer + \" \" + styles.outerAnimating + \" \" + this.props.wrapperClassName + \" \" + (isClosing ? \"ril-closing \" + styles.outerClosing : \"\"),\n style: {\n transition: \"opacity \" + animationDuration + \"ms\",\n animationDuration: animationDuration + \"ms\",\n animationDirection: isClosing ? \"normal\" : \"reverse\"\n },\n ref: function(el) {\n _this16.outerEl = el;\n },\n onWheel: this.handleOuterMousewheel,\n onMouseMove: this.handleMouseMove,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n onTouchMove: this.handleTouchMove,\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyInput,\n onKeyUp: this.handleKeyInput\n }, _react2.default.createElement(\"div\", {\n // eslint-disable-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events\n // Image holder\n className: \"ril-inner \" + styles.inner,\n onClick: clickOutsideToClose ? this.closeIfClickInner : void 0\n }, images), prevSrc && _react2.default.createElement(\"button\", {\n // Move to previous image button\n type: \"button\",\n className: \"ril-prev-button \" + styles.navButtons + \" \" + styles.navButtonPrev,\n key: \"prev\",\n \"aria-label\": this.props.prevLabel,\n onClick: this.isAnimating() ? void 0 : this.requestMovePrev\n }), nextSrc && _react2.default.createElement(\"button\", {\n // Move to next image button\n type: \"button\",\n className: \"ril-next-button \" + styles.navButtons + \" \" + styles.navButtonNext,\n key: \"next\",\n \"aria-label\": this.props.nextLabel,\n onClick: this.isAnimating() ? void 0 : this.requestMoveNext\n }), _react2.default.createElement(\"div\", {\n // Lightbox toolbar\n className: \"ril-toolbar \" + styles.toolbar\n }, _react2.default.createElement(\"ul\", {\n className: \"ril-toolbar-left \" + styles.toolbarSide + \" \" + styles.toolbarLeftSide\n }, _react2.default.createElement(\"li\", {\n className: \"ril-toolbar__item \" + styles.toolbarItem\n }, _react2.default.createElement(\"span\", {\n className: \"ril-toolbar__item__child \" + styles.toolbarItemChild\n }, imageTitle))), _react2.default.createElement(\"ul\", {\n className: [ \"ril-toolbar-right\", styles.toolbarSide, styles.toolbarRightSide ].join(\" \")\n }, toolbarButtons && toolbarButtons.map(function(button, i) {\n return _react2.default.createElement(\"li\", {\n key: \"button_\" + (i + 1),\n className: \"ril-toolbar__item \" + styles.toolbarItem\n }, button);\n }), enableZoom && _react2.default.createElement(\"li\", {\n className: \"ril-toolbar__item \" + styles.toolbarItem\n }, _react2.default.createElement(\"button\", {\n // Lightbox zoom in button\n type: \"button\",\n key: \"zoom-in\",\n \"aria-label\": this.props.zoomInLabel,\n className: [ \"ril-zoom-in\", styles.toolbarItemChild, styles.builtinButton, styles.zoomInButton ].concat(_toConsumableArray(zoomLevel === _constant.MAX_ZOOM_LEVEL ? [ styles.builtinButtonDisabled ] : [])).join(\" \"),\n disabled: this.isAnimating() || zoomLevel === _constant.MAX_ZOOM_LEVEL,\n onClick: this.isAnimating() || zoomLevel === _constant.MAX_ZOOM_LEVEL ? void 0 : this.handleZoomInButtonClick\n })), enableZoom && _react2.default.createElement(\"li\", {\n className: \"ril-toolbar__item \" + styles.toolbarItem\n }, _react2.default.createElement(\"button\", {\n // Lightbox zoom out button\n type: \"button\",\n key: \"zoom-out\",\n \"aria-label\": this.props.zoomOutLabel,\n className: [ \"ril-zoom-out\", styles.toolbarItemChild, styles.builtinButton, styles.zoomOutButton ].concat(_toConsumableArray(zoomLevel === _constant.MIN_ZOOM_LEVEL ? [ styles.builtinButtonDisabled ] : [])).join(\" \"),\n disabled: this.isAnimating() || zoomLevel === _constant.MIN_ZOOM_LEVEL,\n onClick: this.isAnimating() || zoomLevel === _constant.MIN_ZOOM_LEVEL ? void 0 : this.handleZoomOutButtonClick\n })), _react2.default.createElement(\"li\", {\n className: \"ril-toolbar__item \" + styles.toolbarItem\n }, _react2.default.createElement(\"button\", {\n // Lightbox close button\n type: \"button\",\n key: \"close\",\n \"aria-label\": this.props.closeLabel,\n className: \"ril-close ril-toolbar__item__child \" + styles.toolbarItemChild + \" \" + styles.builtinButton + \" \" + styles.closeButton,\n onClick: this.isAnimating() ? void 0 : this.requestClose\n })))), this.props.imageCaption && _react2.default.createElement(\"div\", {\n // Image caption\n onWheel: this.handleCaptionMousewheel,\n onMouseDown: function(event) {\n return event.stopPropagation();\n },\n className: \"ril-caption \" + styles.caption,\n ref: function(el) {\n _this16.caption = el;\n }\n }, _react2.default.createElement(\"div\", {\n className: \"ril-caption-content \" + styles.captionContent\n }, this.props.imageCaption))));\n }\n } ]), ReactImageLightbox;\n }(_react.Component);\n ReactImageLightbox.propTypes = {\n //-----------------------------\n // Image sources\n //-----------------------------\n // Main display image url\n mainSrc: _propTypes2.default.string.isRequired,\n // eslint-disable-line react/no-unused-prop-types\n // Previous display image url (displayed to the left)\n // If left undefined, movePrev actions will not be performed, and the button not displayed\n prevSrc: _propTypes2.default.string,\n // Next display image url (displayed to the right)\n // If left undefined, moveNext actions will not be performed, and the button not displayed\n nextSrc: _propTypes2.default.string,\n //-----------------------------\n // Image thumbnail sources\n //-----------------------------\n // Thumbnail image url corresponding to props.mainSrc\n mainSrcThumbnail: _propTypes2.default.string,\n // eslint-disable-line react/no-unused-prop-types\n // Thumbnail image url corresponding to props.prevSrc\n prevSrcThumbnail: _propTypes2.default.string,\n // eslint-disable-line react/no-unused-prop-types\n // Thumbnail image url corresponding to props.nextSrc\n nextSrcThumbnail: _propTypes2.default.string,\n // eslint-disable-line react/no-unused-prop-types\n //-----------------------------\n // Event Handlers\n //-----------------------------\n // Close window event\n // Should change the parent state such that the lightbox is not rendered\n onCloseRequest: _propTypes2.default.func.isRequired,\n // Move to previous image event\n // Should change the parent state such that props.prevSrc becomes props.mainSrc,\n // props.mainSrc becomes props.nextSrc, etc.\n onMovePrevRequest: _propTypes2.default.func,\n // Move to next image event\n // Should change the parent state such that props.nextSrc becomes props.mainSrc,\n // props.mainSrc becomes props.prevSrc, etc.\n onMoveNextRequest: _propTypes2.default.func,\n // Called when an image fails to load\n // (imageSrc: string, srcType: string, errorEvent: object): void\n onImageLoadError: _propTypes2.default.func,\n // Called when image successfully loads\n onImageLoad: _propTypes2.default.func,\n // Open window event\n onAfterOpen: _propTypes2.default.func,\n //-----------------------------\n // Download discouragement settings\n //-----------------------------\n // Enable download discouragement (prevents [right-click -> Save Image As...])\n discourageDownloads: _propTypes2.default.bool,\n //-----------------------------\n // Animation settings\n //-----------------------------\n // Disable all animation\n animationDisabled: _propTypes2.default.bool,\n // Disable animation on actions performed with keyboard shortcuts\n animationOnKeyInput: _propTypes2.default.bool,\n // Animation duration (ms)\n animationDuration: _propTypes2.default.number,\n //-----------------------------\n // Keyboard shortcut settings\n //-----------------------------\n // Required interval of time (ms) between key actions\n // (prevents excessively fast navigation of images)\n keyRepeatLimit: _propTypes2.default.number,\n // Amount of time (ms) restored after each keyup\n // (makes rapid key presses slightly faster than holding down the key to navigate images)\n keyRepeatKeyupBonus: _propTypes2.default.number,\n //-----------------------------\n // Image info\n //-----------------------------\n // Image title\n imageTitle: _propTypes2.default.node,\n // Image caption\n imageCaption: _propTypes2.default.node,\n // Optional crossOrigin attribute\n imageCrossOrigin: _propTypes2.default.string,\n //-----------------------------\n // Lightbox style\n //-----------------------------\n // Set z-index style, etc., for the parent react-modal (format: https://github.com/reactjs/react-modal#styles )\n reactModalStyle: _propTypes2.default.shape({}),\n // Padding (px) between the edge of the window and the lightbox\n imagePadding: _propTypes2.default.number,\n wrapperClassName: _propTypes2.default.string,\n //-----------------------------\n // Other\n //-----------------------------\n // Array of custom toolbar buttons\n toolbarButtons: _propTypes2.default.arrayOf(_propTypes2.default.node),\n // When true, clicks outside of the image close the lightbox\n clickOutsideToClose: _propTypes2.default.bool,\n // Set to false to disable zoom functionality and hide zoom buttons\n enableZoom: _propTypes2.default.bool,\n // Override props set on react-modal (https://github.com/reactjs/react-modal)\n reactModalProps: _propTypes2.default.shape({}),\n // Aria-labels\n nextLabel: _propTypes2.default.string,\n prevLabel: _propTypes2.default.string,\n zoomInLabel: _propTypes2.default.string,\n zoomOutLabel: _propTypes2.default.string,\n closeLabel: _propTypes2.default.string,\n imageLoadErrorMessage: _propTypes2.default.node\n }, ReactImageLightbox.defaultProps = {\n imageTitle: null,\n imageCaption: null,\n toolbarButtons: null,\n reactModalProps: {},\n animationDisabled: !1,\n animationDuration: 300,\n animationOnKeyInput: !1,\n clickOutsideToClose: !0,\n closeLabel: \"Close lightbox\",\n discourageDownloads: !1,\n enableZoom: !0,\n imagePadding: 10,\n imageCrossOrigin: null,\n keyRepeatKeyupBonus: 40,\n keyRepeatLimit: 180,\n mainSrcThumbnail: null,\n nextLabel: \"Next image\",\n nextSrc: null,\n nextSrcThumbnail: null,\n onAfterOpen: function() {},\n onImageLoadError: function() {},\n onImageLoad: function() {},\n onMoveNextRequest: function() {},\n onMovePrevRequest: function() {},\n prevLabel: \"Previous image\",\n prevSrc: null,\n prevSrcThumbnail: null,\n reactModalStyle: {},\n wrapperClassName: \"\",\n zoomInLabel: \"Zoom in\",\n zoomOutLabel: \"Zoom out\",\n imageLoadErrorMessage: \"This image failed to load\"\n }, exports.default = ReactImageLightbox;\n }).call(exports, __webpack_require__(0));\n }, /* 3 */\n /***/\n function(module, exports) {\n module.exports = require(\"react\");\n }, /* 4 */\n /***/\n function(module, exports) {\n module.exports = require(\"prop-types\");\n }, /* 5 */\n /***/\n function(module, exports) {\n module.exports = require(\"react-modal\");\n }, /* 6 */\n /***/\n function(module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n (function(global) {\n /**\n * Get the version of Internet Explorer in use, or undefined\n *\n * @return {?number} ieVersion - IE version as an integer, or undefined if not IE\n */\n function getIEVersion() {\n if (void 0 !== global.window && void 0 !== global.window.navigator) {\n var match = global.window.navigator.userAgent.match(/(?:MSIE |Trident\\/.*; rv:)(\\d+)/);\n return match ? parseInt(match[1], 10) : void 0;\n }\n }\n /**\n * Placeholder for future translate functionality\n */\n function translate(str) {\n var replaceStrings = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\n if (!str) return \"\";\n var translated = str;\n return replaceStrings && Object.keys(replaceStrings).forEach(function(placeholder) {\n translated = translated.replace(placeholder, replaceStrings[placeholder]);\n }), translated;\n }\n function getWindowWidth() {\n return void 0 !== global.window ? global.window.innerWidth : 0;\n }\n function getWindowHeight() {\n return void 0 !== global.window ? global.window.innerHeight : 0;\n }\n // Get the highest window context that isn't cross-origin\n // (When in an iframe)\n function getHighestSafeWindowContext() {\n var self = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : global.window.self;\n // If we reached the top level, return self\n if (self === global.window.top) return self;\n var getOrigin = function(href) {\n return href.match(/(.*\\/\\/.*?)(\\/|$)/)[1];\n };\n // If parent is the same origin, we can move up one context\n // Reference: https://stackoverflow.com/a/21965342/1601953\n // If parent is the same origin, we can move up one context\n // Reference: https://stackoverflow.com/a/21965342/1601953\n return getOrigin(self.location.href) === getOrigin(self.document.referrer) ? getHighestSafeWindowContext(self.parent) : self;\n }\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n }), exports.getIEVersion = getIEVersion, exports.translate = translate, exports.getWindowWidth = getWindowWidth, \n exports.getWindowHeight = getWindowHeight, exports.getHighestSafeWindowContext = getHighestSafeWindowContext;\n }).call(exports, __webpack_require__(0));\n }, /* 7 */\n /***/\n function(module, exports, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n // Min image zoom level\n exports.MIN_ZOOM_LEVEL = 0, exports.MAX_ZOOM_LEVEL = 300, exports.ZOOM_RATIO = 1.007, \n exports.ZOOM_BUTTON_INCREMENT_SIZE = 100, exports.WHEEL_MOVE_X_THRESHOLD = 200, \n exports.WHEEL_MOVE_Y_THRESHOLD = 1, exports.KEYS = {\n ESC: 27,\n LEFT_ARROW: 37,\n RIGHT_ARROW: 39\n }, exports.ACTION_NONE = 0, exports.ACTION_MOVE = 1, exports.ACTION_SWIPE = 2, exports.ACTION_PINCH = 3, \n exports.ACTION_ROTATE = 4, exports.SOURCE_ANY = 0, exports.SOURCE_MOUSE = 1, exports.SOURCE_TOUCH = 2, \n exports.SOURCE_POINTER = 3, exports.MIN_SWIPE_DISTANCE = 200;\n }, /* 8 */\n /***/\n function(module, exports, __webpack_require__) {\n var content = __webpack_require__(9), insertCss = __webpack_require__(11);\n \"string\" == typeof content && (content = [ [ module.i, content, \"\" ] ]), module.exports = content.locals || {}, \n module.exports._getContent = function() {\n return content;\n }, module.exports._getCss = function() {\n return content.toString();\n }, module.exports._insertCss = function(options) {\n return insertCss(content, options);\n };\n }, /* 9 */\n /***/\n function(module, exports, __webpack_require__) {\n exports = module.exports = __webpack_require__(10)(!1), // imports\n // module\n exports.push([ module.i, '@-webkit-keyframes ril__closeWindow {\\n 0% {\\n opacity: 1; }\\n 100% {\\n opacity: 0; } }\\n\\n@keyframes ril__closeWindow {\\n 0% {\\n opacity: 1; }\\n 100% {\\n opacity: 0; } }\\n\\n.ril__outer {\\n background-color: rgba(0, 0, 0, 0.85);\\n outline: none;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n z-index: 1000;\\n width: 100%;\\n height: 100%;\\n -ms-content-zooming: none;\\n -ms-user-select: none;\\n -ms-touch-select: none;\\n -ms-touch-action: none;\\n touch-action: none; }\\n\\n.ril__outerClosing {\\n opacity: 0; }\\n\\n.ril__inner {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0; }\\n\\n.ril__image {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n max-width: none;\\n -ms-content-zooming: none;\\n -ms-user-select: none;\\n -ms-touch-select: none;\\n -ms-touch-action: none;\\n touch-action: none; }\\n\\n.ril__imagePrev {\\n @extends .image; }\\n\\n.ril__imageNext {\\n @extends .image; }\\n\\n.ril__imageDiscourager {\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: contain; }\\n\\n.ril__navButtons {\\n border: none;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n width: 20px;\\n height: 34px;\\n padding: 40px 30px;\\n margin: auto;\\n cursor: pointer;\\n opacity: 0.7; }\\n .ril__navButtons:hover {\\n opacity: 1; }\\n .ril__navButtons:active {\\n opacity: 0.7; }\\n\\n.ril__navButtonPrev {\\n left: 0;\\n background: rgba(0, 0, 0, 0.2) url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjM0Ij48cGF0aCBkPSJtIDE5LDMgLTIsLTIgLTE2LDE2IDE2LDE2IDEsLTEgLTE1LC0xNSAxNSwtMTUgeiIgZmlsbD0iI0ZGRiIvPjwvc3ZnPg==\") no-repeat center; }\\n\\n.ril__navButtonNext {\\n right: 0;\\n background: rgba(0, 0, 0, 0.2) url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjM0Ij48cGF0aCBkPSJtIDEsMyAyLC0yIDE2LDE2IC0xNiwxNiAtMSwtMSAxNSwtMTUgLTE1LC0xNSB6IiBmaWxsPSIjRkZGIi8+PC9zdmc+\") no-repeat center; }\\n\\n.ril__downloadBlocker {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-image: url(\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\");\\n background-size: cover; }\\n\\n.ril__caption,\\n.ril__toolbar {\\n background-color: rgba(0, 0, 0, 0.5);\\n position: absolute;\\n left: 0;\\n right: 0;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between; }\\n\\n.ril__caption {\\n bottom: 0;\\n max-height: 150px;\\n overflow: auto; }\\n\\n.ril__captionContent {\\n padding: 10px 20px;\\n color: #fff; }\\n\\n.ril__toolbar {\\n top: 0;\\n height: 50px; }\\n\\n.ril__toolbarSide {\\n height: 50px;\\n margin: 0; }\\n\\n.ril__toolbarSideNoFlex {\\n height: auto;\\n line-height: 50px;\\n max-width: 48%;\\n position: absolute;\\n top: 0;\\n bottom: 0; }\\n\\n.ril__toolbarLeftSide {\\n padding-left: 20px;\\n padding-right: 0;\\n -webkit-box-flex: 0;\\n -ms-flex: 0 1 auto;\\n flex: 0 1 auto;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.ril__toolbarLeftSideNoFlex {\\n left: 0;\\n overflow: visible; }\\n\\n.ril__toolbarRightSide {\\n padding-left: 0;\\n padding-right: 20px;\\n -webkit-box-flex: 0;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto; }\\n\\n.ril__toolbarRightSideNoFlex {\\n right: 0; }\\n\\n.ril__toolbarItem {\\n display: inline-block;\\n line-height: 50px;\\n padding: 0;\\n color: #fff;\\n font-size: 120%;\\n max-width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.ril__toolbarItemChild {\\n vertical-align: middle; }\\n\\n.ril__builtinButton {\\n width: 40px;\\n height: 35px;\\n cursor: pointer;\\n border: none;\\n opacity: 0.7; }\\n .ril__builtinButton:hover {\\n opacity: 1; }\\n .ril__builtinButton:active {\\n outline: none; }\\n\\n.ril__builtinButtonDisabled {\\n cursor: default;\\n opacity: 0.5; }\\n .ril__builtinButtonDisabled:hover {\\n opacity: 0.5; }\\n\\n.ril__closeButton {\\n background: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48cGF0aCBkPSJtIDEsMyAxLjI1LC0xLjI1IDcuNSw3LjUgNy41LC03LjUgMS4yNSwxLjI1IC03LjUsNy41IDcuNSw3LjUgLTEuMjUsMS4yNSAtNy41LC03LjUgLTcuNSw3LjUgLTEuMjUsLTEuMjUgNy41LC03LjUgLTcuNSwtNy41IHoiIGZpbGw9IiNGRkYiLz48L3N2Zz4=\") no-repeat center; }\\n\\n.ril__zoomInButton {\\n background: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PGcgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTEgMTlsNi02Ii8+PHBhdGggZD0iTTkgOGg2Ii8+PHBhdGggZD0iTTEyIDV2NiIvPjwvZz48Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+\") no-repeat center; }\\n\\n.ril__zoomOutButton {\\n background: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PGcgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTEgMTlsNi02Ii8+PHBhdGggZD0iTTkgOGg2Ii8+PC9nPjxjaXJjbGUgY3g9IjEyIiBjeT0iOCIgcj0iNyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=\") no-repeat center; }\\n\\n.ril__outerAnimating {\\n -webkit-animation-name: ril__closeWindow;\\n animation-name: ril__closeWindow; }\\n\\n@-webkit-keyframes ril__pointFade {\\n 0%,\\n 19.999%,\\n 100% {\\n opacity: 0; }\\n 20% {\\n opacity: 1; } }\\n\\n@keyframes ril__pointFade {\\n 0%,\\n 19.999%,\\n 100% {\\n opacity: 0; }\\n 20% {\\n opacity: 1; } }\\n\\n.ril__loadingCircle {\\n width: 60px;\\n height: 60px;\\n position: relative; }\\n\\n.ril__loadingCirclePoint {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n left: 0;\\n top: 0; }\\n .ril__loadingCirclePoint:before {\\n content: \\'\\';\\n display: block;\\n margin: 0 auto;\\n width: 15%;\\n height: 15%;\\n background-color: #fff;\\n border-radius: 30%;\\n -webkit-animation: ril__pointFade 1200ms infinite ease-in-out both;\\n animation: ril__pointFade 1200ms infinite ease-in-out both; }\\n .ril__loadingCirclePoint:nth-of-type(1) {\\n -webkit-transform: rotate(0deg);\\n -ms-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n .ril__loadingCirclePoint:nth-of-type(7) {\\n -webkit-transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n .ril__loadingCirclePoint:nth-of-type(1):before, .ril__loadingCirclePoint:nth-of-type(7):before {\\n -webkit-animation-delay: -1200ms;\\n animation-delay: -1200ms; }\\n .ril__loadingCirclePoint:nth-of-type(2) {\\n -webkit-transform: rotate(30deg);\\n -ms-transform: rotate(30deg);\\n transform: rotate(30deg); }\\n .ril__loadingCirclePoint:nth-of-type(8) {\\n -webkit-transform: rotate(210deg);\\n -ms-transform: rotate(210deg);\\n transform: rotate(210deg); }\\n .ril__loadingCirclePoint:nth-of-type(2):before, .ril__loadingCirclePoint:nth-of-type(8):before {\\n -webkit-animation-delay: -1000ms;\\n animation-delay: -1000ms; }\\n .ril__loadingCirclePoint:nth-of-type(3) {\\n -webkit-transform: rotate(60deg);\\n -ms-transform: rotate(60deg);\\n transform: rotate(60deg); }\\n .ril__loadingCirclePoint:nth-of-type(9) {\\n -webkit-transform: rotate(240deg);\\n -ms-transform: rotate(240deg);\\n transform: rotate(240deg); }\\n .ril__loadingCirclePoint:nth-of-type(3):before, .ril__loadingCirclePoint:nth-of-type(9):before {\\n -webkit-animation-delay: -800ms;\\n animation-delay: -800ms; }\\n .ril__loadingCirclePoint:nth-of-type(4) {\\n -webkit-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg); }\\n .ril__loadingCirclePoint:nth-of-type(10) {\\n -webkit-transform: rotate(270deg);\\n -ms-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n .ril__loadingCirclePoint:nth-of-type(4):before, .ril__loadingCirclePoint:nth-of-type(10):before {\\n -webkit-animation-delay: -600ms;\\n animation-delay: -600ms; }\\n .ril__loadingCirclePoint:nth-of-type(5) {\\n -webkit-transform: rotate(120deg);\\n -ms-transform: rotate(120deg);\\n transform: rotate(120deg); }\\n .ril__loadingCirclePoint:nth-of-type(11) {\\n -webkit-transform: rotate(300deg);\\n -ms-transform: rotate(300deg);\\n transform: rotate(300deg); }\\n .ril__loadingCirclePoint:nth-of-type(5):before, .ril__loadingCirclePoint:nth-of-type(11):before {\\n -webkit-animation-delay: -400ms;\\n animation-delay: -400ms; }\\n .ril__loadingCirclePoint:nth-of-type(6) {\\n -webkit-transform: rotate(150deg);\\n -ms-transform: rotate(150deg);\\n transform: rotate(150deg); }\\n .ril__loadingCirclePoint:nth-of-type(12) {\\n -webkit-transform: rotate(330deg);\\n -ms-transform: rotate(330deg);\\n transform: rotate(330deg); }\\n .ril__loadingCirclePoint:nth-of-type(6):before, .ril__loadingCirclePoint:nth-of-type(12):before {\\n -webkit-animation-delay: -200ms;\\n animation-delay: -200ms; }\\n .ril__loadingCirclePoint:nth-of-type(7) {\\n -webkit-transform: rotate(180deg);\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n .ril__loadingCirclePoint:nth-of-type(13) {\\n -webkit-transform: rotate(360deg);\\n -ms-transform: rotate(360deg);\\n transform: rotate(360deg); }\\n .ril__loadingCirclePoint:nth-of-type(7):before, .ril__loadingCirclePoint:nth-of-type(13):before {\\n -webkit-animation-delay: 0ms;\\n animation-delay: 0ms; }\\n\\n.ril__loadingContainer {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0; }\\n .ril__imagePrev .ril__loadingContainer {\\n display: none; }\\n .ril__imageNext .ril__loadingContainer {\\n display: none; }\\n\\n.ril__errorContainer {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n color: #fff; }\\n .ril__imagePrev .ril__errorContainer {\\n display: none; }\\n .ril__imageNext .ril__errorContainer {\\n display: none; }\\n\\n.ril__loadingContainer__icon {\\n color: #fff;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n -ms-transform: translateX(-50%) translateY(-50%);\\n transform: translateX(-50%) translateY(-50%); }\\n', \"\" ]), \n // exports\n exports.locals = {\n outer: \"ril__outer\",\n outerClosing: \"ril__outerClosing\",\n inner: \"ril__inner\",\n image: \"ril__image\",\n imagePrev: \"ril__imagePrev\",\n imageNext: \"ril__imageNext\",\n imageDiscourager: \"ril__imageDiscourager\",\n navButtons: \"ril__navButtons\",\n navButtonPrev: \"ril__navButtonPrev\",\n navButtonNext: \"ril__navButtonNext\",\n downloadBlocker: \"ril__downloadBlocker\",\n caption: \"ril__caption\",\n toolbar: \"ril__toolbar\",\n captionContent: \"ril__captionContent\",\n toolbarSide: \"ril__toolbarSide\",\n toolbarSideNoFlex: \"ril__toolbarSideNoFlex\",\n toolbarLeftSide: \"ril__toolbarLeftSide\",\n toolbarLeftSideNoFlex: \"ril__toolbarLeftSideNoFlex\",\n toolbarRightSide: \"ril__toolbarRightSide\",\n toolbarRightSideNoFlex: \"ril__toolbarRightSideNoFlex\",\n toolbarItem: \"ril__toolbarItem\",\n toolbarItemChild: \"ril__toolbarItemChild\",\n builtinButton: \"ril__builtinButton\",\n builtinButtonDisabled: \"ril__builtinButtonDisabled\",\n closeButton: \"ril__closeButton\",\n zoomInButton: \"ril__zoomInButton\",\n zoomOutButton: \"ril__zoomOutButton\",\n outerAnimating: \"ril__outerAnimating\",\n closeWindow: \"ril__closeWindow\",\n loadingCircle: \"ril__loadingCircle\",\n loadingCirclePoint: \"ril__loadingCirclePoint\",\n pointFade: \"ril__pointFade\",\n loadingContainer: \"ril__loadingContainer\",\n errorContainer: \"ril__errorContainer\",\n loadingContainer__icon: \"ril__loadingContainer__icon\"\n };\n }, /* 10 */\n /***/\n function(module, exports) {\n function cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || \"\", cssMapping = item[3];\n if (!cssMapping) return content;\n if (useSourceMap && \"function\" == typeof btoa) {\n var sourceMapping = toComment(cssMapping);\n return [ content ].concat(cssMapping.sources.map(function(source) {\n return \"/*# sourceURL=\" + cssMapping.sourceRoot + source + \" */\";\n })).concat([ sourceMapping ]).join(\"\\n\");\n }\n return [ content ].join(\"\\n\");\n }\n // Adapted from convert-source-map (MIT)\n function toComment(sourceMap) {\n return \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n }\n /*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n // css base code, injected by the css-loader\n module.exports = function(useSourceMap) {\n var list = [];\n // return the list of modules as css string\n // import a list of modules into the list\n return list.toString = function() {\n return this.map(function(item) {\n var content = cssWithMappingToString(item, useSourceMap);\n return item[2] ? \"@media \" + item[2] + \"{\" + content + \"}\" : content;\n }).join(\"\");\n }, list.i = function(modules, mediaQuery) {\n \"string\" == typeof modules && (modules = [ [ null, modules, \"\" ] ]);\n for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {\n var id = this[i][0];\n \"number\" == typeof id && (alreadyImportedModules[id] = !0);\n }\n for (i = 0; i < modules.length; i++) {\n var item = modules[i];\n // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n \"number\" == typeof item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\"), \n list.push(item));\n }\n }, list;\n };\n }, /* 11 */\n /***/\n function(module, exports, __webpack_require__) {\n \"use strict\";\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n // Base64 encoding and decoding - The \"Unicode Problem\"\n // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\n function b64EncodeUnicode(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {\n return String.fromCharCode(\"0x\" + p1);\n }));\n }\n /**\n * Remove style/link elements for specified node IDs\n * if they are no longer referenced by UI components.\n */\n function removeCss(ids) {\n ids.forEach(function(id) {\n if (--inserted[id] <= 0) {\n var elem = document.getElementById(prefix + id);\n elem && elem.parentNode.removeChild(elem);\n }\n });\n }\n /**\n * Example:\n * // Insert CSS styles object generated by `css-loader` into DOM\n * var removeCss = insertCss([[1, 'body { color: red; }']]);\n *\n * // Remove it from the DOM\n * removeCss();\n */\n function insertCss(styles) {\n for (var _ref = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, _ref$replace = _ref.replace, replace = void 0 !== _ref$replace && _ref$replace, _ref$prepend = _ref.prepend, prepend = void 0 !== _ref$prepend && _ref$prepend, ids = [], i = 0; i < styles.length; i++) {\n var _styles$i = (0, _slicedToArray3.default)(styles[i], 4), moduleId = _styles$i[0], css = _styles$i[1], media = _styles$i[2], sourceMap = _styles$i[3], id = moduleId + \"-\" + i;\n if (ids.push(id), !inserted[id] || replace) {\n inserted[id] = 1;\n var elem = document.getElementById(prefix + id), create = !1;\n elem || (create = !0, elem = document.createElement(\"style\"), elem.setAttribute(\"type\", \"text/css\"), \n elem.id = prefix + id, media && elem.setAttribute(\"media\", media));\n var cssText = css;\n sourceMap && \"function\" == typeof btoa && (// skip IE9 and below, see http://caniuse.com/atob-btoa\n cssText += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + b64EncodeUnicode((0, \n _stringify2.default)(sourceMap)) + \"*/\", cssText += \"\\n/*# sourceURL=\" + sourceMap.file + \"?\" + id + \"*/\"), \n \"textContent\" in elem ? elem.textContent = cssText : elem.styleSheet.cssText = cssText, \n create && (prepend ? document.head.insertBefore(elem, document.head.childNodes[0]) : document.head.appendChild(elem));\n } else inserted[id]++;\n }\n return removeCss.bind(null, ids);\n }\n var _stringify = __webpack_require__(12), _stringify2 = _interopRequireDefault(_stringify), _slicedToArray2 = __webpack_require__(13), _slicedToArray3 = _interopRequireDefault(_slicedToArray2), prefix = \"s\", inserted = {};\n module.exports = insertCss;\n }, /* 12 */\n /***/\n function(module, exports) {\n module.exports = require(\"babel-runtime/core-js/json/stringify\");\n }, /* 13 */\n /***/\n function(module, exports) {\n module.exports = require(\"babel-runtime/helpers/slicedToArray\");\n } ]);\n});","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new Map();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(function (key) {\n return options[key] !== undefined;\n }).map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var thresholds;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get;\n\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n var inView = entry.isIntersecting && thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options); // Ensure we have a valid thresholds array. If not, use the threshold from the options\n\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n * Monitors scroll, and triggers the children function with updated props\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, useInView };\n//# sourceMappingURL=react-intersection-observer.m.js.map\n","/** @license React v16.12.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;\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; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\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;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // 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 || type.$$typeof === REACT_SCOPE_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 */\nvar lowPriorityWarningWithoutStack = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\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 lowPriorityWarningWithoutStack = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\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\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_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\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;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarningWithoutStack$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\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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\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 portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n parentSelector: function parentSelector() {\n return document.body;\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\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\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus();\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus();\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n return this.shouldBeClosed() ? null : _react2.default.createElement(\n \"div\",\n {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n },\n _react2.default.createElement(\n \"div\",\n _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", this.props.aria || {}), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n }),\n this.props.children\n )\n );\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n\";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className;\n\n // eslint-disable-next-line max-len\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\";\n\n // eslint-disable-next-line no-console\n console.log(buffer);\n }\n}\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus();\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","// extracted by mini-css-extract-plugin","'use strict';\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar createClass = require('create-react-class');\nvar QuillMixin = require('./mixin');\nvar find = require('lodash/find');\nvar some = require('lodash/some');\nvar isEqual = require('lodash/isEqual');\nvar T = require('prop-types');\nvar DOM = require('react-dom-factories');\n\nvar QuillComponent = createClass({\n\n\tdisplayName: 'Quill',\n\n\tmixins: [ QuillMixin ],\n\n\tpropTypes: {\n\t\tid: T.string,\n\t\tclassName: T.string,\n\t\ttheme: T.string,\n\t\tstyle: T.object,\n\t\treadOnly: T.bool,\n\t\tvalue: T.oneOfType([T.string, T.shape({ops: T.array})]),\n\t\tdefaultValue: T.oneOfType([T.string, T.shape({ops: T.array})]),\n\t\tplaceholder: T.string,\n\t\ttabIndex: T.number,\n\t\tbounds: T.oneOfType([T.string, T.element]),\n\t\tonChange: T.func,\n\t\tonChangeSelection: T.func,\n\t\tonFocus: T.func,\n\t\tonBlur: T.func,\n\t\tonKeyPress: T.func,\n\t\tonKeyDown: T.func,\n\t\tonKeyUp: T.func,\n\t\tpreserveWhitespace: T.bool,\n\n\t\tmodules: function(props) {\n\t\t\tvar isNotObject = T.object.apply(this, arguments);\n\t\t\tif (isNotObject) return isNotObject;\n\n\t\t\tif (\n\t\t\t\tprops.modules && \n\t\t\t\tprops.modules.toolbar &&\n\t\t\t\tprops.modules.toolbar[0] &&\n\t\t\t\tprops.modules.toolbar[0].type\n\t\t\t) return new Error(\n\t\t\t\t'Since v1.0.0, React Quill will not create a custom toolbar for you ' +\n\t\t\t\t'anymore. Create a toolbar explictly, or let Quill create one. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100'\n\t\t\t);\n\t\t},\n\n\t\ttoolbar: function(props) {\n\t\t\tif ('toolbar' in props) return new Error(\n\t\t\t\t'The `toolbar` prop has been deprecated. Use `modules.toolbar` instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100'\n\t\t\t);\n\t\t},\n\n\t\tformats: function(props) {\n\t\t\tvar isNotArrayOfString = T.arrayOf(T.string).apply(this, arguments);\n\n\t\t\tif (isNotArrayOfString) return new Error(\n\t\t\t\t'You cannot specify custom `formats` anymore. Use Parchment instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tstyles: function(props) {\n\t\t\tif ('styles' in props) return new Error(\n\t\t\t\t'The `styles` prop has been deprecated. Use custom stylesheets instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tpollInterval: function(props) {\n\t\t\tif ('pollInterval' in props) return new Error(\n\t\t\t\t'The `pollInterval` property does not have any effect anymore. ' +\n\t\t\t\t'You can safely remove it from your props.' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tchildren: function(props) {\n\t\t\t// Validate that the editor has only one child element and it is not a <textarea>\n\t\t\tvar isNotASingleElement = T.element.apply(this, arguments);\n\t\t\tif (isNotASingleElement) return new Error(\n\t\t\t\t'The Quill editing area can only be composed of a single React element.'\n\t\t\t);\n\n\t\t\tif (React.Children.count(props.children)) {\n\t\t\t\tvar child = React.Children.only(props.children);\n\t\t\t\tif (child.type === 'textarea') return new Error(\n\t\t\t\t\t'Quill does not support editing on a <textarea>. Use a <div> instead.'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t},\n\t\t\n\t/*\n\tChanging one of these props should cause a full re-render.\n\t*/\n\tdirtyProps: [\n\t\t'modules',\n\t\t'formats',\n\t\t'bounds',\n\t\t'theme',\n\t\t'children',\n\t],\n\n\t/*\n\tChanging one of these props should cause a regular update.\n\t*/\n\tcleanProps: [\n\t\t'id',\n\t\t'className',\n\t\t'style',\n\t\t'placeholder',\n\t\t'tabIndex',\n\t\t'onChange',\n\t\t'onChangeSelection',\n\t\t'onFocus',\n\t\t'onBlur',\n\t\t'onKeyPress',\n\t\t'onKeyDown',\n\t\t'onKeyUp',\n\t],\n\n\tgetDefaultProps: function() {\n\t\treturn {\n\t\t\ttheme: 'snow',\n\t\t\tmodules: {},\n\t\t};\n\t},\n\n\t/*\n\tWe consider the component to be controlled if `value` is being sent in props.\n\t*/\n\tisControlled: function() {\n\t\treturn 'value' in this.props;\n\t},\n\n\tgetInitialState: function() {\n\t\treturn {\n\t\t\tgeneration: 0,\n\t\t\tvalue: this.isControlled()\n\t\t\t\t? this.props.value\n\t\t\t\t: this.props.defaultValue\n\t\t};\n\t},\n\n\tcomponentWillReceiveProps: function(nextProps, nextState) {\n\t\tvar editor = this.editor;\n\n\t\t// If the component is unmounted and mounted too quickly\n\t\t// an error is thrown in setEditorContents since editor is\n\t\t// still undefined. Must check if editor is undefined\n\t\t// before performing this call.\n\t\tif (!editor) return;\n\t\t\n\t\t// Update only if we've been passed a new `value`.\n\t\t// This leaves components using `defaultValue` alone.\n\t\tif ('value' in nextProps) {\n\t\t\tvar currentContents = this.getEditorContents();\n\t\t\tvar nextContents = nextProps.value;\n\n\t\t\tif (nextContents === this.lastDeltaChangeSet) throw new Error(\n\t\t\t\t'You are passing the `delta` object from the `onChange` event back ' +\n\t\t\t\t'as `value`. You most probably want `editor.getContents()` instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#using-deltas'\n\t\t\t);\n\n\t\t\t// NOTE: Seeing that Quill is missing a way to prevent\n\t\t\t// edits, we have to settle for a hybrid between\n\t\t\t// controlled and uncontrolled mode. We can't prevent\n\t\t\t// the change, but we'll still override content\n\t\t\t// whenever `value` differs from current state.\n\t\t\t// NOTE: Comparing an HTML string and a Quill Delta will always trigger \n\t\t\t// a change, regardless of whether they represent the same document.\n\t\t\tif (!this.isEqualValue(nextContents, currentContents)) {\n\t\t\t\tthis.setEditorContents(editor, nextContents);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// We can update readOnly state in-place.\n\t\tif ('readOnly' in nextProps) {\n\t\t\tif (nextProps.readOnly !== this.props.readOnly) {\n\t\t\t\tthis.setEditorReadOnly(editor, nextProps.readOnly);\n\t\t\t}\n\t\t}\n\n\t\t// If we need to regenerate the component, we can avoid a detailed\n\t\t// in-place update step, and just let everything rerender.\n\t\tif (this.shouldComponentRegenerate(nextProps, nextState)) {\n\t\t\treturn this.regenerate();\n\t\t}\n\t},\n\n\tcomponentDidMount: function() {\n\t\tthis.editor = this.createEditor(\n\t\t\tthis.getEditingArea(),\n\t\t\tthis.getEditorConfig()\n\t\t);\n\t\t// Restore editor from Quill's native formats in regeneration scenario\n\t\tif (this.quillDelta) {\n\t\t\tthis.editor.setContents(this.quillDelta);\n\t\t\tthis.editor.setSelection(this.quillSelection);\t\t\n\t\t\tthis.editor.focus();\n\t\t\tthis.quillDelta = this.quillSelection = null;\n\t\t\treturn;\n\t\t}\n\t\tif (this.state.value) {\n\t\t\tthis.setEditorContents(this.editor, this.state.value);\n\t\t\treturn;\n\t\t}\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\tvar editor; if ((editor = this.getEditor())) {\n\t\t\tthis.unhookEditor(editor);\n\t\t\tthis.editor = null;\n\t\t}\n\t},\n\n\tshouldComponentUpdate: function(nextProps, nextState) {\n\t\tvar self = this;\n\n\t\t// If the component has been regenerated, we already know we should update.\n\t\tif (this.state.generation !== nextState.generation) {\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t// Compare props that require React updating the DOM.\n\t\treturn some(this.cleanProps, function(prop) {\n\t\t\t// Note that `isEqual` compares deeply, making it safe to perform\n\t\t\t// non-immutable updates, at the cost of performance.\n\t\t\treturn !isEqual(nextProps[prop], self.props[prop]);\n\t\t});\n\t},\n\n\tshouldComponentRegenerate: function(nextProps, nextState) {\n\t\tvar self = this;\n\t\t// Whenever a `dirtyProp` changes, the editor needs reinstantiation.\n\t\treturn some(this.dirtyProps, function(prop) {\n\t\t\t// Note that `isEqual` compares deeply, making it safe to perform\n\t\t\t// non-immutable updates, at the cost of performance.\n\t\t\treturn !isEqual(nextProps[prop], self.props[prop]);\n\t\t});\n\t},\n\n\t/*\n\tIf we could not update settings from the new props in-place, we have to tear\n\tdown everything and re-render from scratch.\n\t*/\n\tcomponentWillUpdate: function(nextProps, nextState) {\n\t\tif (this.state.generation !== nextState.generation) {\n\t\t\tthis.componentWillUnmount();\n\t\t}\n\t},\n\n\tcomponentDidUpdate: function(prevProps, prevState) {\n\t\tif (this.state.generation !== prevState.generation) {\n\t\t\tthis.componentDidMount();\n\t\t}\n\t},\n\n\tgetEditorConfig: function() {\n\t\treturn {\n\t\t\tbounds: this.props.bounds,\n\t\t\tformats: this.props.formats,\n\t\t\tmodules: this.props.modules,\n\t\t\tplaceholder: this.props.placeholder,\n\t\t\treadOnly: this.props.readOnly,\n \t\t\tscrollingContainer: this.props.scrollingContainer,\n\t\t\ttabIndex: this.props.tabIndex,\n\t\t\ttheme: this.props.theme,\n\t\t};\n\t},\n\n\tgetEditor: function() {\n\t\treturn this.editor;\n\t},\n\n\tgetEditingArea: function () {\n\t\treturn ReactDOM.findDOMNode(this.editingArea);\n\t},\n\n\tgetEditorContents: function() {\n\t\treturn this.state.value;\n\t},\n\n\tgetEditorSelection: function() {\n\t\treturn this.state.selection;\n\t},\n\n\t/*\n\tTrue if the value is a Delta instance or a Delta look-alike.\n\t*/\n\tisDelta: function(value) {\n\t\treturn value && value.ops;\n\t},\n\n\t/*\n\tSpecial comparison function that knows how to compare Deltas.\n\t*/\n\tisEqualValue: function(value, nextValue) {\n\t\tif (this.isDelta(value) && this.isDelta(nextValue)) {\n\t\t\treturn isEqual(value.ops, nextValue.ops);\n\t\t} else {\n\t\t\treturn isEqual(value, nextValue);\n\t\t}\n\t},\n\n\t/*\n\tRegenerating the editor will cause the whole tree, including the container,\n\tto be cleaned up and re-rendered from scratch.\n\t*/\n\tregenerate: function() {\n\t\t// Cache selection and contents in Quill's native format to be restored later\n\t\tthis.quillDelta = this.editor.getContents();\n\t\tthis.quillSelection = this.editor.getSelection();\n\t\tthis.setState({\n\t\t\tgeneration: this.state.generation + 1,\n\t\t});\n\t},\n\n\t/*\n\tRenders an editor area, unless it has been provided one to clone.\n\t*/\n\trenderEditingArea: function() {\n\t\tvar self = this;\n\t\tvar children = this.props.children;\n\t\tvar preserveWhitespace = this.props.preserveWhitespace;\n\n\t\tvar properties = {\n\t\t\tkey: this.state.generation,\n\t\t\ttabIndex: this.props.tabIndex,\n\t\t\tref: function(element) { self.editingArea = element },\n\t\t};\n\n\t\tvar customElement = React.Children.count(children)\n\t\t\t? React.Children.only(children)\n\t\t\t: null;\n\t\tvar defaultElement = preserveWhitespace ? DOM.pre : DOM.div;\n\t\tvar editingArea = customElement\n\t\t\t? React.cloneElement(customElement, properties)\n\t\t\t: defaultElement(properties);\n\n\t\treturn editingArea;\n\t},\n\n\trender: function() {\n\t\treturn DOM.div({\n\t\t\tid: this.props.id,\n\t\t\tstyle: this.props.style,\n\t\t\tkey: this.state.generation,\n\t\t\tclassName: ['quill'].concat(this.props.className).join(' '),\n\t\t\tonKeyPress: this.props.onKeyPress,\n\t\t\tonKeyDown: this.props.onKeyDown,\n\t\t\tonKeyUp: this.props.onKeyUp },\n\t\t\tthis.renderEditingArea()\n\t\t);\n\t},\n\n\tonEditorChangeText: function(value, delta, source, editor) {\n\t\tvar currentContents = this.getEditorContents();\n\n\t\t// We keep storing the same type of value as what the user gives us,\n\t\t// so that value comparisons will be more stable and predictable.\n\t\tvar nextContents = this.isDelta(currentContents)\n\t\t\t? editor.getContents()\n\t\t\t: editor.getHTML();\n\t\t\n\t\tif (!this.isEqualValue(nextContents, currentContents)) {\n\t\t\t// Taint this `delta` object, so we can recognize whether the user\n\t\t\t// is trying to send it back as `value`, preventing a likely loop.\n\t\t\tthis.lastDeltaChangeSet = delta;\n\n\t\t\tthis.setState({ value: nextContents });\n\n\t\t\tif (this.props.onChange) {\n\t\t\t\tthis.props.onChange(value, delta, source, editor);\n\t\t\t}\n\t\t}\n\t},\n\n\tonEditorChangeSelection: function(nextSelection, source, editor) {\n\t\tvar currentSelection = this.getEditorSelection();\n\t\tvar hasGainedFocus = !currentSelection && nextSelection;\n\t\tvar hasLostFocus = currentSelection && !nextSelection;\n\n\t\tif (isEqual(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.setState({ selection: nextSelection });\n\t\t\n\t\tif (this.props.onChangeSelection) {\n\t\t\tthis.props.onChangeSelection(nextSelection, source, editor);\n\t\t}\n\n\t\tif (hasGainedFocus && this.props.onFocus) {\n\t\t\tthis.props.onFocus(nextSelection, source, editor);\n\t\t} else if (hasLostFocus && this.props.onBlur) {\n\t\t\tthis.props.onBlur(currentSelection, source, editor);\n\t\t}\n\t},\n\n\tfocus: function() {\n\t\tthis.editor.focus();\n\t},\n\n\tblur: function() {\n\t\tthis.setEditorSelection(this.editor, null);\n\t}\n\n});\n\nmodule.exports = QuillComponent;\n","/*\nReact-Quill v1.0.0\nhttps://github.com/zenoamaro/react-quill\n*/\nvar Quill = require('quill');\nvar Component = require('./component');\n\nmodule.exports = Component;\nmodule.exports.default = Component;\nmodule.exports.Quill = Quill;\nmodule.exports.Mixin = require('./mixin');\nmodule.exports.Toolbar = require('./toolbar');\n","'use strict';\n\nvar Quill = require('quill');\n\nvar QuillMixin = {\n\n\t/**\n\tCreates an editor on the given element. The editor will\n\tbe passed the configuration, have its events bound,\n\t*/\n\tcreateEditor: function($el, config) {\n\t\tvar editor = new Quill($el, config);\n\t\tif (config.tabIndex !== undefined) {\n\t\t\tthis.setEditorTabIndex(editor, config.tabIndex);\n\t\t}\n\t\tthis.hookEditor(editor);\n\t\treturn editor;\n\t},\n\n\thookEditor: function(editor) {\n\t\t// Expose the editor on change events via a weaker,\n\t\t// unprivileged proxy object that does not allow\n\t\t// accidentally modifying editor state.\n\t\tvar unprivilegedEditor = this.makeUnprivilegedEditor(editor);\n\n\t\tthis.handleTextChange = function(delta, oldDelta, source) {\n\t\t\tif (this.onEditorChangeText) {\n\t\t\t\tthis.onEditorChangeText(\n\t\t\t\t\teditor.root.innerHTML, delta, source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t\tthis.onEditorChangeSelection(\n\t\t\t\t\teditor.getSelection(), source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\tthis.handleSelectionChange = function(range, oldRange, source) {\n\t\t\tif (this.onEditorChangeSelection) {\n\t\t\t\tthis.onEditorChangeSelection(\n\t\t\t\t\trange, source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\teditor.on('editor-change', function(eventType, rangeOrDelta, oldRangeOrOldDelta, source) {\n\t\t\tif (eventType === Quill.events.SELECTION_CHANGE) {\n\t\t\t\tthis.handleSelectionChange(rangeOrDelta, oldRangeOrOldDelta, source);\n\t\t\t}\n\t\t\t\n\t\t\tif (eventType === Quill.events.TEXT_CHANGE) {\n\t\t\t\tthis.handleTextChange(rangeOrDelta, oldRangeOrOldDelta, source);\n\t\t\t}\n\t\t}.bind(this));\n\t},\n\n\tunhookEditor: function(editor) {\n\t\teditor.off('selection-change');\n\t\teditor.off('text-change');\n\t},\n\n\tsetEditorReadOnly: function(editor, value) {\n\t\tvalue? editor.disable()\n\t\t : editor.enable();\n\t},\n\n\t/*\n\tReplace the contents of the editor, but keep\n\tthe previous selection hanging around so that\n\tthe cursor won't move.\n\t*/\n\tsetEditorContents: function(editor, value) {\n\t\tvar sel = editor.getSelection();\n\n\t\tif (typeof value === 'string') {\n\t\t\teditor.setContents(editor.clipboard.convert(value));\n\t\t} else {\n\t\t\teditor.setContents(value);\n\t\t}\n\n\t\tif (sel && editor.hasFocus()) this.setEditorSelection(editor, sel);\n\t},\n\n\tsetEditorSelection: function(editor, range) {\n\t\tif (range) {\n\t\t\t// Validate bounds before applying.\n\t\t\tvar length = editor.getLength();\n\t\t\trange.index = Math.max(0, Math.min(range.index, length-1));\n\t\t\trange.length = Math.max(0, Math.min(range.length, (length-1) - range.index));\n\t\t}\n\t\teditor.setSelection(range);\n\t},\n\n\tsetEditorTabIndex: function(editor, tabIndex) {\n\t\tif (editor.editor && editor.editor.scroll && editor.editor.scroll.domNode) {\n\t\t\teditor.editor.scroll.domNode.tabIndex = tabIndex;\n\t\t}\n\t},\n\n\t/*\n\tReturns an weaker, unprivileged proxy object that only\n\texposes read-only accessors found on the editor instance,\n\twithout any state-modificating methods.\n\t*/\n\tmakeUnprivilegedEditor: function(editor) {\n\t\tvar e = editor;\n\t\treturn {\n\t\t\tgetLength: function(){ return e.getLength.apply(e, arguments); },\n\t\t\tgetText: function(){ return e.getText.apply(e, arguments); },\n\t\t\tgetHTML: function(){ return e.root.innerHTML },\n\t\t\tgetContents: function(){ return e.getContents.apply(e, arguments); },\n\t\t\tgetSelection: function(){ return e.getSelection.apply(e, arguments); },\n\t\t\tgetBounds: function(){ return e.getBounds.apply(e, arguments); },\n\t\t};\n\t}\n\n};\n\nmodule.exports = QuillMixin;\n","/*\nQuillToolbar is deprecated. Consider switching to the official Quill\ntoolbar format, or providing your own toolbar instead. \nSee https://quilljs.com/docs/modules/toolbar\n*/\n\n'use strict';\n\nvar React = require('react');\nvar ReactDOMServer = require('react-dom/server');\nvar createClass = require('create-react-class');\nvar find = require('lodash/find');\nvar isEqual = require('lodash/isEqual');\nvar T = require('prop-types');\nvar DOM = require('react-dom-factories');\n\nvar defaultColors = [\n\t'rgb( 0, 0, 0)', 'rgb(230, 0, 0)', 'rgb(255, 153, 0)',\n\t'rgb(255, 255, 0)', 'rgb( 0, 138, 0)', 'rgb( 0, 102, 204)',\n\t'rgb(153, 51, 255)', 'rgb(255, 255, 255)', 'rgb(250, 204, 204)',\n\t'rgb(255, 235, 204)', 'rgb(255, 255, 204)', 'rgb(204, 232, 204)',\n\t'rgb(204, 224, 245)', 'rgb(235, 214, 255)', 'rgb(187, 187, 187)',\n\t'rgb(240, 102, 102)', 'rgb(255, 194, 102)', 'rgb(255, 255, 102)',\n\t'rgb(102, 185, 102)', 'rgb(102, 163, 224)', 'rgb(194, 133, 255)',\n\t'rgb(136, 136, 136)', 'rgb(161, 0, 0)', 'rgb(178, 107, 0)',\n\t'rgb(178, 178, 0)', 'rgb( 0, 97, 0)', 'rgb( 0, 71, 178)',\n\t'rgb(107, 36, 178)', 'rgb( 68, 68, 68)', 'rgb( 92, 0, 0)',\n\t'rgb(102, 61, 0)', 'rgb(102, 102, 0)', 'rgb( 0, 55, 0)',\n\t'rgb( 0, 41, 102)', 'rgb( 61, 20, 10)',\n].map(function(color){ return { value: color } });\n\nvar defaultItems = [\n\n\t{ label:'Formats', type:'group', items: [\n\t\t{ label:'Font', type:'font', items: [\n\t\t\t{ label:'Sans Serif', value:'sans-serif', selected:true },\n\t\t\t{ label:'Serif', value:'serif' },\n\t\t\t{ label:'Monospace', value:'monospace' }\n\t\t]},\n\t\t{ label:'Size', type:'size', items: [\n\t\t\t{ label:'Small', value:'10px' },\n\t\t\t{ label:'Normal', value:'13px', selected:true },\n\t\t\t{ label:'Large', value:'18px' },\n\t\t\t{ label:'Huge', value:'32px' }\n\t\t]},\n\t\t{ label:'Alignment', type:'align', items: [\n\t\t\t{ label:'', value:'', selected:true },\n\t\t\t{ label:'', value:'center' },\n\t\t\t{ label:'', value:'right' },\n\t\t\t{ label:'', value:'justify' }\n\t\t]}\n\t]},\n\n\t{ label:'Text', type:'group', items: [\n\t\t{ type:'bold', label:'Bold' },\n\t\t{ type:'italic', label:'Italic' },\n\t\t{ type:'strike', label:'Strike' },\n\t\t{ type:'underline', label:'Underline' },\n\t\t{ type:'color', label:'Color', items:defaultColors },\n\t\t{ type:'background', label:'Background color', items:defaultColors },\n\t\t{ type:'link', label:'Link' }\n\t]},\n\n\t{ label:'Blocks', type:'group', items: [\n\t\t{ type:'list', value:'bullet' },\n\t\t{ type:'list', value:'ordered' }\n\t]},\n\n\t{ label:'Blocks', type:'group', items: [\n\t\t{ type:'image', label:'Image' }\n\t]}\n\n];\n\nvar QuillToolbar = createClass({\n\n\tdisplayName: 'Quill Toolbar',\n\n\tpropTypes: {\n\t\tid: T.string,\n\t\tclassName: T.string,\n\t\tstyle: T.object,\n\t\titems: T.array\n\t},\n\n\tgetDefaultProps: function() {\n\t\treturn {\n\t\t\titems: defaultItems\n\t\t};\n\t},\n\n\tcomponentDidMount: function() {\n\t\tconsole.warn(\n\t\t\t'QuillToolbar is deprecated. Consider switching to the official Quill ' +\n\t\t\t'toolbar format, or providing your own toolbar instead. ' +\n\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v1-0-0'\n\t\t);\n\t},\n\n\tshouldComponentUpdate: function(nextProps, nextState) {\n\t\treturn !isEqual(nextProps, this.props);\n\t},\n\n\trenderGroup: function(item, key) {\n\t\treturn DOM.span({\n\t\t\tkey: item.label || key,\n\t\t\tclassName:'ql-formats' },\n\t\t\titem.items.map(this.renderItem)\n\t\t);\n\t},\n\n\trenderChoiceItem: function(item, key) {\n\t\treturn DOM.option({\n\t\t\tkey: item.label || item.value || key,\n\t\t\tvalue: item.value },\n\t\t\titem.label\n\t\t);\n\t},\n\n\trenderChoices: function(item, key) {\n\t\tvar choiceItems = item.items.map(this.renderChoiceItem);\n\t\tvar selectedItem = find(item.items, function(item){ return item.selected });\n\t\tvar attrs = {\n\t\t\tkey: item.label || key,\n\t\t\ttitle: item.label,\n\t\t\tclassName: 'ql-'+item.type,\n\t\t\tvalue: selectedItem.value,\n\t\t};\n\t\treturn DOM.select(attrs, choiceItems);\n\t},\n\n\trenderButton: function(item, key) {\n\t\treturn DOM.button({\n\t\t\ttype: 'button',\n\t\t\tkey: item.label || item.value || key,\n\t\t\tvalue: item.value,\n\t\t\tclassName: 'ql-'+item.type,\n\t\t\ttitle: item.label },\n\t\t\titem.children\n\t\t);\n\t},\n\n\trenderAction: function(item, key) {\n\t\treturn DOM.button({\n\t\t\tkey: item.label || item.value || key,\n\t\t\tclassName: 'ql-'+item.type,\n\t\t\ttitle: item.label },\n\t\t\titem.children\n\t\t);\n\t},\n\n\t/* jshint maxcomplexity: false */\n\trenderItem: function(item, key) {\n\t\tswitch (item.type) {\n\t\t\tcase 'group':\n\t\t\t\treturn this.renderGroup(item, key);\n\t\t\tcase 'font':\n\t\t\tcase 'header':\n\t\t\tcase 'align':\n\t\t\tcase 'size':\n\t\t\tcase 'color':\n\t\t\tcase 'background':\n\t\t\t\treturn this.renderChoices(item, key);\n\t\t\tcase 'bold':\n\t\t\tcase 'italic':\n\t\t\tcase 'underline':\n\t\t\tcase 'strike':\n\t\t\tcase 'link':\n\t\t\tcase 'list':\n\t\t\tcase 'bullet':\n\t\t\tcase 'ordered':\n\t\t\tcase 'indent':\n\t\t\tcase 'image':\n\t\t\tcase 'video':\n\t\t\t\treturn this.renderButton(item, key);\n\t\t\tdefault:\n\t\t\t\treturn this.renderAction(item, key);\n\t\t}\n\t},\n\n\tgetClassName: function() {\n\t\treturn 'quill-toolbar ' + (this.props.className||'');\n\t},\n\n\trender: function() {\n\t\tvar children = this.props.items.map(this.renderItem);\n\t\tvar html = children.map(ReactDOMServer.renderToStaticMarkup).join('');\n\t\treturn DOM.div({\n\t\t\tid: this.props.id,\n\t\t\tclassName: this.getClassName(),\n\t\t\tstyle: this.props.style,\n\t\t\tdangerouslySetInnerHTML: { __html:html }\n\t\t});\n\t},\n\n});\n\nmodule.exports = QuillToolbar;\nQuillToolbar.defaultItems = defaultItems;\nQuillToolbar.defaultColors = defaultColors;\n","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default\n/*#__PURE__*/\ncreateConnect();","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import warning from '../utils/warning';\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error(\"Unexpected value for \" + methodName + \" in \" + displayName + \".\");\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n warning(\"The selector for \" + methodName + \" of \" + displayName + \" did not specify a value for dependsOnOwnProps.\");\n }\n }\n}\n\nexport default function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport var useDispatch =\n/*#__PURE__*/\ncreateDispatchHook();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n}","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelectors\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport var useStore =\n/*#__PURE__*/\ncreateStoreHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","/**\r\n * @param {any} obj The object to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\nexport default function isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n var baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}","/* eslint-disable import/no-unresolved */\nexport { unstable_batchedUpdates } from 'react-dom';","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import isPlainObject from './isPlainObject';\nimport warning from './warning';\nexport default function verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(methodName + \"() in \" + displayName + \" must return a plain object. Instead received \" + value + \".\");\n }\n}","/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\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 keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\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\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\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","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\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","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\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(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\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\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","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