@zealicsolutions/web-ui 0.3.267 → 0.3.268
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/assets/index.d.ts +8 -0
- package/dist/cjs/atoms/Avatar/Avatar.d.ts +20 -0
- package/dist/cjs/atoms/Buttons/IconButton.d.ts +12 -0
- package/dist/cjs/atoms/Buttons/TextButton.d.ts +21 -0
- package/dist/cjs/atoms/Buttons/TouchableOpacity.d.ts +16 -0
- package/dist/cjs/atoms/Checkbox/Checkbox.d.ts +14 -0
- package/dist/cjs/atoms/Checkbox/helpers.d.ts +2 -0
- package/dist/cjs/atoms/Checkbox/types.d.ts +18 -0
- package/dist/cjs/atoms/Circle/Circle.d.ts +12 -0
- package/dist/cjs/atoms/CircularIndicator/CircularIndicator.d.ts +12 -0
- package/dist/cjs/atoms/Divider/Divider.d.ts +13 -0
- package/dist/cjs/atoms/HorizontalButtons/HorizontalButtons.d.ts +11 -0
- package/dist/cjs/atoms/Icon/Icon.d.ts +38 -0
- package/dist/cjs/atoms/Input/Input.d.ts +39 -0
- package/dist/cjs/atoms/Input/helpers.d.ts +44 -0
- package/dist/cjs/atoms/Paddings/Paddings.d.ts +13 -0
- package/dist/cjs/atoms/RadioButtons/RadioButtons.d.ts +56 -0
- package/dist/cjs/atoms/RadioButtons/RadioOption.d.ts +11 -0
- package/dist/cjs/atoms/RadioButtons/helpers.d.ts +17 -0
- package/dist/cjs/atoms/RadioButtons/styles.d.ts +13 -0
- package/dist/cjs/atoms/RegularImage/RegularImage.d.ts +38 -0
- package/dist/cjs/atoms/RichTextViewer/RichTextViewer.d.ts +24 -0
- package/dist/cjs/atoms/RichTextViewer/components/EditorElement.d.ts +5 -0
- package/dist/cjs/atoms/RichTextViewer/components/Leaf.d.ts +2 -0
- package/dist/cjs/atoms/RichTextViewer/components/index.d.ts +2 -0
- package/dist/cjs/atoms/RichTextViewer/types.d.ts +36 -0
- package/dist/cjs/atoms/Select/Select.d.ts +34 -0
- package/dist/cjs/atoms/Select/styles.d.ts +27 -0
- package/dist/cjs/atoms/Spacer/Spacer.d.ts +11 -0
- package/dist/cjs/atoms/Spinner/Spinner.d.ts +9 -0
- package/dist/cjs/atoms/Tab/Tab.d.ts +56 -0
- package/dist/cjs/atoms/Tab/styles.d.ts +18 -0
- package/dist/cjs/atoms/Tab/utils.d.ts +4 -0
- package/dist/cjs/atoms/TextWrapper/TextWrapper.d.ts +23 -0
- package/dist/cjs/atoms/Toast/ToastContent.d.ts +7 -0
- package/dist/cjs/atoms/Toast/toast.d.ts +3 -0
- package/dist/cjs/atoms/Toast/types.d.ts +6 -0
- package/dist/cjs/atoms/Tooltip/Tooltip.d.ts +12 -0
- package/dist/cjs/atoms/ValidationTag/ValidationTag.d.ts +6 -0
- package/dist/cjs/atoms/index.d.ts +23 -0
- package/dist/cjs/constants/params.d.ts +8 -0
- package/dist/cjs/containers/Container.d.ts +84 -0
- package/dist/cjs/containers/Container.stories.d.ts +7 -0
- package/dist/cjs/containers/FormContainer.d.ts +8 -0
- package/dist/cjs/containers/FormOrganismItem.d.ts +11 -0
- package/dist/cjs/containers/FormStepContainer.d.ts +9 -0
- package/dist/cjs/containers/MoleculeItem.d.ts +8 -0
- package/dist/cjs/containers/helpers.d.ts +6 -0
- package/dist/cjs/containers/hooks/index.d.ts +3 -0
- package/dist/cjs/containers/hooks/useCheckCondition.d.ts +16 -0
- package/dist/cjs/containers/hooks/useCheckCondition.test.d.ts +1 -0
- package/dist/cjs/containers/hooks/useFormOrganismItem.d.ts +3 -0
- package/dist/cjs/containers/hooks/useSetFormData.d.ts +10 -0
- package/dist/cjs/containers/hooks/useStateListenerValue.d.ts +18 -0
- package/dist/cjs/containers/hooks/useStateModifierHandler.d.ts +7 -0
- package/dist/cjs/containers/hooks/useStateViewModifierHandler.d.ts +2 -0
- package/dist/cjs/containers/index.d.ts +5 -0
- package/dist/cjs/containers/mock-data.d.ts +1153 -0
- package/dist/cjs/containers/styles.d.ts +41 -0
- package/dist/cjs/containers/types/moleculeTypes.d.ts +345 -0
- package/dist/cjs/containers/types/types.d.ts +135 -0
- package/dist/cjs/contexts/AccountButtonContext/AccountButtonContext.d.ts +14 -0
- package/dist/cjs/contexts/AccountButtonContext/AccountButtonContextProvider.d.ts +9 -0
- package/dist/cjs/contexts/ButtonActionsContext/ButtonActionsContext.d.ts +12 -0
- package/dist/cjs/contexts/ButtonActionsContext/ButtonActionsContextProvider.d.ts +26 -0
- package/dist/cjs/contexts/FormStepContext/FormStepContext.d.ts +13 -0
- package/dist/cjs/contexts/FormStepContext/FormStepContextProvider.d.ts +5 -0
- package/dist/cjs/contexts/FormStepContext/utils.d.ts +2 -0
- package/dist/cjs/contexts/MlrRichTextViewerContext/MlrRichTextViewerContext.d.ts +8 -0
- package/dist/cjs/contexts/MlrRichTextViewerContext/MlrRichTextViewerProvider.d.ts +8 -0
- package/dist/cjs/contexts/MlrRichTextViewerContext/types.d.ts +15 -0
- package/dist/cjs/contexts/OrganismContext/OrganismContext.d.ts +33 -0
- package/dist/cjs/contexts/OrganismContext/OrganismContextProvider.d.ts +31 -0
- package/dist/cjs/contexts/OrganismContext/utils.d.ts +5 -0
- package/dist/cjs/contexts/StateContext/StateContext.d.ts +7 -0
- package/dist/cjs/contexts/StateContext/StateContextProvider.d.ts +7 -0
- package/dist/cjs/contexts/hooks/index.d.ts +6 -0
- package/dist/cjs/contexts/hooks/useAccountButtonContext.d.ts +6 -0
- package/dist/cjs/contexts/hooks/useButtonActionsContext.d.ts +1 -0
- package/dist/cjs/contexts/hooks/useFormStepContext.d.ts +1 -0
- package/dist/cjs/contexts/hooks/useMlrRichTextViewerContext.d.ts +1 -0
- package/dist/cjs/contexts/hooks/useOrganismContext.d.ts +1 -0
- package/dist/cjs/contexts/hooks/useStateContext.d.ts +1 -0
- package/dist/cjs/contexts/index.d.ts +13 -0
- package/dist/cjs/fieldsConfiguration/getFieldPlaceholder.d.ts +2 -0
- package/dist/cjs/fieldsConfiguration/index.d.ts +3 -0
- package/dist/cjs/fieldsConfiguration/types.d.ts +29 -0
- package/dist/cjs/fieldsConfiguration/utils.d.ts +6 -0
- package/dist/cjs/helpers/constants.d.ts +6 -0
- package/dist/cjs/helpers/date.d.ts +3 -0
- package/dist/cjs/helpers/slate.d.ts +2 -0
- package/dist/cjs/helpers/styles.d.ts +5 -0
- package/dist/cjs/helpers/utils.d.ts +14 -0
- package/dist/cjs/helpers/validations.d.ts +23 -0
- package/dist/cjs/hooks/index.d.ts +2 -0
- package/dist/cjs/hooks/useRequiredConsentsAcceptedValues.d.ts +2 -0
- package/dist/cjs/hooks/useStep.d.ts +11 -0
- package/dist/cjs/icons/ArrowRight.d.ts +2 -0
- package/dist/cjs/icons/Bell.d.ts +2 -0
- package/dist/cjs/icons/Bookmark.d.ts +2 -0
- package/dist/cjs/icons/CaretDown.d.ts +2 -0
- package/dist/cjs/icons/CaretLeft.d.ts +2 -0
- package/dist/cjs/icons/CaretRight.d.ts +2 -0
- package/dist/cjs/icons/CaretUp.d.ts +2 -0
- package/dist/cjs/icons/Check.d.ts +2 -0
- package/dist/cjs/icons/Close.d.ts +2 -0
- package/dist/cjs/icons/Edit.d.ts +2 -0
- package/dist/cjs/icons/Filter.d.ts +2 -0
- package/dist/cjs/icons/Hide.d.ts +2 -0
- package/dist/cjs/icons/Info.d.ts +2 -0
- package/dist/cjs/icons/InfoBoxIcon.d.ts +2 -0
- package/dist/cjs/icons/Mail.d.ts +2 -0
- package/dist/cjs/icons/Menu.d.ts +2 -0
- package/dist/cjs/icons/Minus.d.ts +2 -0
- package/dist/cjs/icons/Mobile.d.ts +2 -0
- package/dist/cjs/icons/Play.d.ts +2 -0
- package/dist/cjs/icons/Save.d.ts +2 -0
- package/dist/cjs/icons/Search.d.ts +2 -0
- package/dist/cjs/icons/View.d.ts +2 -0
- package/dist/cjs/icons/Warning.d.ts +2 -0
- package/dist/cjs/icons/index.d.ts +23 -0
- package/dist/cjs/index.css +503 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.js +23 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/molecules/Alert/Alert.d.ts +20 -0
- package/dist/cjs/molecules/Alert/Alert.stories.d.ts +9 -0
- package/dist/cjs/molecules/AvatarDropdown/AvatarDropdown.d.ts +11 -0
- package/dist/cjs/molecules/AvatarDropdown/AvatarDropdown.stories.d.ts +8 -0
- package/dist/cjs/molecules/BottomNavBarItem/BottomNavBarItem.d.ts +11 -0
- package/dist/cjs/molecules/BottomNavBarItem/BottomNavBarItem.stories.d.ts +8 -0
- package/dist/cjs/molecules/Button/Button.d.ts +47 -0
- package/dist/cjs/molecules/Button/Button.stories.d.ts +8 -0
- package/dist/cjs/molecules/Caruser/Carousel.d.ts +35 -0
- package/dist/cjs/molecules/CheckboxField/CheckboxField.d.ts +37 -0
- package/dist/cjs/molecules/CheckboxField/CheckboxField.stories.d.ts +61 -0
- package/dist/cjs/molecules/CheckboxField/CheckboxGroup.d.ts +10 -0
- package/dist/cjs/molecules/CheckboxField/CheckboxGroup.stories.d.ts +32 -0
- package/dist/cjs/molecules/CheckboxField/styles.d.ts +13 -0
- package/dist/cjs/molecules/Checklist/Checklist.d.ts +30 -0
- package/dist/cjs/molecules/Checklist/Checklist.stories.d.ts +8 -0
- package/dist/cjs/molecules/Consent/Consent.d.ts +27 -0
- package/dist/cjs/molecules/Consent/Consent.stories.d.ts +8 -0
- package/dist/cjs/molecules/Consent/ConsentCapture.d.ts +20 -0
- package/dist/cjs/molecules/Consent/ConsentMolecule.d.ts +11 -0
- package/dist/cjs/molecules/Consent/consentMock.d.ts +7 -0
- package/dist/cjs/molecules/CustomValidation/CustomValidation.d.ts +14 -0
- package/dist/cjs/molecules/CustomValidation/CustomValidation.stories.d.ts +8 -0
- package/dist/cjs/molecules/Drawer/Drawer.d.ts +3 -0
- package/dist/cjs/molecules/Drawer/Drawer.stories.d.ts +9 -0
- package/dist/cjs/molecules/Drawer/styles.d.ts +34 -0
- package/dist/cjs/molecules/EmphasizedText/EmphasizedText.d.ts +6 -0
- package/dist/cjs/molecules/EmphasizedText/EmphasizedText.stories.d.ts +8 -0
- package/dist/cjs/molecules/FeedContentHeader/FeedContentHeader.d.ts +11 -0
- package/dist/cjs/molecules/FeedContentHeader/FeedContentHeader.stories.d.ts +8 -0
- package/dist/cjs/molecules/FieldLabels/FieldLabels.d.ts +42 -0
- package/dist/cjs/molecules/FieldLabels/FieldLabels.stories.d.ts +8 -0
- package/dist/cjs/molecules/FieldLabels/helpers.d.ts +8 -0
- package/dist/cjs/molecules/FieldMapper/FieldMapper.d.ts +13 -0
- package/dist/cjs/molecules/FieldSection/FieldSection.d.ts +9 -0
- package/dist/cjs/molecules/FieldSection/FieldSection.stories.d.ts +8 -0
- package/dist/cjs/molecules/HorizontalButtonsField/HorizontalButtonsField.d.ts +12 -0
- package/dist/cjs/molecules/HorizontalButtonsField/HorizontalButtonsField.stories.d.ts +15 -0
- package/dist/cjs/molecules/Image/Image.d.ts +20 -0
- package/dist/cjs/molecules/Image/Image.stories.d.ts +8 -0
- package/dist/cjs/molecules/InputField/InputField.d.ts +22 -0
- package/dist/cjs/molecules/InputField/InputField.stories.d.ts +66 -0
- package/dist/cjs/molecules/Link/Link.d.ts +14 -0
- package/dist/cjs/molecules/Link/Link.stories.d.ts +8 -0
- package/dist/cjs/molecules/MenuItems/MenuItem.d.ts +20 -0
- package/dist/cjs/molecules/MenuItems/MenuItems.d.ts +11 -0
- package/dist/cjs/molecules/MenuItems/MenuItems.stories.d.ts +8 -0
- package/dist/cjs/molecules/MenuNavigation/MenuNavigation.d.ts +15 -0
- package/dist/cjs/molecules/MenuNavigation/MenuNavigation.stories.d.ts +9 -0
- package/dist/cjs/molecules/PasswordSetup/PasswordSetup.d.ts +13 -0
- package/dist/cjs/molecules/PasswordSetup/PasswordSetup.stories.d.ts +8 -0
- package/dist/cjs/molecules/PasswordSetup/types.d.ts +25 -0
- package/dist/cjs/molecules/PasswordSetup/utils.d.ts +3 -0
- package/dist/cjs/molecules/PdfDocument/PdfDocument.d.ts +14 -0
- package/dist/cjs/molecules/PdfDocument/PdfDocument.stories.d.ts +8 -0
- package/dist/cjs/molecules/RadioButtonField/RadioButtonField.d.ts +74 -0
- package/dist/cjs/molecules/RadioButtonField/RadioButtonField.stories.d.ts +74 -0
- package/dist/cjs/molecules/SelectField/SelectField.d.ts +23 -0
- package/dist/cjs/molecules/SelectField/SelectField.stories.d.ts +53 -0
- package/dist/cjs/molecules/SelectableInfoCard/BaseSelectable.d.ts +9 -0
- package/dist/cjs/molecules/SelectableInfoCard/SelectableCardGroup.d.ts +9 -0
- package/dist/cjs/molecules/SelectableInfoCard/SelectableInfoCard.stories.d.ts +8 -0
- package/dist/cjs/molecules/SelectableInfoCard/styles.d.ts +19 -0
- package/dist/cjs/molecules/SettingsSelectionField/SettingsSelectionField.d.ts +9 -0
- package/dist/cjs/molecules/SettingsSelectionField/SettingsSelectionField.stories.d.ts +8 -0
- package/dist/cjs/molecules/Stepper/Step.d.ts +9 -0
- package/dist/cjs/molecules/Stepper/Stepper.d.ts +12 -0
- package/dist/cjs/molecules/Stepper/Stepper.stories.d.ts +8 -0
- package/dist/cjs/molecules/Stepper/styles.d.ts +40 -0
- package/dist/cjs/molecules/TabGroup/TabGroup.d.ts +32 -0
- package/dist/cjs/molecules/TabGroup/TabGroup.stories.d.ts +8 -0
- package/dist/cjs/molecules/TabGroup/styles.d.ts +43 -0
- package/dist/cjs/molecules/TabGroup/useTabAnimation.d.ts +6 -0
- package/dist/cjs/molecules/TextMolecule/TextMolecule.d.ts +20 -0
- package/dist/cjs/molecules/TextMolecule/TextMolecule.stories.d.ts +8 -0
- package/dist/cjs/molecules/Video/Video.d.ts +22 -0
- package/dist/cjs/molecules/Video/Video.stories.d.ts +8 -0
- package/dist/cjs/molecules/ZealUIModal/ZealUIModal.d.ts +30 -0
- package/dist/cjs/molecules/ZealUIModal/ZealUIModal.stories.d.ts +8 -0
- package/dist/cjs/molecules/index.d.ts +31 -0
- package/dist/cjs/organisms/Organism/Organism.d.ts +5 -0
- package/dist/cjs/organisms/Organism/Organism.stories.d.ts +8 -0
- package/dist/cjs/organisms/Organism/mock-data.d.ts +410 -0
- package/dist/cjs/organisms/OrganismItem/OrganismItem.d.ts +14 -0
- package/dist/cjs/organisms/OrganismItem/helpers.d.ts +3 -0
- package/dist/cjs/organisms/index.d.ts +2 -0
- package/dist/cjs/organisms/types.d.ts +21 -0
- package/dist/cjs/theme/index.d.ts +5 -0
- package/dist/cjs/theme/provider.d.ts +7 -0
- package/dist/cjs/theme/theme.d.ts +2 -0
- package/dist/cjs/theme/toastStyles.d.ts +1 -0
- package/dist/cjs/theme/types.d.ts +19 -0
- package/dist/cjs/theme/useMediaQuery.d.ts +2 -0
- package/dist/cjs/typescript.d.ts +17 -0
- package/dist/esm/assets/index.d.ts +8 -0
- package/dist/esm/atoms/Avatar/Avatar.d.ts +20 -0
- package/dist/esm/atoms/Buttons/IconButton.d.ts +12 -0
- package/dist/esm/atoms/Buttons/TextButton.d.ts +21 -0
- package/dist/esm/atoms/Buttons/TouchableOpacity.d.ts +16 -0
- package/dist/esm/atoms/Checkbox/Checkbox.d.ts +14 -0
- package/dist/esm/atoms/Checkbox/helpers.d.ts +2 -0
- package/dist/esm/atoms/Checkbox/types.d.ts +18 -0
- package/dist/esm/atoms/Circle/Circle.d.ts +12 -0
- package/dist/esm/atoms/CircularIndicator/CircularIndicator.d.ts +12 -0
- package/dist/esm/atoms/Divider/Divider.d.ts +13 -0
- package/dist/esm/atoms/HorizontalButtons/HorizontalButtons.d.ts +11 -0
- package/dist/esm/atoms/Icon/Icon.d.ts +38 -0
- package/dist/esm/atoms/Input/Input.d.ts +39 -0
- package/dist/esm/atoms/Input/helpers.d.ts +44 -0
- package/dist/esm/atoms/Paddings/Paddings.d.ts +13 -0
- package/dist/esm/atoms/RadioButtons/RadioButtons.d.ts +56 -0
- package/dist/esm/atoms/RadioButtons/RadioOption.d.ts +11 -0
- package/dist/esm/atoms/RadioButtons/helpers.d.ts +17 -0
- package/dist/esm/atoms/RadioButtons/styles.d.ts +13 -0
- package/dist/esm/atoms/RegularImage/RegularImage.d.ts +38 -0
- package/dist/esm/atoms/RichTextViewer/RichTextViewer.d.ts +24 -0
- package/dist/esm/atoms/RichTextViewer/components/EditorElement.d.ts +5 -0
- package/dist/esm/atoms/RichTextViewer/components/Leaf.d.ts +2 -0
- package/dist/esm/atoms/RichTextViewer/components/index.d.ts +2 -0
- package/dist/esm/atoms/RichTextViewer/types.d.ts +36 -0
- package/dist/esm/atoms/Select/Select.d.ts +34 -0
- package/dist/esm/atoms/Select/styles.d.ts +27 -0
- package/dist/esm/atoms/Spacer/Spacer.d.ts +11 -0
- package/dist/esm/atoms/Spinner/Spinner.d.ts +9 -0
- package/dist/esm/atoms/Tab/Tab.d.ts +56 -0
- package/dist/esm/atoms/Tab/styles.d.ts +18 -0
- package/dist/esm/atoms/Tab/utils.d.ts +4 -0
- package/dist/esm/atoms/TextWrapper/TextWrapper.d.ts +23 -0
- package/dist/esm/atoms/Toast/ToastContent.d.ts +7 -0
- package/dist/esm/atoms/Toast/toast.d.ts +3 -0
- package/dist/esm/atoms/Toast/types.d.ts +6 -0
- package/dist/esm/atoms/Tooltip/Tooltip.d.ts +12 -0
- package/dist/esm/atoms/ValidationTag/ValidationTag.d.ts +6 -0
- package/dist/esm/atoms/index.d.ts +23 -0
- package/dist/esm/constants/params.d.ts +8 -0
- package/dist/esm/containers/Container.d.ts +84 -0
- package/dist/esm/containers/Container.stories.d.ts +7 -0
- package/dist/esm/containers/FormContainer.d.ts +8 -0
- package/dist/esm/containers/FormOrganismItem.d.ts +11 -0
- package/dist/esm/containers/FormStepContainer.d.ts +9 -0
- package/dist/esm/containers/MoleculeItem.d.ts +8 -0
- package/dist/esm/containers/helpers.d.ts +6 -0
- package/dist/esm/containers/hooks/index.d.ts +3 -0
- package/dist/esm/containers/hooks/useCheckCondition.d.ts +16 -0
- package/dist/esm/containers/hooks/useCheckCondition.test.d.ts +1 -0
- package/dist/esm/containers/hooks/useFormOrganismItem.d.ts +3 -0
- package/dist/esm/containers/hooks/useSetFormData.d.ts +10 -0
- package/dist/esm/containers/hooks/useStateListenerValue.d.ts +18 -0
- package/dist/esm/containers/hooks/useStateModifierHandler.d.ts +7 -0
- package/dist/esm/containers/hooks/useStateViewModifierHandler.d.ts +2 -0
- package/dist/esm/containers/index.d.ts +5 -0
- package/dist/esm/containers/mock-data.d.ts +1153 -0
- package/dist/esm/containers/styles.d.ts +41 -0
- package/dist/esm/containers/types/moleculeTypes.d.ts +345 -0
- package/dist/esm/containers/types/types.d.ts +135 -0
- package/dist/esm/contexts/AccountButtonContext/AccountButtonContext.d.ts +14 -0
- package/dist/esm/contexts/AccountButtonContext/AccountButtonContextProvider.d.ts +9 -0
- package/dist/esm/contexts/ButtonActionsContext/ButtonActionsContext.d.ts +12 -0
- package/dist/esm/contexts/ButtonActionsContext/ButtonActionsContextProvider.d.ts +26 -0
- package/dist/esm/contexts/FormStepContext/FormStepContext.d.ts +13 -0
- package/dist/esm/contexts/FormStepContext/FormStepContextProvider.d.ts +5 -0
- package/dist/esm/contexts/FormStepContext/utils.d.ts +2 -0
- package/dist/esm/contexts/MlrRichTextViewerContext/MlrRichTextViewerContext.d.ts +8 -0
- package/dist/esm/contexts/MlrRichTextViewerContext/MlrRichTextViewerProvider.d.ts +8 -0
- package/dist/esm/contexts/MlrRichTextViewerContext/types.d.ts +15 -0
- package/dist/esm/contexts/OrganismContext/OrganismContext.d.ts +33 -0
- package/dist/esm/contexts/OrganismContext/OrganismContextProvider.d.ts +31 -0
- package/dist/esm/contexts/OrganismContext/utils.d.ts +5 -0
- package/dist/esm/contexts/StateContext/StateContext.d.ts +7 -0
- package/dist/esm/contexts/StateContext/StateContextProvider.d.ts +7 -0
- package/dist/esm/contexts/hooks/index.d.ts +6 -0
- package/dist/esm/contexts/hooks/useAccountButtonContext.d.ts +6 -0
- package/dist/esm/contexts/hooks/useButtonActionsContext.d.ts +1 -0
- package/dist/esm/contexts/hooks/useFormStepContext.d.ts +1 -0
- package/dist/esm/contexts/hooks/useMlrRichTextViewerContext.d.ts +1 -0
- package/dist/esm/contexts/hooks/useOrganismContext.d.ts +1 -0
- package/dist/esm/contexts/hooks/useStateContext.d.ts +1 -0
- package/dist/esm/contexts/index.d.ts +13 -0
- package/dist/esm/fieldsConfiguration/getFieldPlaceholder.d.ts +2 -0
- package/dist/esm/fieldsConfiguration/index.d.ts +3 -0
- package/dist/esm/fieldsConfiguration/types.d.ts +29 -0
- package/dist/esm/fieldsConfiguration/utils.d.ts +6 -0
- package/dist/esm/helpers/constants.d.ts +6 -0
- package/dist/esm/helpers/date.d.ts +3 -0
- package/dist/esm/helpers/slate.d.ts +2 -0
- package/dist/esm/helpers/styles.d.ts +5 -0
- package/dist/esm/helpers/utils.d.ts +14 -0
- package/dist/esm/helpers/validations.d.ts +23 -0
- package/dist/esm/hooks/index.d.ts +2 -0
- package/dist/esm/hooks/useRequiredConsentsAcceptedValues.d.ts +2 -0
- package/dist/esm/hooks/useStep.d.ts +11 -0
- package/dist/esm/icons/ArrowRight.d.ts +2 -0
- package/dist/esm/icons/Bell.d.ts +2 -0
- package/dist/esm/icons/Bookmark.d.ts +2 -0
- package/dist/esm/icons/CaretDown.d.ts +2 -0
- package/dist/esm/icons/CaretLeft.d.ts +2 -0
- package/dist/esm/icons/CaretRight.d.ts +2 -0
- package/dist/esm/icons/CaretUp.d.ts +2 -0
- package/dist/esm/icons/Check.d.ts +2 -0
- package/dist/esm/icons/Close.d.ts +2 -0
- package/dist/esm/icons/Edit.d.ts +2 -0
- package/dist/esm/icons/Filter.d.ts +2 -0
- package/dist/esm/icons/Hide.d.ts +2 -0
- package/dist/esm/icons/Info.d.ts +2 -0
- package/dist/esm/icons/InfoBoxIcon.d.ts +2 -0
- package/dist/esm/icons/Mail.d.ts +2 -0
- package/dist/esm/icons/Menu.d.ts +2 -0
- package/dist/esm/icons/Minus.d.ts +2 -0
- package/dist/esm/icons/Mobile.d.ts +2 -0
- package/dist/esm/icons/Play.d.ts +2 -0
- package/dist/esm/icons/Save.d.ts +2 -0
- package/dist/esm/icons/Search.d.ts +2 -0
- package/dist/esm/icons/View.d.ts +2 -0
- package/dist/esm/icons/Warning.d.ts +2 -0
- package/dist/esm/icons/index.d.ts +23 -0
- package/dist/esm/index.css +503 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/molecules/Alert/Alert.d.ts +20 -0
- package/dist/esm/molecules/Alert/Alert.stories.d.ts +9 -0
- package/dist/esm/molecules/AvatarDropdown/AvatarDropdown.d.ts +11 -0
- package/dist/esm/molecules/AvatarDropdown/AvatarDropdown.stories.d.ts +8 -0
- package/dist/esm/molecules/BottomNavBarItem/BottomNavBarItem.d.ts +11 -0
- package/dist/esm/molecules/BottomNavBarItem/BottomNavBarItem.stories.d.ts +8 -0
- package/dist/esm/molecules/Button/Button.d.ts +47 -0
- package/dist/esm/molecules/Button/Button.stories.d.ts +8 -0
- package/dist/esm/molecules/Caruser/Carousel.d.ts +35 -0
- package/dist/esm/molecules/CheckboxField/CheckboxField.d.ts +37 -0
- package/dist/esm/molecules/CheckboxField/CheckboxField.stories.d.ts +61 -0
- package/dist/esm/molecules/CheckboxField/CheckboxGroup.d.ts +10 -0
- package/dist/esm/molecules/CheckboxField/CheckboxGroup.stories.d.ts +32 -0
- package/dist/esm/molecules/CheckboxField/styles.d.ts +13 -0
- package/dist/esm/molecules/Checklist/Checklist.d.ts +30 -0
- package/dist/esm/molecules/Checklist/Checklist.stories.d.ts +8 -0
- package/dist/esm/molecules/Consent/Consent.d.ts +27 -0
- package/dist/esm/molecules/Consent/Consent.stories.d.ts +8 -0
- package/dist/esm/molecules/Consent/ConsentCapture.d.ts +20 -0
- package/dist/esm/molecules/Consent/ConsentMolecule.d.ts +11 -0
- package/dist/esm/molecules/Consent/consentMock.d.ts +7 -0
- package/dist/esm/molecules/CustomValidation/CustomValidation.d.ts +14 -0
- package/dist/esm/molecules/CustomValidation/CustomValidation.stories.d.ts +8 -0
- package/dist/esm/molecules/Drawer/Drawer.d.ts +3 -0
- package/dist/esm/molecules/Drawer/Drawer.stories.d.ts +9 -0
- package/dist/esm/molecules/Drawer/styles.d.ts +34 -0
- package/dist/esm/molecules/EmphasizedText/EmphasizedText.d.ts +6 -0
- package/dist/esm/molecules/EmphasizedText/EmphasizedText.stories.d.ts +8 -0
- package/dist/esm/molecules/FeedContentHeader/FeedContentHeader.d.ts +11 -0
- package/dist/esm/molecules/FeedContentHeader/FeedContentHeader.stories.d.ts +8 -0
- package/dist/esm/molecules/FieldLabels/FieldLabels.d.ts +42 -0
- package/dist/esm/molecules/FieldLabels/FieldLabels.stories.d.ts +8 -0
- package/dist/esm/molecules/FieldLabels/helpers.d.ts +8 -0
- package/dist/esm/molecules/FieldMapper/FieldMapper.d.ts +13 -0
- package/dist/esm/molecules/FieldSection/FieldSection.d.ts +9 -0
- package/dist/esm/molecules/FieldSection/FieldSection.stories.d.ts +8 -0
- package/dist/esm/molecules/HorizontalButtonsField/HorizontalButtonsField.d.ts +12 -0
- package/dist/esm/molecules/HorizontalButtonsField/HorizontalButtonsField.stories.d.ts +15 -0
- package/dist/esm/molecules/Image/Image.d.ts +20 -0
- package/dist/esm/molecules/Image/Image.stories.d.ts +8 -0
- package/dist/esm/molecules/InputField/InputField.d.ts +22 -0
- package/dist/esm/molecules/InputField/InputField.stories.d.ts +66 -0
- package/dist/esm/molecules/Link/Link.d.ts +14 -0
- package/dist/esm/molecules/Link/Link.stories.d.ts +8 -0
- package/dist/esm/molecules/MenuItems/MenuItem.d.ts +20 -0
- package/dist/esm/molecules/MenuItems/MenuItems.d.ts +11 -0
- package/dist/esm/molecules/MenuItems/MenuItems.stories.d.ts +8 -0
- package/dist/esm/molecules/MenuNavigation/MenuNavigation.d.ts +15 -0
- package/dist/esm/molecules/MenuNavigation/MenuNavigation.stories.d.ts +9 -0
- package/dist/esm/molecules/PasswordSetup/PasswordSetup.d.ts +13 -0
- package/dist/esm/molecules/PasswordSetup/PasswordSetup.stories.d.ts +8 -0
- package/dist/esm/molecules/PasswordSetup/types.d.ts +25 -0
- package/dist/esm/molecules/PasswordSetup/utils.d.ts +3 -0
- package/dist/esm/molecules/PdfDocument/PdfDocument.d.ts +14 -0
- package/dist/esm/molecules/PdfDocument/PdfDocument.stories.d.ts +8 -0
- package/dist/esm/molecules/RadioButtonField/RadioButtonField.d.ts +74 -0
- package/dist/esm/molecules/RadioButtonField/RadioButtonField.stories.d.ts +74 -0
- package/dist/esm/molecules/SelectField/SelectField.d.ts +23 -0
- package/dist/esm/molecules/SelectField/SelectField.stories.d.ts +53 -0
- package/dist/esm/molecules/SelectableInfoCard/BaseSelectable.d.ts +9 -0
- package/dist/esm/molecules/SelectableInfoCard/SelectableCardGroup.d.ts +9 -0
- package/dist/esm/molecules/SelectableInfoCard/SelectableInfoCard.stories.d.ts +8 -0
- package/dist/esm/molecules/SelectableInfoCard/styles.d.ts +19 -0
- package/dist/esm/molecules/SettingsSelectionField/SettingsSelectionField.d.ts +9 -0
- package/dist/esm/molecules/SettingsSelectionField/SettingsSelectionField.stories.d.ts +8 -0
- package/dist/esm/molecules/Stepper/Step.d.ts +9 -0
- package/dist/esm/molecules/Stepper/Stepper.d.ts +12 -0
- package/dist/esm/molecules/Stepper/Stepper.stories.d.ts +8 -0
- package/dist/esm/molecules/Stepper/styles.d.ts +40 -0
- package/dist/esm/molecules/TabGroup/TabGroup.d.ts +32 -0
- package/dist/esm/molecules/TabGroup/TabGroup.stories.d.ts +8 -0
- package/dist/esm/molecules/TabGroup/styles.d.ts +43 -0
- package/dist/esm/molecules/TabGroup/useTabAnimation.d.ts +6 -0
- package/dist/esm/molecules/TextMolecule/TextMolecule.d.ts +20 -0
- package/dist/esm/molecules/TextMolecule/TextMolecule.stories.d.ts +8 -0
- package/dist/esm/molecules/Video/Video.d.ts +22 -0
- package/dist/esm/molecules/Video/Video.stories.d.ts +8 -0
- package/dist/esm/molecules/ZealUIModal/ZealUIModal.d.ts +30 -0
- package/dist/esm/molecules/ZealUIModal/ZealUIModal.stories.d.ts +8 -0
- package/dist/esm/molecules/index.d.ts +31 -0
- package/dist/esm/organisms/Organism/Organism.d.ts +5 -0
- package/dist/esm/organisms/Organism/Organism.stories.d.ts +8 -0
- package/dist/esm/organisms/Organism/mock-data.d.ts +410 -0
- package/dist/esm/organisms/OrganismItem/OrganismItem.d.ts +14 -0
- package/dist/esm/organisms/OrganismItem/helpers.d.ts +3 -0
- package/dist/esm/organisms/index.d.ts +2 -0
- package/dist/esm/organisms/types.d.ts +21 -0
- package/dist/esm/theme/index.d.ts +5 -0
- package/dist/esm/theme/provider.d.ts +7 -0
- package/dist/esm/theme/theme.d.ts +2 -0
- package/dist/esm/theme/toastStyles.d.ts +1 -0
- package/dist/esm/theme/types.d.ts +19 -0
- package/dist/esm/theme/useMediaQuery.d.ts +2 -0
- package/dist/esm/typescript.d.ts +17 -0
- package/dist/index.d.ts +1943 -0
- package/package.json +13 -4
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/atoms/Buttons/TouchableOpacity.tsx","../../src/helpers/styles.ts","../../src/theme/theme.ts","../../src/theme/toastStyles.ts","../../src/theme/provider.tsx","../../src/theme/useMediaQuery.ts","../../src/icons/Bookmark.tsx","../../src/icons/CaretDown.tsx","../../src/icons/CaretUp.tsx","../../src/icons/CaretLeft.tsx","../../src/icons/CaretRight.tsx","../../src/icons/Check.tsx","../../src/icons/Info.tsx","../../src/icons/Filter.tsx","../../src/icons/Close.tsx","../../src/icons/View.tsx","../../src/icons/Hide.tsx","../../src/icons/InfoBoxIcon.tsx","../../src/icons/Minus.tsx","../../src/icons/Bell.tsx","../../src/icons/Warning.tsx","../../src/icons/Mobile.tsx","../../src/icons/Mail.tsx","../../src/icons/Edit.tsx","../../src/icons/Save.tsx","../../src/icons/Menu.tsx","../../src/icons/Play.tsx","../../src/icons/Search.tsx","../../src/icons/ArrowRight.tsx","../../src/atoms/Icon/Icon.tsx","../../src/contexts/FormStepContext/FormStepContext.ts","../../src/contexts/ButtonActionsContext/ButtonActionsContext.ts","../../src/contexts/hooks/useButtonActionsContext.ts","../../src/contexts/MlrRichTextViewerContext/MlrRichTextViewerContext.ts","../../src/contexts/hooks/useMlrRichTextViewerContext.ts","../../src/contexts/OrganismContext/OrganismContext.ts","../../src/contexts/hooks/useOrganismContext.ts","../../src/contexts/StateContext/StateContext.ts","../../src/contexts/hooks/useStateContext.ts","../../src/contexts/AccountButtonContext/AccountButtonContext.ts","../../src/containers/hooks/useStateModifierHandler.ts","../../src/constants/params.ts","../../node_modules/text-mask-addons/dist/textMaskAddons.js","../../src/helpers/validations.ts","../../src/helpers/utils.ts","../../node_modules/is-plain-object/dist/is-plain-object.mjs","../../node_modules/immer/dist/immer.esm.mjs","../../node_modules/slate/dist/index.es.js","../../node_modules/direction/index.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../node_modules/compute-scroll-into-view/dist/index.module.js","../../node_modules/scroll-into-view-if-needed/es/index.js","../../node_modules/is-hotkey/lib/index.js","../../node_modules/slate-react/dist/index.es.js","../../src/atoms/RichTextViewer/components/EditorElement.tsx","../../src/atoms/RichTextViewer/components/Leaf.tsx","../../src/atoms/RichTextViewer/RichTextViewer.tsx","../../src/atoms/Spacer/Spacer.tsx","../../src/atoms/TextWrapper/TextWrapper.tsx","../../src/atoms/Checkbox/helpers.ts","../../src/atoms/Checkbox/Checkbox.tsx","../../src/helpers/slate.ts","../../src/atoms/Select/styles.tsx","../../src/atoms/Select/Select.tsx","../../node_modules/react-text-mask/dist/reactTextMask.js","../../node_modules/text-mask-addons/dist/emailMask.js","../../src/atoms/Input/helpers.ts","../../src/atoms/Input/Input.tsx","../../src/atoms/Spinner/Spinner.tsx","../../src/atoms/RegularImage/RegularImage.tsx","../../src/atoms/Buttons/TextButton.tsx","../../src/atoms/ValidationTag/ValidationTag.tsx","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/esm/createSuper.js","../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/rc-util/es/raf.js","../../node_modules/rc-util/es/Dom/contains.js","../../node_modules/rc-util/es/Dom/findDOMNode.js","../../node_modules/rc-util/es/ref.js","../../node_modules/rc-util/es/Dom/addEventListener.js","../../node_modules/rc-util/es/Dom/canUseDom.js","../../node_modules/react-is/index.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/rc-util/es/Portal.js","../../node_modules/classnames/index.js","../../node_modules/rc-trigger/es/utils/alignUtil.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/rc-motion/es/util/motion.js","../../node_modules/rc-util/es/hooks/useState.js","../../node_modules/rc-motion/es/hooks/useNextFrame.js","../../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../../node_modules/rc-motion/es/hooks/useStepQueue.js","../../node_modules/rc-motion/es/interface.js","../../node_modules/rc-motion/es/hooks/useStatus.js","../../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../../node_modules/rc-motion/es/DomWrapper.js","../../node_modules/rc-motion/es/CSSMotion.js","../../node_modules/rc-motion/es/util/diff.js","../../node_modules/rc-motion/es/CSSMotionList.js","../../node_modules/rc-trigger/es/utils/legacyUtil.js","../../node_modules/rc-trigger/es/Popup/Mask.js","../../node_modules/rc-util/es/Dom/isVisible.js","../../node_modules/dom-align/dist-web/index.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/isEqual.js","../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../node_modules/rc-align/es/util.js","../../node_modules/rc-align/es/Align.js","../../node_modules/rc-align/es/hooks/useBuffer.js","../../node_modules/rc-util/es/hooks/useLayoutEffect.js","../../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../../node_modules/rc-trigger/es/Popup/PopupInner.js","../../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../../node_modules/rc-trigger/es/Popup/index.js","../../node_modules/rc-util/es/isMobile.js","../../node_modules/rc-trigger/es/context.js","../../node_modules/rc-trigger/es/index.js","../../node_modules/rc-tooltip/es/placements.js","../../node_modules/rc-tooltip/es/Popup.js","../../node_modules/rc-tooltip/es/Tooltip.js","../../node_modules/rc-util/es/React/render.js","../../src/atoms/Tooltip/Tooltip.tsx","../../node_modules/rc-notification/es/Notice.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/rc-notification/es/Notification.js","../../node_modules/rc-notification/es/useNotification.js","../../src/atoms/Toast/ToastContent.tsx","../../src/atoms/Toast/toast.tsx","../../src/atoms/HorizontalButtons/HorizontalButtons.tsx","../../src/atoms/Avatar/Avatar.tsx","../../src/atoms/Paddings/Paddings.tsx","../../src/atoms/Divider/Divider.tsx","../../src/atoms/RadioButtons/helpers.ts","../../src/atoms/RadioButtons/styles.ts","../../src/atoms/RadioButtons/RadioOption.tsx","../../src/atoms/RadioButtons/RadioButtons.tsx","../../src/atoms/Circle/Circle.tsx","../../src/atoms/CircularIndicator/CircularIndicator.tsx","../../src/atoms/Buttons/IconButton.tsx","../../src/atoms/Tab/utils.ts","../../src/atoms/Tab/styles.ts","../../src/containers/helpers.ts","../../src/containers/styles.ts","../../src/molecules/TextMolecule/TextMolecule.tsx","../../src/molecules/FieldLabels/FieldLabels.tsx","../../src/molecules/FieldLabels/helpers.ts","../../node_modules/react-hook-form/dist/index.esm.mjs","../../src/containers/hooks/useCheckCondition.ts","../../src/containers/hooks/useSetFormData.ts","../../src/containers/hooks/useFormOrganismItem.ts","../../src/molecules/InputField/InputField.tsx","../../src/fieldsConfiguration/getFieldPlaceholder.ts","../../src/fieldsConfiguration/utils.ts","../../src/molecules/FieldMapper/FieldMapper.tsx","../../src/molecules/CheckboxField/styles.ts","../../src/molecules/CheckboxField/CheckboxField.tsx","../../src/molecules/CheckboxField/CheckboxGroup.tsx","../../src/molecules/SelectField/SelectField.tsx","../../src/molecules/CustomValidation/CustomValidation.tsx","../../src/molecules/SelectableInfoCard/styles.ts","../../src/molecules/SelectableInfoCard/BaseSelectable.tsx","../../src/molecules/SelectableInfoCard/SelectableCardGroup.tsx","../../src/helpers/constants.ts","../../src/molecules/Drawer/styles.ts","../../src/molecules/Drawer/Drawer.tsx","../../node_modules/rc-dropdown/es/placements.js","../../node_modules/rc-util/es/KeyCode.js","../../node_modules/rc-util/es/Dom/focus.js","../../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../../node_modules/rc-dropdown/es/Dropdown.js","../../src/molecules/MenuItems/MenuItem.tsx","../../src/molecules/MenuItems/MenuItems.tsx","../../src/molecules/AvatarDropdown/AvatarDropdown.tsx","../../src/molecules/TabGroup/styles.ts","../../src/molecules/MenuNavigation/MenuNavigation.tsx","../../src/molecules/TabGroup/TabGroup.tsx","../../src/molecules/TabGroup/useTabAnimation.ts","../../src/molecules/FieldSection/FieldSection.tsx","../../src/molecules/EmphasizedText/EmphasizedText.tsx","../../src/molecules/RadioButtonField/RadioButtonField.tsx","../../src/molecules/Alert/Alert.tsx","../../src/molecules/Link/Link.tsx","../../src/molecules/Stepper/styles.ts","../../src/molecules/Stepper/Step.tsx","../../src/molecules/Stepper/Stepper.tsx","../../src/molecules/PdfDocument/PdfDocument.tsx","../../src/molecules/FeedContentHeader/FeedContentHeader.tsx","../../src/molecules/HorizontalButtonsField/HorizontalButtonsField.tsx","../../src/molecules/BottomNavBarItem/BottomNavBarItem.tsx","../../src/molecules/Video/Video.tsx","../../src/contexts/MlrRichTextViewerContext/MlrRichTextViewerProvider.tsx","../../src/contexts/OrganismContext/utils.ts","../../src/contexts/OrganismContext/OrganismContextProvider.tsx","../../src/containers/hooks/useStateListenerValue.ts","../../src/hooks/useStep.ts","../../src/hooks/useRequiredConsentsAcceptedValues.tsx","../../src/contexts/FormStepContext/FormStepContextProvider.tsx","../../src/contexts/FormStepContext/utils.ts","../../src/containers/FormContainer.tsx","../../src/containers/FormStepContainer.tsx","../../src/contexts/hooks/useFormStepContext.ts","../../src/containers/Container.tsx","../../src/containers/hooks/useStateViewModifierHandler.ts","../../src/containers/FormOrganismItem.tsx","../../src/molecules/Consent/ConsentMolecule.tsx","../../src/molecules/PasswordSetup/utils.ts","../../src/molecules/PasswordSetup/PasswordSetup.tsx","../../src/containers/mock-data.ts","../../src/containers/MoleculeItem.tsx","../../src/contexts/hooks/useAccountButtonContext.ts","../../src/organisms/OrganismItem/OrganismItem.tsx","../../src/contexts/ButtonActionsContext/ButtonActionsContextProvider.tsx","../../src/contexts/AccountButtonContext/AccountButtonContextProvider.tsx","../../src/contexts/StateContext/StateContextProvider.tsx","../../src/molecules/Image/Image.tsx","../../src/molecules/Caruser/Carousel.tsx","../../src/molecules/Button/Button.tsx","../../src/molecules/ZealUIModal/ZealUIModal.tsx","../../src/molecules/Consent/ConsentCapture.tsx","../../src/molecules/Consent/Consent.tsx","../../src/molecules/Checklist/Checklist.tsx","../../src/atoms/Tab/Tab.tsx"],"sourcesContent":["/******************************************************************************\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\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: 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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.textMaskAddons=t():e.textMaskAddons=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(1);Object.defineProperty(t,\"createAutoCorrectedDatePipe\",{enumerable:!0,get:function(){return r(i).default}});var o=n(2);Object.defineProperty(t,\"createNumberMask\",{enumerable:!0,get:function(){return r(o).default}});var u=n(3);Object.defineProperty(t,\"emailMask\",{enumerable:!0,get:function(){return r(u).default}})},function(e,t){\"use strict\";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"mm dd yyyy\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.minYear,o=void 0===n?1:n,u=t.maxYear,a=void 0===u?9999:u,c=e.split(/[^dmyHMS]+/).sort(function(e,t){return i.indexOf(e)-i.indexOf(t)});return function(t){var n=[],i={dd:31,mm:12,yy:99,yyyy:a,HH:23,MM:59,SS:59},u={dd:1,mm:1,yy:0,yyyy:o,HH:0,MM:0,SS:0},l=t.split(\"\");c.forEach(function(t){var r=e.indexOf(t),o=parseInt(i[t].toString().substr(0,1),10);parseInt(l[r],10)>o&&(l[r+1]=l[r],l[r]=0,n.push(r))});var s=0,d=c.some(function(n){var c=e.indexOf(n),l=n.length,d=t.substr(c,l).replace(/\\D/g,\"\"),f=parseInt(d,10);\"mm\"===n&&(s=f||0);var p=\"dd\"===n?r[s]:i[n];if(\"yyyy\"===n&&(1!==o||9999!==a)){var v=parseInt(i[n].toString().substring(0,d.length),10),y=parseInt(u[n].toString().substring(0,d.length),10);return f<y||f>v}return f>p||d.length===l&&f<u[n]});return!d&&{value:l.join(\"\"),indexesOfPipedChars:n}}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=n;var r=[31,31,29,31,30,31,30,31,31,30,31,30,31],i=[\"yyyy\",\"yy\",\"mm\",\"dd\",\"HH\",\"MM\",\"SS\"]},function(e,t){\"use strict\";function n(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=e.length;if(e===a||e[0]===g[0]&&1===t)return g.split(a).concat([v]).concat(h.split(a));if(e===P&&_)return g.split(a).concat([\"0\",P,v]).concat(h.split(a));var n=e[0]===s&&D;n&&(e=e.toString().substr(1));var u=e.lastIndexOf(P),c=u!==-1,l=void 0,m=void 0,b=void 0;if(e.slice($*-1)===h&&(e=e.slice(0,$*-1)),c&&(_||I)?(l=e.slice(e.slice(0,N)===g?N:0,u),m=e.slice(u+1,t),m=r(m.replace(f,a))):l=e.slice(0,N)===g?e.slice(N):e,L&&(\"undefined\"==typeof L?\"undefined\":o(L))===p){var O=\".\"===S?\"[.]\":\"\"+S,M=(l.match(new RegExp(O,\"g\"))||[]).length;l=l.slice(0,L+M*V)}return l=l.replace(f,a),R||(l=l.replace(/^0+(0$|[^0])/,\"$1\")),l=x?i(l,S):l,b=r(l),(c&&_||I===!0)&&(e[u-1]!==P&&b.push(y),b.push(P,y),m&&((\"undefined\"==typeof C?\"undefined\":o(C))===p&&(m=m.slice(0,C)),b=b.concat(m)),I===!0&&e[u-1]===P&&b.push(v)),N>0&&(b=g.split(a).concat(b)),n&&(b.length===N&&b.push(v),b=[d].concat(b)),h.length>0&&(b=b.concat(h.split(a))),b}var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.prefix,g=void 0===n?u:n,m=t.suffix,h=void 0===m?a:m,b=t.includeThousandsSeparator,x=void 0===b||b,O=t.thousandsSeparatorSymbol,S=void 0===O?c:O,M=t.allowDecimal,_=void 0!==M&&M,j=t.decimalSymbol,P=void 0===j?l:j,w=t.decimalLimit,C=void 0===w?2:w,H=t.requireDecimal,I=void 0!==H&&H,k=t.allowNegative,D=void 0!==k&&k,E=t.allowLeadingZeroes,R=void 0!==E&&E,A=t.integerLimit,L=void 0===A?null:A,N=g&&g.length||0,$=h&&h.length||0,V=S&&S.length||0;return e.instanceOf=\"createNumberMask\",e}function r(e){return e.split(a).map(function(e){return v.test(e)?v:e})}function i(e,t){return e.replace(/\\B(?=(\\d{3})+(?!\\d))/g,t)}Object.defineProperty(t,\"__esModule\",{value:!0});var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=n;var u=\"$\",a=\"\",c=\",\",l=\".\",s=\"-\",d=/-/,f=/\\D+/g,p=\"number\",v=/\\d/,y=\"[]\"},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){e=e.replace(O,v);var n=t.placeholderChar,r=t.currentCaretPosition,i=e.indexOf(y),s=e.lastIndexOf(p),d=s<i?-1:s,f=o(e,i+1,y),g=o(e,d-1,p),m=u(e,i,n),h=a(e,i,d,n),b=c(e,d,n,r);m=l(m),h=l(h),b=l(b,!0);var x=m.concat(f).concat(h).concat(g).concat(b);return x}function o(e,t,n){var r=[];return e[t]===n?r.push(n):r.push(g,n),r.push(g),r}function u(e,t){return t===-1?e:e.slice(0,t)}function a(e,t,n,r){var i=v;return t!==-1&&(i=n===-1?e.slice(t+1,e.length):e.slice(t+1,n)),i=i.replace(new RegExp(\"[\\\\s\"+r+\"]\",h),v),i===y?f:i.length<1?m:i[i.length-1]===p?i.slice(0,i.length-1):i}function c(e,t,n,r){var i=v;return t!==-1&&(i=e.slice(t+1,e.length)),i=i.replace(new RegExp(\"[\\\\s\"+n+\".]\",h),v),0===i.length?e[t-1]===p&&r!==e.length?f:v:i}function l(e,t){return e.split(v).map(function(e){return e===m?e:t?x:b})}Object.defineProperty(t,\"__esModule\",{value:!0});var s=n(4),d=r(s),f=\"*\",p=\".\",v=\"\",y=\"@\",g=\"[]\",m=\" \",h=\"g\",b=/[^\\s]/,x=/[^.\\s]/,O=/\\s/g;t.default={mask:i,pipe:d.default}},function(e,t){\"use strict\";function n(e,t){var n=t.currentCaretPosition,o=t.rawValue,f=t.previousConformedValue,p=t.placeholderChar,v=e;v=r(v);var y=v.indexOf(a),g=null===o.match(new RegExp(\"[^@\\\\s.\"+p+\"]\"));if(g)return u;if(v.indexOf(l)!==-1||y!==-1&&n!==y+1||o.indexOf(i)===-1&&f!==u&&o.indexOf(c)!==-1)return!1;var m=v.indexOf(i),h=v.slice(m+1,v.length);return(h.match(d)||s).length>1&&v.substr(-1)===c&&n!==o.length&&(v=v.slice(0,v.length-1)),v}function r(e){var t=0;return e.replace(o,function(){return t++,1===t?i:u})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=n;var i=\"@\",o=/@/g,u=\"\",a=\"@.\",c=\".\",l=\"..\",s=[],d=/\\./g}])});",null,null,"/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){var r;return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.O&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=\"\"+i[s];0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.O&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.D.set(n,!1):r.D.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&\"number\"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.g=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import { isPlainObject } from 'is-plain-object';\nimport { produce, createDraft, finishDraft, isDraft } from 'immer';\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\nvar DIRTY_PATHS = new WeakMap();\nvar DIRTY_PATH_KEYS = new WeakMap();\nvar FLUSHING = new WeakMap();\nvar NORMALIZING = new WeakMap();\nvar PATH_REFS = new WeakMap();\nvar POINT_REFS = new WeakMap();\nvar RANGE_REFS = new WeakMap();\n\nfunction ownKeys$9(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$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * Create a new Slate `Editor` object.\r\n */\n\nvar createEditor = () => {\n var editor = {\n children: [],\n operations: [],\n selection: null,\n marks: null,\n isInline: () => false,\n isVoid: () => false,\n markableVoid: () => false,\n onChange: () => {},\n apply: op => {\n for (var ref of Editor.pathRefs(editor)) {\n PathRef.transform(ref, op);\n }\n\n for (var _ref of Editor.pointRefs(editor)) {\n PointRef.transform(_ref, op);\n }\n\n for (var _ref2 of Editor.rangeRefs(editor)) {\n RangeRef.transform(_ref2, op);\n }\n\n var oldDirtyPaths = DIRTY_PATHS.get(editor) || [];\n var oldDirtyPathKeys = DIRTY_PATH_KEYS.get(editor) || new Set();\n var dirtyPaths;\n var dirtyPathKeys;\n\n var add = path => {\n if (path) {\n var key = path.join(',');\n\n if (!dirtyPathKeys.has(key)) {\n dirtyPathKeys.add(key);\n dirtyPaths.push(path);\n }\n }\n };\n\n if (Path.operationCanTransformPath(op)) {\n dirtyPaths = [];\n dirtyPathKeys = new Set();\n\n for (var path of oldDirtyPaths) {\n var newPath = Path.transform(path, op);\n add(newPath);\n }\n } else {\n dirtyPaths = oldDirtyPaths;\n dirtyPathKeys = oldDirtyPathKeys;\n }\n\n var newDirtyPaths = editor.getDirtyPaths(op);\n\n for (var _path of newDirtyPaths) {\n add(_path);\n }\n\n DIRTY_PATHS.set(editor, dirtyPaths);\n DIRTY_PATH_KEYS.set(editor, dirtyPathKeys);\n Transforms.transform(editor, op);\n editor.operations.push(op);\n Editor.normalize(editor); // Clear any formats applied to the cursor if the selection changes.\n\n if (op.type === 'set_selection') {\n editor.marks = null;\n }\n\n if (!FLUSHING.get(editor)) {\n FLUSHING.set(editor, true);\n Promise.resolve().then(() => {\n FLUSHING.set(editor, false);\n editor.onChange();\n editor.operations = [];\n });\n }\n },\n addMark: (key, value) => {\n var {\n selection,\n markableVoid\n } = editor;\n\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.setNodes(editor, {\n [key]: value\n }, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$9(_objectSpread$9({}, Editor.marks(editor) || {}), {}, {\n [key]: value\n });\n\n editor.marks = marks;\n\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n },\n deleteBackward: unit => {\n var {\n selection\n } = editor;\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit,\n reverse: true\n });\n }\n },\n deleteForward: unit => {\n var {\n selection\n } = editor;\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit\n });\n }\n },\n deleteFragment: direction => {\n var {\n selection\n } = editor;\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.delete(editor, {\n reverse: direction === 'backward'\n });\n }\n },\n getFragment: () => {\n var {\n selection\n } = editor;\n\n if (selection) {\n return Node.fragment(editor, selection);\n }\n\n return [];\n },\n insertBreak: () => {\n Transforms.splitNodes(editor, {\n always: true\n });\n },\n insertSoftBreak: () => {\n Transforms.splitNodes(editor, {\n always: true\n });\n },\n insertFragment: fragment => {\n Transforms.insertFragment(editor, fragment);\n },\n insertNode: node => {\n Transforms.insertNodes(editor, node);\n },\n insertText: text => {\n var {\n selection,\n marks\n } = editor;\n\n if (selection) {\n if (marks) {\n var node = _objectSpread$9({\n text\n }, marks);\n\n Transforms.insertNodes(editor, node);\n } else {\n Transforms.insertText(editor, text);\n }\n\n editor.marks = null;\n }\n },\n normalizeNode: entry => {\n var [node, path] = entry; // There are no core normalizations for text nodes.\n\n if (Text.isText(node)) {\n return;\n } // Ensure that block and inline nodes have at least one text child.\n\n\n if (Element.isElement(node) && node.children.length === 0) {\n var child = {\n text: ''\n };\n Transforms.insertNodes(editor, child, {\n at: path.concat(0),\n voids: true\n });\n return;\n } // Determine whether the node should have block or inline children.\n\n\n var shouldHaveInlines = Editor.isEditor(node) ? false : Element.isElement(node) && (editor.isInline(node) || node.children.length === 0 || Text.isText(node.children[0]) || editor.isInline(node.children[0])); // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n\n var n = 0;\n\n for (var i = 0; i < node.children.length; i++, n++) {\n var currentNode = Node.get(editor, path);\n if (Text.isText(currentNode)) continue;\n var _child = node.children[i];\n var prev = currentNode.children[n - 1];\n var isLast = i === node.children.length - 1;\n var isInlineOrText = Text.isText(_child) || Element.isElement(_child) && editor.isInline(_child); // Only allow block nodes in the top-level children and parent blocks\n // that only contain block nodes. Similarly, only allow inline nodes in\n // other inline nodes, or parent blocks that only contain inlines and\n // text.\n\n if (isInlineOrText !== shouldHaveInlines) {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n } else if (Element.isElement(_child)) {\n // Ensure that inline nodes are surrounded by text nodes.\n if (editor.isInline(_child)) {\n if (prev == null || !Text.isText(prev)) {\n var newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n),\n voids: true\n });\n n++;\n } else if (isLast) {\n var _newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, _newChild, {\n at: path.concat(n + 1),\n voids: true\n });\n n++;\n }\n }\n } else {\n // Merge adjacent text nodes that are empty or match.\n if (prev != null && Text.isText(prev)) {\n if (Text.equals(_child, prev, {\n loose: true\n })) {\n Transforms.mergeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n } else if (prev.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n - 1),\n voids: true\n });\n n--;\n } else if (_child.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n }\n }\n }\n }\n },\n removeMark: key => {\n var {\n selection\n } = editor;\n\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.unsetNodes(editor, key, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$9({}, Editor.marks(editor) || {});\n\n delete marks[key];\n editor.marks = marks;\n\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n },\n\n /**\r\n * Get the \"dirty\" paths generated from an operation.\r\n */\n getDirtyPaths: op => {\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n {\n var {\n path\n } = op;\n return Path.levels(path);\n }\n\n case 'insert_node':\n {\n var {\n node,\n path: _path2\n } = op;\n var levels = Path.levels(_path2);\n var descendants = Text.isText(node) ? [] : Array.from(Node.nodes(node), _ref3 => {\n var [, p] = _ref3;\n return _path2.concat(p);\n });\n return [...levels, ...descendants];\n }\n\n case 'merge_node':\n {\n var {\n path: _path3\n } = op;\n var ancestors = Path.ancestors(_path3);\n var previousPath = Path.previous(_path3);\n return [...ancestors, previousPath];\n }\n\n case 'move_node':\n {\n var {\n path: _path4,\n newPath\n } = op;\n\n if (Path.equals(_path4, newPath)) {\n return [];\n }\n\n var oldAncestors = [];\n var newAncestors = [];\n\n for (var ancestor of Path.ancestors(_path4)) {\n var p = Path.transform(ancestor, op);\n oldAncestors.push(p);\n }\n\n for (var _ancestor of Path.ancestors(newPath)) {\n var _p = Path.transform(_ancestor, op);\n\n newAncestors.push(_p);\n }\n\n var newParent = newAncestors[newAncestors.length - 1];\n var newIndex = newPath[newPath.length - 1];\n var resultPath = newParent.concat(newIndex);\n return [...oldAncestors, ...newAncestors, resultPath];\n }\n\n case 'remove_node':\n {\n var {\n path: _path5\n } = op;\n\n var _ancestors = Path.ancestors(_path5);\n\n return [..._ancestors];\n }\n\n case 'split_node':\n {\n var {\n path: _path6\n } = op;\n\n var _levels = Path.levels(_path6);\n\n var nextPath = Path.next(_path6);\n return [..._levels, nextPath];\n }\n\n default:\n {\n return [];\n }\n }\n }\n };\n return editor;\n};\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n 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\n// Character (grapheme cluster) boundaries are determined according to\n// the default grapheme cluster boundary specification, extended grapheme clusters variant[1].\n//\n// References:\n//\n// [1] https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table\n// [2] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt\n// [3] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.html\n// [4] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt\n\n/**\r\n * Get the distance to the end of the first character in a string of text.\r\n */\nvar getCharacterDistance = function getCharacterDistance(str) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isLTR = !isRTL;\n var codepoints = isRTL ? codepointsIteratorRTL(str) : str;\n var left = CodepointType.None;\n var right = CodepointType.None;\n var distance = 0; // Evaluation of these conditions are deferred.\n\n var gb11 = null; // Is GB11 applicable?\n\n var gb12Or13 = null; // Is GB12 or GB13 applicable?\n\n for (var char of codepoints) {\n var code = char.codePointAt(0);\n if (!code) break;\n var type = getCodepointType(char, code);\n [left, right] = isLTR ? [right, type] : [type, left];\n\n if (intersects(left, CodepointType.ZWJ) && intersects(right, CodepointType.ExtPict)) {\n if (isLTR) {\n gb11 = endsWithEmojiZWJ(str.substring(0, distance));\n } else {\n gb11 = endsWithEmojiZWJ(str.substring(0, str.length - distance));\n }\n\n if (!gb11) break;\n }\n\n if (intersects(left, CodepointType.RI) && intersects(right, CodepointType.RI)) {\n if (gb12Or13 !== null) {\n gb12Or13 = !gb12Or13;\n } else {\n if (isLTR) {\n gb12Or13 = true;\n } else {\n gb12Or13 = endsWithOddNumberOfRIs(str.substring(0, str.length - distance));\n }\n }\n\n if (!gb12Or13) break;\n }\n\n if (left !== CodepointType.None && right !== CodepointType.None && isBoundaryPair(left, right)) {\n break;\n }\n\n distance += char.length;\n }\n\n return distance || 1;\n};\nvar SPACE = /\\s/;\nvar PUNCTUATION = /[\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nvar CHAMELEON = /['\\u2018\\u2019]/;\n/**\r\n * Get the distance to the end of the first word in a string of text.\r\n */\n\nvar getWordDistance = function getWordDistance(text) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dist = 0;\n var started = false;\n\n while (text.length > 0) {\n var charDist = getCharacterDistance(text, isRTL);\n var [char, remaining] = splitByCharacterDistance(text, charDist, isRTL);\n\n if (isWordCharacter(char, remaining, isRTL)) {\n started = true;\n dist += charDist;\n } else if (!started) {\n dist += charDist;\n } else {\n break;\n }\n\n text = remaining;\n }\n\n return dist;\n};\n/**\r\n * Split a string in two parts at a given distance starting from the end when\r\n * `isRTL` is set to `true`.\r\n */\n\nvar splitByCharacterDistance = (str, dist, isRTL) => {\n if (isRTL) {\n var at = str.length - dist;\n return [str.slice(at, str.length), str.slice(0, at)];\n }\n\n return [str.slice(0, dist), str.slice(dist)];\n};\n/**\r\n * Check if a character is a word character. The `remaining` argument is used\r\n * because sometimes you must read subsequent characters to truly determine it.\r\n */\n\nvar isWordCharacter = function isWordCharacter(char, remaining) {\n var isRTL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (SPACE.test(char)) {\n return false;\n } // Chameleons count as word characters as long as they're in a word, so\n // recurse to see if the next one is a word character or not.\n\n\n if (CHAMELEON.test(char)) {\n var charDist = getCharacterDistance(remaining, isRTL);\n var [nextChar, nextRemaining] = splitByCharacterDistance(remaining, charDist, isRTL);\n\n if (isWordCharacter(nextChar, nextRemaining, isRTL)) {\n return true;\n }\n }\n\n if (PUNCTUATION.test(char)) {\n return false;\n }\n\n return true;\n};\n/**\r\n * Iterate on codepoints from right to left.\r\n */\n\n\nvar codepointsIteratorRTL = function* codepointsIteratorRTL(str) {\n var end = str.length - 1;\n\n for (var i = 0; i < str.length; i++) {\n var char1 = str.charAt(end - i);\n\n if (isLowSurrogate(char1.charCodeAt(0))) {\n var char2 = str.charAt(end - i - 1);\n\n if (isHighSurrogate(char2.charCodeAt(0))) {\n yield char2 + char1;\n i++;\n continue;\n }\n }\n\n yield char1;\n }\n};\n/**\r\n * Is `charCode` a high surrogate.\r\n *\r\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\r\n */\n\nvar isHighSurrogate = charCode => {\n return charCode >= 0xd800 && charCode <= 0xdbff;\n};\n/**\r\n * Is `charCode` a low surrogate.\r\n *\r\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\r\n */\n\n\nvar isLowSurrogate = charCode => {\n return charCode >= 0xdc00 && charCode <= 0xdfff;\n};\n\nvar CodepointType;\n\n(function (CodepointType) {\n CodepointType[CodepointType[\"None\"] = 0] = \"None\";\n CodepointType[CodepointType[\"Extend\"] = 1] = \"Extend\";\n CodepointType[CodepointType[\"ZWJ\"] = 2] = \"ZWJ\";\n CodepointType[CodepointType[\"RI\"] = 4] = \"RI\";\n CodepointType[CodepointType[\"Prepend\"] = 8] = \"Prepend\";\n CodepointType[CodepointType[\"SpacingMark\"] = 16] = \"SpacingMark\";\n CodepointType[CodepointType[\"L\"] = 32] = \"L\";\n CodepointType[CodepointType[\"V\"] = 64] = \"V\";\n CodepointType[CodepointType[\"T\"] = 128] = \"T\";\n CodepointType[CodepointType[\"LV\"] = 256] = \"LV\";\n CodepointType[CodepointType[\"LVT\"] = 512] = \"LVT\";\n CodepointType[CodepointType[\"ExtPict\"] = 1024] = \"ExtPict\";\n CodepointType[CodepointType[\"Any\"] = 2048] = \"Any\";\n})(CodepointType || (CodepointType = {}));\n\nvar reExtend = /^(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDF46-\\uDF50]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDD30-\\uDD36\\uDEEC-\\uDEEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])$/;\nvar rePrepend = /^(?:[\\u0600-\\u0605\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u0D4E]|\\uD804[\\uDCBD\\uDCCD\\uDDC2\\uDDC3]|\\uD806[\\uDD3F\\uDD41\\uDE3A\\uDE84-\\uDE89]|\\uD807\\uDD46)$/;\nvar reSpacingMark = /^(?:[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D02\\u0D03\\u0D3F\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D82\\u0D83\\u0DD0\\u0DD1\\u0DD8-\\u0DDE\\u0DF2\\u0DF3\\u0E33\\u0EB3\\u0F3E\\u0F3F\\u0F7F\\u1031\\u103B\\u103C\\u1056\\u1057\\u1084\\u1715\\u1734\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A6D-\\u1A72\\u1B04\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]|\\uD804[\\uDC00\\uDC02\\uDC82\\uDCB0-\\uDCB2\\uDCB7\\uDCB8\\uDD2C\\uDD45\\uDD46\\uDD82\\uDDB3-\\uDDB5\\uDDBF\\uDDC0\\uDDCE\\uDE2C-\\uDE2E\\uDE32\\uDE33\\uDE35\\uDEE0-\\uDEE2\\uDF02\\uDF03\\uDF3F\\uDF41-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF62\\uDF63]|\\uD805[\\uDC35-\\uDC37\\uDC40\\uDC41\\uDC45\\uDCB1\\uDCB2\\uDCB9\\uDCBB\\uDCBC\\uDCBE\\uDCC1\\uDDB0\\uDDB1\\uDDB8-\\uDDBB\\uDDBE\\uDE30-\\uDE32\\uDE3B\\uDE3C\\uDE3E\\uDEAC\\uDEAE\\uDEAF\\uDEB6\\uDF26]|\\uD806[\\uDC2C-\\uDC2E\\uDC38\\uDD31-\\uDD35\\uDD37\\uDD38\\uDD3D\\uDD40\\uDD42\\uDDD1-\\uDDD3\\uDDDC-\\uDDDF\\uDDE4\\uDE39\\uDE57\\uDE58\\uDE97]|\\uD807[\\uDC2F\\uDC3E\\uDCA9\\uDCB1\\uDCB4\\uDD8A-\\uDD8E\\uDD93\\uDD94\\uDD96\\uDEF5\\uDEF6]|\\uD81B[\\uDF51-\\uDF87\\uDFF0\\uDFF1]|\\uD834[\\uDD66\\uDD6D])$/;\nvar reL = /^[\\u1100-\\u115F\\uA960-\\uA97C]$/;\nvar reV = /^[\\u1160-\\u11A7\\uD7B0-\\uD7C6]$/;\nvar reT = /^[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]$/;\nvar reLV = /^[\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788]$/;\nvar reLVT = /^[\\uAC01-\\uAC1B\\uAC1D-\\uAC37\\uAC39-\\uAC53\\uAC55-\\uAC6F\\uAC71-\\uAC8B\\uAC8D-\\uACA7\\uACA9-\\uACC3\\uACC5-\\uACDF\\uACE1-\\uACFB\\uACFD-\\uAD17\\uAD19-\\uAD33\\uAD35-\\uAD4F\\uAD51-\\uAD6B\\uAD6D-\\uAD87\\uAD89-\\uADA3\\uADA5-\\uADBF\\uADC1-\\uADDB\\uADDD-\\uADF7\\uADF9-\\uAE13\\uAE15-\\uAE2F\\uAE31-\\uAE4B\\uAE4D-\\uAE67\\uAE69-\\uAE83\\uAE85-\\uAE9F\\uAEA1-\\uAEBB\\uAEBD-\\uAED7\\uAED9-\\uAEF3\\uAEF5-\\uAF0F\\uAF11-\\uAF2B\\uAF2D-\\uAF47\\uAF49-\\uAF63\\uAF65-\\uAF7F\\uAF81-\\uAF9B\\uAF9D-\\uAFB7\\uAFB9-\\uAFD3\\uAFD5-\\uAFEF\\uAFF1-\\uB00B\\uB00D-\\uB027\\uB029-\\uB043\\uB045-\\uB05F\\uB061-\\uB07B\\uB07D-\\uB097\\uB099-\\uB0B3\\uB0B5-\\uB0CF\\uB0D1-\\uB0EB\\uB0ED-\\uB107\\uB109-\\uB123\\uB125-\\uB13F\\uB141-\\uB15B\\uB15D-\\uB177\\uB179-\\uB193\\uB195-\\uB1AF\\uB1B1-\\uB1CB\\uB1CD-\\uB1E7\\uB1E9-\\uB203\\uB205-\\uB21F\\uB221-\\uB23B\\uB23D-\\uB257\\uB259-\\uB273\\uB275-\\uB28F\\uB291-\\uB2AB\\uB2AD-\\uB2C7\\uB2C9-\\uB2E3\\uB2E5-\\uB2FF\\uB301-\\uB31B\\uB31D-\\uB337\\uB339-\\uB353\\uB355-\\uB36F\\uB371-\\uB38B\\uB38D-\\uB3A7\\uB3A9-\\uB3C3\\uB3C5-\\uB3DF\\uB3E1-\\uB3FB\\uB3FD-\\uB417\\uB419-\\uB433\\uB435-\\uB44F\\uB451-\\uB46B\\uB46D-\\uB487\\uB489-\\uB4A3\\uB4A5-\\uB4BF\\uB4C1-\\uB4DB\\uB4DD-\\uB4F7\\uB4F9-\\uB513\\uB515-\\uB52F\\uB531-\\uB54B\\uB54D-\\uB567\\uB569-\\uB583\\uB585-\\uB59F\\uB5A1-\\uB5BB\\uB5BD-\\uB5D7\\uB5D9-\\uB5F3\\uB5F5-\\uB60F\\uB611-\\uB62B\\uB62D-\\uB647\\uB649-\\uB663\\uB665-\\uB67F\\uB681-\\uB69B\\uB69D-\\uB6B7\\uB6B9-\\uB6D3\\uB6D5-\\uB6EF\\uB6F1-\\uB70B\\uB70D-\\uB727\\uB729-\\uB743\\uB745-\\uB75F\\uB761-\\uB77B\\uB77D-\\uB797\\uB799-\\uB7B3\\uB7B5-\\uB7CF\\uB7D1-\\uB7EB\\uB7ED-\\uB807\\uB809-\\uB823\\uB825-\\uB83F\\uB841-\\uB85B\\uB85D-\\uB877\\uB879-\\uB893\\uB895-\\uB8AF\\uB8B1-\\uB8CB\\uB8CD-\\uB8E7\\uB8E9-\\uB903\\uB905-\\uB91F\\uB921-\\uB93B\\uB93D-\\uB957\\uB959-\\uB973\\uB975-\\uB98F\\uB991-\\uB9AB\\uB9AD-\\uB9C7\\uB9C9-\\uB9E3\\uB9E5-\\uB9FF\\uBA01-\\uBA1B\\uBA1D-\\uBA37\\uBA39-\\uBA53\\uBA55-\\uBA6F\\uBA71-\\uBA8B\\uBA8D-\\uBAA7\\uBAA9-\\uBAC3\\uBAC5-\\uBADF\\uBAE1-\\uBAFB\\uBAFD-\\uBB17\\uBB19-\\uBB33\\uBB35-\\uBB4F\\uBB51-\\uBB6B\\uBB6D-\\uBB87\\uBB89-\\uBBA3\\uBBA5-\\uBBBF\\uBBC1-\\uBBDB\\uBBDD-\\uBBF7\\uBBF9-\\uBC13\\uBC15-\\uBC2F\\uBC31-\\uBC4B\\uBC4D-\\uBC67\\uBC69-\\uBC83\\uBC85-\\uBC9F\\uBCA1-\\uBCBB\\uBCBD-\\uBCD7\\uBCD9-\\uBCF3\\uBCF5-\\uBD0F\\uBD11-\\uBD2B\\uBD2D-\\uBD47\\uBD49-\\uBD63\\uBD65-\\uBD7F\\uBD81-\\uBD9B\\uBD9D-\\uBDB7\\uBDB9-\\uBDD3\\uBDD5-\\uBDEF\\uBDF1-\\uBE0B\\uBE0D-\\uBE27\\uBE29-\\uBE43\\uBE45-\\uBE5F\\uBE61-\\uBE7B\\uBE7D-\\uBE97\\uBE99-\\uBEB3\\uBEB5-\\uBECF\\uBED1-\\uBEEB\\uBEED-\\uBF07\\uBF09-\\uBF23\\uBF25-\\uBF3F\\uBF41-\\uBF5B\\uBF5D-\\uBF77\\uBF79-\\uBF93\\uBF95-\\uBFAF\\uBFB1-\\uBFCB\\uBFCD-\\uBFE7\\uBFE9-\\uC003\\uC005-\\uC01F\\uC021-\\uC03B\\uC03D-\\uC057\\uC059-\\uC073\\uC075-\\uC08F\\uC091-\\uC0AB\\uC0AD-\\uC0C7\\uC0C9-\\uC0E3\\uC0E5-\\uC0FF\\uC101-\\uC11B\\uC11D-\\uC137\\uC139-\\uC153\\uC155-\\uC16F\\uC171-\\uC18B\\uC18D-\\uC1A7\\uC1A9-\\uC1C3\\uC1C5-\\uC1DF\\uC1E1-\\uC1FB\\uC1FD-\\uC217\\uC219-\\uC233\\uC235-\\uC24F\\uC251-\\uC26B\\uC26D-\\uC287\\uC289-\\uC2A3\\uC2A5-\\uC2BF\\uC2C1-\\uC2DB\\uC2DD-\\uC2F7\\uC2F9-\\uC313\\uC315-\\uC32F\\uC331-\\uC34B\\uC34D-\\uC367\\uC369-\\uC383\\uC385-\\uC39F\\uC3A1-\\uC3BB\\uC3BD-\\uC3D7\\uC3D9-\\uC3F3\\uC3F5-\\uC40F\\uC411-\\uC42B\\uC42D-\\uC447\\uC449-\\uC463\\uC465-\\uC47F\\uC481-\\uC49B\\uC49D-\\uC4B7\\uC4B9-\\uC4D3\\uC4D5-\\uC4EF\\uC4F1-\\uC50B\\uC50D-\\uC527\\uC529-\\uC543\\uC545-\\uC55F\\uC561-\\uC57B\\uC57D-\\uC597\\uC599-\\uC5B3\\uC5B5-\\uC5CF\\uC5D1-\\uC5EB\\uC5ED-\\uC607\\uC609-\\uC623\\uC625-\\uC63F\\uC641-\\uC65B\\uC65D-\\uC677\\uC679-\\uC693\\uC695-\\uC6AF\\uC6B1-\\uC6CB\\uC6CD-\\uC6E7\\uC6E9-\\uC703\\uC705-\\uC71F\\uC721-\\uC73B\\uC73D-\\uC757\\uC759-\\uC773\\uC775-\\uC78F\\uC791-\\uC7AB\\uC7AD-\\uC7C7\\uC7C9-\\uC7E3\\uC7E5-\\uC7FF\\uC801-\\uC81B\\uC81D-\\uC837\\uC839-\\uC853\\uC855-\\uC86F\\uC871-\\uC88B\\uC88D-\\uC8A7\\uC8A9-\\uC8C3\\uC8C5-\\uC8DF\\uC8E1-\\uC8FB\\uC8FD-\\uC917\\uC919-\\uC933\\uC935-\\uC94F\\uC951-\\uC96B\\uC96D-\\uC987\\uC989-\\uC9A3\\uC9A5-\\uC9BF\\uC9C1-\\uC9DB\\uC9DD-\\uC9F7\\uC9F9-\\uCA13\\uCA15-\\uCA2F\\uCA31-\\uCA4B\\uCA4D-\\uCA67\\uCA69-\\uCA83\\uCA85-\\uCA9F\\uCAA1-\\uCABB\\uCABD-\\uCAD7\\uCAD9-\\uCAF3\\uCAF5-\\uCB0F\\uCB11-\\uCB2B\\uCB2D-\\uCB47\\uCB49-\\uCB63\\uCB65-\\uCB7F\\uCB81-\\uCB9B\\uCB9D-\\uCBB7\\uCBB9-\\uCBD3\\uCBD5-\\uCBEF\\uCBF1-\\uCC0B\\uCC0D-\\uCC27\\uCC29-\\uCC43\\uCC45-\\uCC5F\\uCC61-\\uCC7B\\uCC7D-\\uCC97\\uCC99-\\uCCB3\\uCCB5-\\uCCCF\\uCCD1-\\uCCEB\\uCCED-\\uCD07\\uCD09-\\uCD23\\uCD25-\\uCD3F\\uCD41-\\uCD5B\\uCD5D-\\uCD77\\uCD79-\\uCD93\\uCD95-\\uCDAF\\uCDB1-\\uCDCB\\uCDCD-\\uCDE7\\uCDE9-\\uCE03\\uCE05-\\uCE1F\\uCE21-\\uCE3B\\uCE3D-\\uCE57\\uCE59-\\uCE73\\uCE75-\\uCE8F\\uCE91-\\uCEAB\\uCEAD-\\uCEC7\\uCEC9-\\uCEE3\\uCEE5-\\uCEFF\\uCF01-\\uCF1B\\uCF1D-\\uCF37\\uCF39-\\uCF53\\uCF55-\\uCF6F\\uCF71-\\uCF8B\\uCF8D-\\uCFA7\\uCFA9-\\uCFC3\\uCFC5-\\uCFDF\\uCFE1-\\uCFFB\\uCFFD-\\uD017\\uD019-\\uD033\\uD035-\\uD04F\\uD051-\\uD06B\\uD06D-\\uD087\\uD089-\\uD0A3\\uD0A5-\\uD0BF\\uD0C1-\\uD0DB\\uD0DD-\\uD0F7\\uD0F9-\\uD113\\uD115-\\uD12F\\uD131-\\uD14B\\uD14D-\\uD167\\uD169-\\uD183\\uD185-\\uD19F\\uD1A1-\\uD1BB\\uD1BD-\\uD1D7\\uD1D9-\\uD1F3\\uD1F5-\\uD20F\\uD211-\\uD22B\\uD22D-\\uD247\\uD249-\\uD263\\uD265-\\uD27F\\uD281-\\uD29B\\uD29D-\\uD2B7\\uD2B9-\\uD2D3\\uD2D5-\\uD2EF\\uD2F1-\\uD30B\\uD30D-\\uD327\\uD329-\\uD343\\uD345-\\uD35F\\uD361-\\uD37B\\uD37D-\\uD397\\uD399-\\uD3B3\\uD3B5-\\uD3CF\\uD3D1-\\uD3EB\\uD3ED-\\uD407\\uD409-\\uD423\\uD425-\\uD43F\\uD441-\\uD45B\\uD45D-\\uD477\\uD479-\\uD493\\uD495-\\uD4AF\\uD4B1-\\uD4CB\\uD4CD-\\uD4E7\\uD4E9-\\uD503\\uD505-\\uD51F\\uD521-\\uD53B\\uD53D-\\uD557\\uD559-\\uD573\\uD575-\\uD58F\\uD591-\\uD5AB\\uD5AD-\\uD5C7\\uD5C9-\\uD5E3\\uD5E5-\\uD5FF\\uD601-\\uD61B\\uD61D-\\uD637\\uD639-\\uD653\\uD655-\\uD66F\\uD671-\\uD68B\\uD68D-\\uD6A7\\uD6A9-\\uD6C3\\uD6C5-\\uD6DF\\uD6E1-\\uD6FB\\uD6FD-\\uD717\\uD719-\\uD733\\uD735-\\uD74F\\uD751-\\uD76B\\uD76D-\\uD787\\uD789-\\uD7A3]$/;\nvar reExtPict = /^(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])$/;\n\nvar getCodepointType = (char, code) => {\n var type = CodepointType.Any;\n\n if (char.search(reExtend) !== -1) {\n type |= CodepointType.Extend;\n }\n\n if (code === 0x200d) {\n type |= CodepointType.ZWJ;\n }\n\n if (code >= 0x1f1e6 && code <= 0x1f1ff) {\n type |= CodepointType.RI;\n }\n\n if (char.search(rePrepend) !== -1) {\n type |= CodepointType.Prepend;\n }\n\n if (char.search(reSpacingMark) !== -1) {\n type |= CodepointType.SpacingMark;\n }\n\n if (char.search(reL) !== -1) {\n type |= CodepointType.L;\n }\n\n if (char.search(reV) !== -1) {\n type |= CodepointType.V;\n }\n\n if (char.search(reT) !== -1) {\n type |= CodepointType.T;\n }\n\n if (char.search(reLV) !== -1) {\n type |= CodepointType.LV;\n }\n\n if (char.search(reLVT) !== -1) {\n type |= CodepointType.LVT;\n }\n\n if (char.search(reExtPict) !== -1) {\n type |= CodepointType.ExtPict;\n }\n\n return type;\n};\n\nfunction intersects(x, y) {\n return (x & y) !== 0;\n}\n\nvar NonBoundaryPairs = [// GB6\n[CodepointType.L, CodepointType.L | CodepointType.V | CodepointType.LV | CodepointType.LVT], // GB7\n[CodepointType.LV | CodepointType.V, CodepointType.V | CodepointType.T], // GB8\n[CodepointType.LVT | CodepointType.T, CodepointType.T], // GB9\n[CodepointType.Any, CodepointType.Extend | CodepointType.ZWJ], // GB9a\n[CodepointType.Any, CodepointType.SpacingMark], // GB9b\n[CodepointType.Prepend, CodepointType.Any], // GB11\n[CodepointType.ZWJ, CodepointType.ExtPict], // GB12 and GB13\n[CodepointType.RI, CodepointType.RI]];\n\nfunction isBoundaryPair(left, right) {\n return NonBoundaryPairs.findIndex(r => intersects(left, r[0]) && intersects(right, r[1])) === -1;\n}\n\nvar endingEmojiZWJ = /(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDF46-\\uDF50]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDD30-\\uDD36\\uDEEC-\\uDEEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*\\u200D$/;\n\nvar endsWithEmojiZWJ = str => {\n return str.search(endingEmojiZWJ) !== -1;\n};\n\nvar endingRIs = /(?:\\uD83C[\\uDDE6-\\uDDFF])+$/g;\n\nvar endsWithOddNumberOfRIs = str => {\n var match = str.match(endingRIs);\n\n if (match === null) {\n return false;\n } else {\n // A RI is represented by a surrogate pair.\n var numRIs = match[0].length / 2;\n return numRIs % 2 === 1;\n }\n};\n\n/**\r\n * Shared the function with isElementType utility\r\n */\n\nvar isElement = value => {\n return isPlainObject(value) && Node.isNodeList(value.children) && !Editor.isEditor(value);\n}; // eslint-disable-next-line no-redeclare\n\n\nvar Element = {\n /**\r\n * Check if a value implements the 'Ancestor' interface.\r\n */\n isAncestor(value) {\n return isPlainObject(value) && Node.isNodeList(value.children);\n },\n\n /**\r\n * Check if a value implements the `Element` interface.\r\n */\n isElement,\n\n /**\r\n * Check if a value is an array of `Element` objects.\r\n */\n isElementList(value) {\n return Array.isArray(value) && value.every(val => Element.isElement(val));\n },\n\n /**\r\n * Check if a set of props is a partial of Element.\r\n */\n isElementProps(props) {\n return props.children !== undefined;\n },\n\n /**\r\n * Check if a value implements the `Element` interface and has elementKey with selected value.\r\n * Default it check to `type` key value\r\n */\n isElementType: function isElementType(value, elementVal) {\n var elementKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'type';\n return isElement(value) && value[elementKey] === elementVal;\n },\n\n /**\r\n * Check if an element matches set of properties.\r\n *\r\n * Note: this checks custom properties, and it does not ensure that any\r\n * children are equivalent.\r\n */\n matches(element, props) {\n for (var key in props) {\n if (key === 'children') {\n continue;\n }\n\n if (element[key] !== props[key]) {\n return false;\n }\n }\n\n return true;\n }\n\n};\n\nvar _excluded$4 = [\"text\"],\n _excluded2$3 = [\"text\"];\n\nfunction ownKeys$8(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$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar IS_EDITOR_CACHE = new WeakMap(); // eslint-disable-next-line no-redeclare\n\nvar Editor = {\n /**\r\n * Get the ancestor above a location in the document.\r\n */\n above(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n voids = false,\n mode = 'lowest',\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n var path = Editor.path(editor, at);\n var reverse = mode === 'lowest';\n\n for (var [n, p] of Editor.levels(editor, {\n at: path,\n voids,\n match,\n reverse\n })) {\n if (Text.isText(n)) return;\n\n if (Range.isRange(at)) {\n if (Path.isAncestor(p, at.anchor.path) && Path.isAncestor(p, at.focus.path)) {\n return [n, p];\n }\n } else {\n if (!Path.equals(path, p)) {\n return [n, p];\n }\n }\n }\n },\n\n /**\r\n * Add a custom property to the leaf text nodes in the current selection.\r\n *\r\n * If the selection is currently collapsed, the marks will be added to the\r\n * `editor.marks` property instead, and applied when text is inserted next.\r\n */\n addMark(editor, key, value) {\n editor.addMark(key, value);\n },\n\n /**\r\n * Get the point after a location.\r\n */\n after(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.point(editor, at, {\n edge: 'end'\n });\n var focus = Editor.end(editor, []);\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n\n for (var p of Editor.positions(editor, _objectSpread$8(_objectSpread$8({}, options), {}, {\n at: range\n }))) {\n if (d > distance) {\n break;\n }\n\n if (d !== 0) {\n target = p;\n }\n\n d++;\n }\n\n return target;\n },\n\n /**\r\n * Get the point before a location.\r\n */\n before(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.start(editor, []);\n var focus = Editor.point(editor, at, {\n edge: 'start'\n });\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n\n for (var p of Editor.positions(editor, _objectSpread$8(_objectSpread$8({}, options), {}, {\n at: range,\n reverse: true\n }))) {\n if (d > distance) {\n break;\n }\n\n if (d !== 0) {\n target = p;\n }\n\n d++;\n }\n\n return target;\n },\n\n /**\r\n * Delete content in the editor backward from the current selection.\r\n */\n deleteBackward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteBackward(unit);\n },\n\n /**\r\n * Delete content in the editor forward from the current selection.\r\n */\n deleteForward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteForward(unit);\n },\n\n /**\r\n * Delete the content in the current selection.\r\n */\n deleteFragment(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n direction = 'forward'\n } = options;\n editor.deleteFragment(direction);\n },\n\n /**\r\n * Get the start and end points of a location.\r\n */\n edges(editor, at) {\n return [Editor.start(editor, at), Editor.end(editor, at)];\n },\n\n /**\r\n * Get the end point of a location.\r\n */\n end(editor, at) {\n return Editor.point(editor, at, {\n edge: 'end'\n });\n },\n\n /**\r\n * Get the first node at a location.\r\n */\n first(editor, at) {\n var path = Editor.path(editor, at, {\n edge: 'start'\n });\n return Editor.node(editor, path);\n },\n\n /**\r\n * Get the fragment at a location.\r\n */\n fragment(editor, at) {\n var range = Editor.range(editor, at);\n var fragment = Node.fragment(editor, range);\n return fragment;\n },\n\n /**\r\n * Check if a node has block children.\r\n */\n hasBlocks(editor, element) {\n return element.children.some(n => Editor.isBlock(editor, n));\n },\n\n /**\r\n * Check if a node has inline and text children.\r\n */\n hasInlines(editor, element) {\n return element.children.some(n => Text.isText(n) || Editor.isInline(editor, n));\n },\n\n /**\r\n * Check if a node has text children.\r\n */\n hasTexts(editor, element) {\n return element.children.every(n => Text.isText(n));\n },\n\n /**\r\n * Insert a block break at the current selection.\r\n *\r\n * If the selection is currently expanded, it will be deleted first.\r\n */\n insertBreak(editor) {\n editor.insertBreak();\n },\n\n /**\r\n * Insert a soft break at the current selection.\r\n *\r\n * If the selection is currently expanded, it will be deleted first.\r\n */\n insertSoftBreak(editor) {\n editor.insertSoftBreak();\n },\n\n /**\r\n * Insert a fragment at the current selection.\r\n *\r\n * If the selection is currently expanded, it will be deleted first.\r\n */\n insertFragment(editor, fragment) {\n editor.insertFragment(fragment);\n },\n\n /**\r\n * Insert a node at the current selection.\r\n *\r\n * If the selection is currently expanded, it will be deleted first.\r\n */\n insertNode(editor, node) {\n editor.insertNode(node);\n },\n\n /**\r\n * Insert text at the current selection.\r\n *\r\n * If the selection is currently expanded, it will be deleted first.\r\n */\n insertText(editor, text) {\n editor.insertText(text);\n },\n\n /**\r\n * Check if a value is a block `Element` object.\r\n */\n isBlock(editor, value) {\n return Element.isElement(value) && !editor.isInline(value);\n },\n\n /**\r\n * Check if a value is an `Editor` object.\r\n */\n isEditor(value) {\n var cachedIsEditor = IS_EDITOR_CACHE.get(value);\n\n if (cachedIsEditor !== undefined) {\n return cachedIsEditor;\n }\n\n if (!isPlainObject(value)) {\n return false;\n }\n\n var isEditor = typeof value.addMark === 'function' && typeof value.apply === 'function' && typeof value.deleteBackward === 'function' && typeof value.deleteForward === 'function' && typeof value.deleteFragment === 'function' && typeof value.insertBreak === 'function' && typeof value.insertSoftBreak === 'function' && typeof value.insertFragment === 'function' && typeof value.insertNode === 'function' && typeof value.insertText === 'function' && typeof value.isInline === 'function' && typeof value.isVoid === 'function' && typeof value.normalizeNode === 'function' && typeof value.onChange === 'function' && typeof value.removeMark === 'function' && typeof value.getDirtyPaths === 'function' && (value.marks === null || isPlainObject(value.marks)) && (value.selection === null || Range.isRange(value.selection)) && Node.isNodeList(value.children) && Operation.isOperationList(value.operations);\n IS_EDITOR_CACHE.set(value, isEditor);\n return isEditor;\n },\n\n /**\r\n * Check if a point is the end point of a location.\r\n */\n isEnd(editor, point, at) {\n var end = Editor.end(editor, at);\n return Point.equals(point, end);\n },\n\n /**\r\n * Check if a point is an edge of a location.\r\n */\n isEdge(editor, point, at) {\n return Editor.isStart(editor, point, at) || Editor.isEnd(editor, point, at);\n },\n\n /**\r\n * Check if an element is empty, accounting for void nodes.\r\n */\n isEmpty(editor, element) {\n var {\n children\n } = element;\n var [first] = children;\n return children.length === 0 || children.length === 1 && Text.isText(first) && first.text === '' && !editor.isVoid(element);\n },\n\n /**\r\n * Check if a value is an inline `Element` object.\r\n */\n isInline(editor, value) {\n return Element.isElement(value) && editor.isInline(value);\n },\n\n /**\r\n * Check if the editor is currently normalizing after each operation.\r\n */\n isNormalizing(editor) {\n var isNormalizing = NORMALIZING.get(editor);\n return isNormalizing === undefined ? true : isNormalizing;\n },\n\n /**\r\n * Check if a point is the start point of a location.\r\n */\n isStart(editor, point, at) {\n // PERF: If the offset isn't `0` we know it's not the start.\n if (point.offset !== 0) {\n return false;\n }\n\n var start = Editor.start(editor, at);\n return Point.equals(point, start);\n },\n\n /**\r\n * Check if a value is a void `Element` object.\r\n */\n isVoid(editor, value) {\n return Element.isElement(value) && editor.isVoid(value);\n },\n\n /**\r\n * Get the last node at a location.\r\n */\n last(editor, at) {\n var path = Editor.path(editor, at, {\n edge: 'end'\n });\n return Editor.node(editor, path);\n },\n\n /**\r\n * Get the leaf text node at a location.\r\n */\n leaf(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.leaf(editor, path);\n return [node, path];\n },\n\n /**\r\n * Iterate through all of the levels at a location.\r\n */\n *levels(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n reverse = false,\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (match == null) {\n match = () => true;\n }\n\n if (!at) {\n return;\n }\n\n var levels = [];\n var path = Editor.path(editor, at);\n\n for (var [n, p] of Node.levels(editor, path)) {\n if (!match(n, p)) {\n continue;\n }\n\n levels.push([n, p]);\n\n if (!voids && Editor.isVoid(editor, n)) {\n break;\n }\n }\n\n if (reverse) {\n levels.reverse();\n }\n\n yield* levels;\n },\n\n /**\r\n * Get the marks that would be added to text at the current selection.\r\n */\n marks(editor) {\n var {\n marks,\n selection\n } = editor;\n\n if (!selection) {\n return null;\n }\n\n if (marks) {\n return marks;\n }\n\n if (Range.isExpanded(selection)) {\n var [match] = Editor.nodes(editor, {\n match: Text.isText\n });\n\n if (match) {\n var [_node] = match;\n\n var _rest = _objectWithoutProperties(_node, _excluded$4);\n\n return _rest;\n } else {\n return {};\n }\n }\n\n var {\n anchor\n } = selection;\n var {\n path\n } = anchor;\n var [node] = Editor.leaf(editor, path);\n\n if (anchor.offset === 0) {\n var prev = Editor.previous(editor, {\n at: path,\n match: Text.isText\n });\n var block = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n)\n });\n\n if (prev && block) {\n var [prevNode, prevPath] = prev;\n var [, blockPath] = block;\n\n if (Path.isAncestor(blockPath, prevPath)) {\n node = prevNode;\n }\n }\n }\n\n var rest = _objectWithoutProperties(node, _excluded2$3);\n\n return rest;\n },\n\n /**\r\n * Get the matching node in the branch of the document after a location.\r\n */\n next(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n var pointAfterLocation = Editor.after(editor, at, {\n voids\n });\n if (!pointAfterLocation) return;\n var [, to] = Editor.last(editor, []);\n var span = [pointAfterLocation.path, to];\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the next node from the root node!\");\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n\n var [next] = Editor.nodes(editor, {\n at: span,\n match,\n mode,\n voids\n });\n return next;\n },\n\n /**\r\n * Get the node at a location.\r\n */\n node(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.get(editor, path);\n return [node, path];\n },\n\n /**\r\n * Iterate through all of the nodes in the Editor.\r\n */\n *nodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n mode = 'all',\n universal = false,\n reverse = false,\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (!match) {\n match = () => true;\n }\n\n if (!at) {\n return;\n }\n\n var from;\n var to;\n\n if (Span.isSpan(at)) {\n from = at[0];\n to = at[1];\n } else {\n var first = Editor.path(editor, at, {\n edge: 'start'\n });\n var last = Editor.path(editor, at, {\n edge: 'end'\n });\n from = reverse ? last : first;\n to = reverse ? first : last;\n }\n\n var nodeEntries = Node.nodes(editor, {\n reverse,\n from,\n to,\n pass: _ref => {\n var [n] = _ref;\n return voids ? false : Editor.isVoid(editor, n);\n }\n });\n var matches = [];\n var hit;\n\n for (var [node, path] of nodeEntries) {\n var isLower = hit && Path.compare(path, hit[1]) === 0; // In highest mode any node lower than the last hit is not a match.\n\n if (mode === 'highest' && isLower) {\n continue;\n }\n\n if (!match(node, path)) {\n // If we've arrived at a leaf text node that is not lower than the last\n // hit, then we've found a branch that doesn't include a match, which\n // means the match is not universal.\n if (universal && !isLower && Text.isText(node)) {\n return;\n } else {\n continue;\n }\n } // If there's a match and it's lower than the last, update the hit.\n\n\n if (mode === 'lowest' && isLower) {\n hit = [node, path];\n continue;\n } // In lowest mode we emit the last hit, once it's guaranteed lowest.\n\n\n var emit = mode === 'lowest' ? hit : [node, path];\n\n if (emit) {\n if (universal) {\n matches.push(emit);\n } else {\n yield emit;\n }\n }\n\n hit = [node, path];\n } // Since lowest is always emitting one behind, catch up at the end.\n\n\n if (mode === 'lowest' && hit) {\n if (universal) {\n matches.push(hit);\n } else {\n yield hit;\n }\n } // Universal defers to ensure that the match occurs in every branch, so we\n // yield all of the matches after iterating.\n\n\n if (universal) {\n yield* matches;\n }\n },\n\n /**\r\n * Normalize any dirty objects in the editor.\r\n */\n normalize(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n force = false\n } = options;\n\n var getDirtyPaths = editor => {\n return DIRTY_PATHS.get(editor) || [];\n };\n\n var getDirtyPathKeys = editor => {\n return DIRTY_PATH_KEYS.get(editor) || new Set();\n };\n\n var popDirtyPath = editor => {\n var path = getDirtyPaths(editor).pop();\n var key = path.join(',');\n getDirtyPathKeys(editor).delete(key);\n return path;\n };\n\n if (!Editor.isNormalizing(editor)) {\n return;\n }\n\n if (force) {\n var allPaths = Array.from(Node.nodes(editor), _ref2 => {\n var [, p] = _ref2;\n return p;\n });\n var allPathKeys = new Set(allPaths.map(p => p.join(',')));\n DIRTY_PATHS.set(editor, allPaths);\n DIRTY_PATH_KEYS.set(editor, allPathKeys);\n }\n\n if (getDirtyPaths(editor).length === 0) {\n return;\n }\n\n Editor.withoutNormalizing(editor, () => {\n /*\r\n Fix dirty elements with no children.\r\n editor.normalizeNode() does fix this, but some normalization fixes also require it to work.\r\n Running an initial pass avoids the catch-22 race condition.\r\n */\n for (var dirtyPath of getDirtyPaths(editor)) {\n if (Node.has(editor, dirtyPath)) {\n var entry = Editor.node(editor, dirtyPath);\n var [node, _] = entry;\n /*\r\n The default normalizer inserts an empty text node in this scenario, but it can be customised.\r\n So there is some risk here.\r\n As long as the normalizer only inserts child nodes for this case it is safe to do in any order;\r\n by definition adding children to an empty node can't cause other paths to change.\r\n */\n\n if (Element.isElement(node) && node.children.length === 0) {\n editor.normalizeNode(entry);\n }\n }\n }\n\n var max = getDirtyPaths(editor).length * 42; // HACK: better way?\n\n var m = 0;\n\n while (getDirtyPaths(editor).length !== 0) {\n if (m > max) {\n throw new Error(\"\\n Could not completely normalize the editor after \".concat(max, \" iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state.\\n \"));\n }\n\n var _dirtyPath = popDirtyPath(editor); // If the node doesn't exist in the tree, it does not need to be normalized.\n\n\n if (Node.has(editor, _dirtyPath)) {\n var _entry = Editor.node(editor, _dirtyPath);\n\n editor.normalizeNode(_entry);\n }\n\n m++;\n }\n });\n },\n\n /**\r\n * Get the parent node of a location.\r\n */\n parent(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var parentPath = Path.parent(path);\n var entry = Editor.node(editor, parentPath);\n return entry;\n },\n\n /**\r\n * Get the path of a location.\r\n */\n path(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n depth,\n edge\n } = options;\n\n if (Path.isPath(at)) {\n if (edge === 'start') {\n var [, firstPath] = Node.first(editor, at);\n at = firstPath;\n } else if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n at = lastPath;\n }\n }\n\n if (Range.isRange(at)) {\n if (edge === 'start') {\n at = Range.start(at);\n } else if (edge === 'end') {\n at = Range.end(at);\n } else {\n at = Path.common(at.anchor.path, at.focus.path);\n }\n }\n\n if (Point.isPoint(at)) {\n at = at.path;\n }\n\n if (depth != null) {\n at = at.slice(0, depth);\n }\n\n return at;\n },\n\n hasPath(editor, path) {\n return Node.has(editor, path);\n },\n\n /**\r\n * Create a mutable ref for a `Path` object, which will stay in sync as new\r\n * operations are applied to the editor.\r\n */\n pathRef(editor, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: path,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var pathRefs = Editor.pathRefs(editor);\n pathRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.pathRefs(editor);\n refs.add(ref);\n return ref;\n },\n\n /**\r\n * Get the set of currently tracked path refs of the editor.\r\n */\n pathRefs(editor) {\n var refs = PATH_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n PATH_REFS.set(editor, refs);\n }\n\n return refs;\n },\n\n /**\r\n * Get the start or end point of a location.\r\n */\n point(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n edge = 'start'\n } = options;\n\n if (Path.isPath(at)) {\n var path;\n\n if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n path = lastPath;\n } else {\n var [, firstPath] = Node.first(editor, at);\n path = firstPath;\n }\n\n var node = Node.get(editor, path);\n\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the \".concat(edge, \" point in the node at path [\").concat(at, \"] because it has no \").concat(edge, \" text node.\"));\n }\n\n return {\n path,\n offset: edge === 'end' ? node.text.length : 0\n };\n }\n\n if (Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n return edge === 'start' ? start : end;\n }\n\n return at;\n },\n\n /**\r\n * Create a mutable ref for a `Point` object, which will stay in sync as new\r\n * operations are applied to the editor.\r\n */\n pointRef(editor, point) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: point,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var pointRefs = Editor.pointRefs(editor);\n pointRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.pointRefs(editor);\n refs.add(ref);\n return ref;\n },\n\n /**\r\n * Get the set of currently tracked point refs of the editor.\r\n */\n pointRefs(editor) {\n var refs = POINT_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n POINT_REFS.set(editor, refs);\n }\n\n return refs;\n },\n\n /**\r\n * Return all the positions in `at` range where a `Point` can be placed.\r\n *\r\n * By default, moves forward by individual offsets at a time, but\r\n * the `unit` option can be used to to move by character, word, line, or block.\r\n *\r\n * The `reverse` option can be used to change iteration direction.\r\n *\r\n * Note: By default void nodes are treated as a single point and iteration\r\n * will not happen inside their content unless you pass in true for the\r\n * `voids` option, then iteration will occur.\r\n */\n *positions(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n unit = 'offset',\n reverse = false,\n voids = false\n } = options;\n\n if (!at) {\n return;\n }\n /**\r\n * Algorithm notes:\r\n *\r\n * Each step `distance` is dynamic depending on the underlying text\r\n * and the `unit` specified. Each step, e.g., a line or word, may\r\n * span multiple text nodes, so we iterate through the text both on\r\n * two levels in step-sync:\r\n *\r\n * `leafText` stores the text on a text leaf level, and is advanced\r\n * through using the counters `leafTextOffset` and `leafTextRemaining`.\r\n *\r\n * `blockText` stores the text on a block level, and is shortened\r\n * by `distance` every time it is advanced.\r\n *\r\n * We only maintain a window of one blockText and one leafText because\r\n * a block node always appears before all of its leaf nodes.\r\n */\n\n\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var first = reverse ? end : start;\n var isNewBlock = false;\n var blockText = '';\n var distance = 0; // Distance for leafText to catch up to blockText.\n\n var leafTextRemaining = 0;\n var leafTextOffset = 0; // Iterate through all nodes in range, grabbing entire textual content\n // of block nodes in blockText, and text nodes in leafText.\n // Exploits the fact that nodes are sequenced in such a way that we first\n // encounter the block node, then all of its text nodes, so when iterating\n // through the blockText and leafText we just need to remember a window of\n // one block node and leaf node, respectively.\n\n for (var [node, path] of Editor.nodes(editor, {\n at,\n reverse,\n voids\n })) {\n /*\r\n * ELEMENT NODE - Yield position(s) for voids, collect blockText for blocks\r\n */\n if (Element.isElement(node)) {\n // Void nodes are a special case, so by default we will always\n // yield their first point. If the `voids` option is set to true,\n // then we will iterate over their content.\n if (!voids && editor.isVoid(node)) {\n yield Editor.start(editor, path);\n continue;\n } // Inline element nodes are ignored as they don't themselves\n // contribute to `blockText` or `leafText` - their parent and\n // children do.\n\n\n if (editor.isInline(node)) continue; // Block element node - set `blockText` to its text content.\n\n if (Editor.hasInlines(editor, node)) {\n // We always exhaust block nodes before encountering a new one:\n // console.assert(blockText === '',\n // `blockText='${blockText}' - `+\n // `not exhausted before new block node`, path)\n // Ensure range considered is capped to `range`, in the\n // start/end edge cases where block extends beyond range.\n // Equivalent to this, but presumably more performant:\n // blockRange = Editor.range(editor, ...Editor.edges(editor, path))\n // blockRange = Range.intersection(range, blockRange) // intersect\n // blockText = Editor.string(editor, blockRange, { voids })\n var e = Path.isAncestor(path, end.path) ? end : Editor.end(editor, path);\n var s = Path.isAncestor(path, start.path) ? start : Editor.start(editor, path);\n blockText = Editor.string(editor, {\n anchor: s,\n focus: e\n }, {\n voids\n });\n isNewBlock = true;\n }\n }\n /*\r\n * TEXT LEAF NODE - Iterate through text content, yielding\r\n * positions every `distance` offset according to `unit`.\r\n */\n\n\n if (Text.isText(node)) {\n var isFirst = Path.equals(path, first.path); // Proof that we always exhaust text nodes before encountering a new one:\n // console.assert(leafTextRemaining <= 0,\n // `leafTextRemaining=${leafTextRemaining} - `+\n // `not exhausted before new leaf text node`, path)\n // Reset `leafText` counters for new text node.\n\n if (isFirst) {\n leafTextRemaining = reverse ? first.offset : node.text.length - first.offset;\n leafTextOffset = first.offset; // Works for reverse too.\n } else {\n leafTextRemaining = node.text.length;\n leafTextOffset = reverse ? leafTextRemaining : 0;\n } // Yield position at the start of node (potentially).\n\n\n if (isFirst || isNewBlock || unit === 'offset') {\n yield {\n path,\n offset: leafTextOffset\n };\n isNewBlock = false;\n } // Yield positions every (dynamically calculated) `distance` offset.\n\n\n while (true) {\n // If `leafText` has caught up with `blockText` (distance=0),\n // and if blockText is exhausted, break to get another block node,\n // otherwise advance blockText forward by the new `distance`.\n if (distance === 0) {\n if (blockText === '') break;\n distance = calcDistance(blockText, unit, reverse); // Split the string at the previously found distance and use the\n // remaining string for the next iteration.\n\n blockText = splitByCharacterDistance(blockText, distance, reverse)[1];\n } // Advance `leafText` by the current `distance`.\n\n\n leafTextOffset = reverse ? leafTextOffset - distance : leafTextOffset + distance;\n leafTextRemaining = leafTextRemaining - distance; // If `leafText` is exhausted, break to get a new leaf node\n // and set distance to the overflow amount, so we'll (maybe)\n // catch up to blockText in the next leaf text node.\n\n if (leafTextRemaining < 0) {\n distance = -leafTextRemaining;\n break;\n } // Successfully walked `distance` offsets through `leafText`\n // to catch up with `blockText`, so we can reset `distance`\n // and yield this position in this node.\n\n\n distance = 0;\n yield {\n path,\n offset: leafTextOffset\n };\n }\n }\n } // Proof that upon completion, we've exahusted both leaf and block text:\n // console.assert(leafTextRemaining <= 0, \"leafText wasn't exhausted\")\n // console.assert(blockText === '', \"blockText wasn't exhausted\")\n // Helper:\n // Return the distance in offsets for a step of size `unit` on given string.\n\n\n function calcDistance(text, unit, reverse) {\n if (unit === 'character') {\n return getCharacterDistance(text, reverse);\n } else if (unit === 'word') {\n return getWordDistance(text, reverse);\n } else if (unit === 'line' || unit === 'block') {\n return text.length;\n }\n\n return 1;\n }\n },\n\n /**\r\n * Get the matching node in the branch of the document before a location.\r\n */\n previous(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n var pointBeforeLocation = Editor.before(editor, at, {\n voids\n });\n\n if (!pointBeforeLocation) {\n return;\n }\n\n var [, to] = Editor.first(editor, []); // The search location is from the start of the document to the path of\n // the point before the location passed in\n\n var span = [pointBeforeLocation.path, to];\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the previous node from the root node!\");\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n\n var [previous] = Editor.nodes(editor, {\n reverse: true,\n at: span,\n match,\n mode,\n voids\n });\n return previous;\n },\n\n /**\r\n * Get a range of a location.\r\n */\n range(editor, at, to) {\n if (Range.isRange(at) && !to) {\n return at;\n }\n\n var start = Editor.start(editor, at);\n var end = Editor.end(editor, to || at);\n return {\n anchor: start,\n focus: end\n };\n },\n\n /**\r\n * Create a mutable ref for a `Range` object, which will stay in sync as new\r\n * operations are applied to the editor.\r\n */\n rangeRef(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: range,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var rangeRefs = Editor.rangeRefs(editor);\n rangeRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.rangeRefs(editor);\n refs.add(ref);\n return ref;\n },\n\n /**\r\n * Get the set of currently tracked range refs of the editor.\r\n */\n rangeRefs(editor) {\n var refs = RANGE_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n RANGE_REFS.set(editor, refs);\n }\n\n return refs;\n },\n\n /**\r\n * Remove a custom property from all of the leaf text nodes in the current\r\n * selection.\r\n *\r\n * If the selection is currently collapsed, the removal will be stored on\r\n * `editor.marks` and applied to the text inserted next.\r\n */\n removeMark(editor, key) {\n editor.removeMark(key);\n },\n\n /**\r\n * Manually set if the editor should currently be normalizing.\r\n *\r\n * Note: Using this incorrectly can leave the editor in an invalid state.\r\n *\r\n */\n setNormalizing(editor, isNormalizing) {\n NORMALIZING.set(editor, isNormalizing);\n },\n\n /**\r\n * Get the start point of a location.\r\n */\n start(editor, at) {\n return Editor.point(editor, at, {\n edge: 'start'\n });\n },\n\n /**\r\n * Get the text string content of a location.\r\n *\r\n * Note: by default the text of void nodes is considered to be an empty\r\n * string, regardless of content, unless you pass in true for the voids option\r\n */\n string(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var text = '';\n\n for (var [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids\n })) {\n var t = node.text;\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n },\n\n /**\r\n * Convert a range into a non-hanging one.\r\n */\n unhangRange(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var [start, end] = Range.edges(range); // PERF: exit early if we can guarantee that the range isn't hanging.\n\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range)) {\n return range;\n }\n\n var endBlock = Editor.above(editor, {\n at: end,\n match: n => Editor.isBlock(editor, n)\n });\n var blockPath = endBlock ? endBlock[1] : [];\n var first = Editor.start(editor, start);\n var before = {\n anchor: first,\n focus: end\n };\n var skip = true;\n\n for (var [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n voids\n })) {\n if (skip) {\n skip = false;\n continue;\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = {\n path,\n offset: node.text.length\n };\n break;\n }\n }\n\n return {\n anchor: start,\n focus: end\n };\n },\n\n /**\r\n * Match a void node in the current branch of the editor.\r\n */\n void(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$8(_objectSpread$8({}, options), {}, {\n match: n => Editor.isVoid(editor, n)\n }));\n },\n\n /**\r\n * Call a function, deferring normalization until after it completes.\r\n */\n withoutNormalizing(editor, fn) {\n var value = Editor.isNormalizing(editor);\n Editor.setNormalizing(editor, false);\n\n try {\n fn();\n } finally {\n Editor.setNormalizing(editor, value);\n }\n\n Editor.normalize(editor);\n }\n\n};\n\nvar Location = {\n /**\r\n * Check if a value implements the `Location` interface.\r\n */\n isLocation(value) {\n return Path.isPath(value) || Point.isPoint(value) || Range.isRange(value);\n }\n\n}; // eslint-disable-next-line no-redeclare\n\nvar Span = {\n /**\r\n * Check if a value implements the `Span` interface.\r\n */\n isSpan(value) {\n return Array.isArray(value) && value.length === 2 && value.every(Path.isPath);\n }\n\n};\n\nvar _excluded$3 = [\"children\"],\n _excluded2$2 = [\"text\"];\nvar IS_NODE_LIST_CACHE = new WeakMap(); // eslint-disable-next-line no-redeclare\n\nvar Node = {\n /**\r\n * Get the node at a specific path, asserting that it's an ancestor node.\r\n */\n ancestor(root, path) {\n var node = Node.get(root, path);\n\n if (Text.isText(node)) {\n throw new Error(\"Cannot get the ancestor node at path [\".concat(path, \"] because it refers to a text node instead: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n /**\r\n * Return a generator of all the ancestor nodes above a specific path.\r\n *\r\n * By default the order is top-down, from highest to lowest ancestor in\r\n * the tree, but you can pass the `reverse: true` option to go bottom-up.\r\n */\n *ancestors(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n for (var p of Path.ancestors(path, options)) {\n var n = Node.ancestor(root, p);\n var entry = [n, p];\n yield entry;\n }\n },\n\n /**\r\n * Get the child of a node at a specific index.\r\n */\n child(root, index) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get the child of a text node: \".concat(Scrubber.stringify(root)));\n }\n\n var c = root.children[index];\n\n if (c == null) {\n throw new Error(\"Cannot get child at index `\".concat(index, \"` in node: \").concat(Scrubber.stringify(root)));\n }\n\n return c;\n },\n\n /**\r\n * Iterate over the children of a node at a specific path.\r\n */\n *children(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n reverse = false\n } = options;\n var ancestor = Node.ancestor(root, path);\n var {\n children\n } = ancestor;\n var index = reverse ? children.length - 1 : 0;\n\n while (reverse ? index >= 0 : index < children.length) {\n var child = Node.child(ancestor, index);\n var childPath = path.concat(index);\n yield [child, childPath];\n index = reverse ? index - 1 : index + 1;\n }\n },\n\n /**\r\n * Get an entry for the common ancesetor node of two paths.\r\n */\n common(root, path, another) {\n var p = Path.common(path, another);\n var n = Node.get(root, p);\n return [n, p];\n },\n\n /**\r\n * Get the node at a specific path, asserting that it's a descendant node.\r\n */\n descendant(root, path) {\n var node = Node.get(root, path);\n\n if (Editor.isEditor(node)) {\n throw new Error(\"Cannot get the descendant node at path [\".concat(path, \"] because it refers to the root editor node instead: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n /**\r\n * Return a generator of all the descendant node entries inside a root node.\r\n */\n *descendants(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (path.length !== 0) {\n // NOTE: we have to coerce here because checking the path's length does\n // guarantee that `node` is not a `Editor`, but TypeScript doesn't know.\n yield [node, path];\n }\n }\n },\n\n /**\r\n * Return a generator of all the element nodes inside a root node. Each iteration\r\n * will return an `ElementEntry` tuple consisting of `[Element, Path]`. If the\r\n * root node is an element it will be included in the iteration as well.\r\n */\n *elements(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (Element.isElement(node)) {\n yield [node, path];\n }\n }\n },\n\n /**\r\n * Extract props from a Node.\r\n */\n extractProps(node) {\n if (Element.isAncestor(node)) {\n var properties = _objectWithoutProperties(node, _excluded$3);\n\n return properties;\n } else {\n var properties = _objectWithoutProperties(node, _excluded2$2);\n\n return properties;\n }\n },\n\n /**\r\n * Get the first node entry in a root node from a path.\r\n */\n first(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n n = n.children[0];\n p.push(0);\n }\n }\n\n return [n, p];\n },\n\n /**\r\n * Get the sliced fragment represented by a range inside a root node.\r\n */\n fragment(root, range) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get a fragment starting from a root text node: \".concat(Scrubber.stringify(root)));\n }\n\n var newRoot = produce({\n children: root.children\n }, r => {\n var [start, end] = Range.edges(range);\n var nodeEntries = Node.nodes(r, {\n reverse: true,\n pass: _ref => {\n var [, path] = _ref;\n return !Range.includes(range, path);\n }\n });\n\n for (var [, path] of nodeEntries) {\n if (!Range.includes(range, path)) {\n var parent = Node.parent(r, path);\n var index = path[path.length - 1];\n parent.children.splice(index, 1);\n }\n\n if (Path.equals(path, end.path)) {\n var leaf = Node.leaf(r, path);\n leaf.text = leaf.text.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n var _leaf = Node.leaf(r, path);\n\n _leaf.text = _leaf.text.slice(start.offset);\n }\n }\n\n if (Editor.isEditor(r)) {\n r.selection = null;\n }\n });\n return newRoot.children;\n },\n\n /**\r\n * Get the descendant node referred to by a specific path. If the path is an\r\n * empty array, it refers to the root node itself.\r\n */\n get(root, path) {\n var node = root;\n\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if (Text.isText(node) || !node.children[p]) {\n throw new Error(\"Cannot find a descendant at path [\".concat(path, \"] in node: \").concat(Scrubber.stringify(root)));\n }\n\n node = node.children[p];\n }\n\n return node;\n },\n\n /**\r\n * Check if a descendant node exists at a specific path.\r\n */\n has(root, path) {\n var node = root;\n\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if (Text.isText(node) || !node.children[p]) {\n return false;\n }\n\n node = node.children[p];\n }\n\n return true;\n },\n\n /**\r\n * Check if a value implements the `Node` interface.\r\n */\n isNode(value) {\n return Text.isText(value) || Element.isElement(value) || Editor.isEditor(value);\n },\n\n /**\r\n * Check if a value is a list of `Node` objects.\r\n */\n isNodeList(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n\n var cachedResult = IS_NODE_LIST_CACHE.get(value);\n\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n\n var isNodeList = value.every(val => Node.isNode(val));\n IS_NODE_LIST_CACHE.set(value, isNodeList);\n return isNodeList;\n },\n\n /**\r\n * Get the last node entry in a root node from a path.\r\n */\n last(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n var i = n.children.length - 1;\n n = n.children[i];\n p.push(i);\n }\n }\n\n return [n, p];\n },\n\n /**\r\n * Get the node at a specific path, ensuring it's a leaf text node.\r\n */\n leaf(root, path) {\n var node = Node.get(root, path);\n\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the leaf node at path [\".concat(path, \"] because it refers to a non-leaf node: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n /**\r\n * Return a generator of the in a branch of the tree, from a specific path.\r\n *\r\n * By default the order is top-down, from highest to lowest node in the tree,\r\n * but you can pass the `reverse: true` option to go bottom-up.\r\n */\n *levels(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n for (var p of Path.levels(path, options)) {\n var n = Node.get(root, p);\n yield [n, p];\n }\n },\n\n /**\r\n * Check if a node matches a set of props.\r\n */\n matches(node, props) {\n return Element.isElement(node) && Element.isElementProps(props) && Element.matches(node, props) || Text.isText(node) && Text.isTextProps(props) && Text.matches(node, props);\n },\n\n /**\r\n * Return a generator of all the node entries of a root node. Each entry is\r\n * returned as a `[Node, Path]` tuple, with the path referring to the node's\r\n * position inside the root node.\r\n */\n *nodes(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n pass,\n reverse = false\n } = options;\n var {\n from = [],\n to\n } = options;\n var visited = new Set();\n var p = [];\n var n = root;\n\n while (true) {\n if (to && (reverse ? Path.isBefore(p, to) : Path.isAfter(p, to))) {\n break;\n }\n\n if (!visited.has(n)) {\n yield [n, p];\n } // If we're allowed to go downward and we haven't descended yet, do.\n\n\n if (!visited.has(n) && !Text.isText(n) && n.children.length !== 0 && (pass == null || pass([n, p]) === false)) {\n visited.add(n);\n var nextIndex = reverse ? n.children.length - 1 : 0;\n\n if (Path.isAncestor(p, from)) {\n nextIndex = from[p.length];\n }\n\n p = p.concat(nextIndex);\n n = Node.get(root, p);\n continue;\n } // If we're at the root and we can't go down, we're done.\n\n\n if (p.length === 0) {\n break;\n } // If we're going forward...\n\n\n if (!reverse) {\n var newPath = Path.next(p);\n\n if (Node.has(root, newPath)) {\n p = newPath;\n n = Node.get(root, p);\n continue;\n }\n } // If we're going backward...\n\n\n if (reverse && p[p.length - 1] !== 0) {\n var _newPath = Path.previous(p);\n\n p = _newPath;\n n = Node.get(root, p);\n continue;\n } // Otherwise we're going upward...\n\n\n p = Path.parent(p);\n n = Node.get(root, p);\n visited.add(n);\n }\n },\n\n /**\r\n * Get the parent of a node at a specific path.\r\n */\n parent(root, path) {\n var parentPath = Path.parent(path);\n var p = Node.get(root, parentPath);\n\n if (Text.isText(p)) {\n throw new Error(\"Cannot get the parent of path [\".concat(path, \"] because it does not exist in the root.\"));\n }\n\n return p;\n },\n\n /**\r\n * Get the concatenated text string of a node's content.\r\n *\r\n * Note that this will not include spaces or line breaks between block nodes.\r\n * It is not a user-facing string, but a string for performing offset-related\r\n * computations for a node.\r\n */\n string(node) {\n if (Text.isText(node)) {\n return node.text;\n } else {\n return node.children.map(Node.string).join('');\n }\n },\n\n /**\r\n * Return a generator of all leaf text nodes in a root node.\r\n */\n *texts(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (Text.isText(node)) {\n yield [node, path];\n }\n }\n }\n\n};\n\nfunction ownKeys$7(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$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Operation = {\n /**\r\n * Check of a value is a `NodeOperation` object.\r\n */\n isNodeOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_node');\n },\n\n /**\r\n * Check of a value is an `Operation` object.\r\n */\n isOperation(value) {\n if (!isPlainObject(value)) {\n return false;\n }\n\n switch (value.type) {\n case 'insert_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n\n case 'insert_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n\n case 'merge_node':\n return typeof value.position === 'number' && Path.isPath(value.path) && isPlainObject(value.properties);\n\n case 'move_node':\n return Path.isPath(value.path) && Path.isPath(value.newPath);\n\n case 'remove_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n\n case 'remove_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n\n case 'set_node':\n return Path.isPath(value.path) && isPlainObject(value.properties) && isPlainObject(value.newProperties);\n\n case 'set_selection':\n return value.properties === null && Range.isRange(value.newProperties) || value.newProperties === null && Range.isRange(value.properties) || isPlainObject(value.properties) && isPlainObject(value.newProperties);\n\n case 'split_node':\n return Path.isPath(value.path) && typeof value.position === 'number' && isPlainObject(value.properties);\n\n default:\n return false;\n }\n },\n\n /**\r\n * Check if a value is a list of `Operation` objects.\r\n */\n isOperationList(value) {\n return Array.isArray(value) && value.every(val => Operation.isOperation(val));\n },\n\n /**\r\n * Check of a value is a `SelectionOperation` object.\r\n */\n isSelectionOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_selection');\n },\n\n /**\r\n * Check of a value is a `TextOperation` object.\r\n */\n isTextOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_text');\n },\n\n /**\r\n * Invert an operation, returning a new operation that will exactly undo the\r\n * original when applied.\r\n */\n inverse(op) {\n switch (op.type) {\n case 'insert_node':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'remove_node'\n });\n }\n\n case 'insert_text':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'remove_text'\n });\n }\n\n case 'merge_node':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'split_node',\n path: Path.previous(op.path)\n });\n }\n\n case 'move_node':\n {\n var {\n newPath,\n path\n } = op; // PERF: in this case the move operation is a no-op anyways.\n\n if (Path.equals(newPath, path)) {\n return op;\n } // If the move happens completely within a single parent the path and\n // newPath are stable with respect to each other.\n\n\n if (Path.isSibling(path, newPath)) {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n path: newPath,\n newPath: path\n });\n } // If the move does not happen within a single parent it is possible\n // for the move to impact the true path to the location where the node\n // was removed from and where it was inserted. We have to adjust for this\n // and find the original path. We can accomplish this (only in non-sibling)\n // moves by looking at the impact of the move operation on the node\n // after the original move path.\n\n\n var inversePath = Path.transform(path, op);\n var inverseNewPath = Path.transform(Path.next(path), op);\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n path: inversePath,\n newPath: inverseNewPath\n });\n }\n\n case 'remove_node':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'insert_node'\n });\n }\n\n case 'remove_text':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'insert_text'\n });\n }\n\n case 'set_node':\n {\n var {\n properties,\n newProperties\n } = op;\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n properties: newProperties,\n newProperties: properties\n });\n }\n\n case 'set_selection':\n {\n var {\n properties: _properties,\n newProperties: _newProperties\n } = op;\n\n if (_properties == null) {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n properties: _newProperties,\n newProperties: null\n });\n } else if (_newProperties == null) {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n properties: null,\n newProperties: _properties\n });\n } else {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n properties: _newProperties,\n newProperties: _properties\n });\n }\n }\n\n case 'split_node':\n {\n return _objectSpread$7(_objectSpread$7({}, op), {}, {\n type: 'merge_node',\n path: Path.next(op.path)\n });\n }\n }\n }\n\n};\n\n// eslint-disable-next-line no-redeclare\nvar Path = {\n /**\r\n * Get a list of ancestor paths for a given path.\r\n *\r\n * The paths are sorted from shallowest to deepest ancestor. However, if the\r\n * `reverse: true` option is passed, they are reversed.\r\n */\n ancestors(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var paths = Path.levels(path, options);\n\n if (reverse) {\n paths = paths.slice(1);\n } else {\n paths = paths.slice(0, -1);\n }\n\n return paths;\n },\n\n /**\r\n * Get the common ancestor path of two paths.\r\n */\n common(path, another) {\n var common = [];\n\n for (var i = 0; i < path.length && i < another.length; i++) {\n var av = path[i];\n var bv = another[i];\n\n if (av !== bv) {\n break;\n }\n\n common.push(av);\n }\n\n return common;\n },\n\n /**\r\n * Compare a path to another, returning an integer indicating whether the path\r\n * was before, at, or after the other.\r\n *\r\n * Note: Two paths of unequal length can still receive a `0` result if one is\r\n * directly above or below the other. If you want exact matching, use\r\n * [[Path.equals]] instead.\r\n */\n compare(path, another) {\n var min = Math.min(path.length, another.length);\n\n for (var i = 0; i < min; i++) {\n if (path[i] < another[i]) return -1;\n if (path[i] > another[i]) return 1;\n }\n\n return 0;\n },\n\n /**\r\n * Check if a path ends after one of the indexes in another.\r\n */\n endsAfter(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av > bv;\n },\n\n /**\r\n * Check if a path ends at one of the indexes in another.\r\n */\n endsAt(path, another) {\n var i = path.length;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n return Path.equals(as, bs);\n },\n\n /**\r\n * Check if a path ends before one of the indexes in another.\r\n */\n endsBefore(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av < bv;\n },\n\n /**\r\n * Check if a path is exactly equal to another.\r\n */\n equals(path, another) {\n return path.length === another.length && path.every((n, i) => n === another[i]);\n },\n\n /**\r\n * Check if the path of previous sibling node exists\r\n */\n hasPrevious(path) {\n return path[path.length - 1] > 0;\n },\n\n /**\r\n * Check if a path is after another.\r\n */\n isAfter(path, another) {\n return Path.compare(path, another) === 1;\n },\n\n /**\r\n * Check if a path is an ancestor of another.\r\n */\n isAncestor(path, another) {\n return path.length < another.length && Path.compare(path, another) === 0;\n },\n\n /**\r\n * Check if a path is before another.\r\n */\n isBefore(path, another) {\n return Path.compare(path, another) === -1;\n },\n\n /**\r\n * Check if a path is a child of another.\r\n */\n isChild(path, another) {\n return path.length === another.length + 1 && Path.compare(path, another) === 0;\n },\n\n /**\r\n * Check if a path is equal to or an ancestor of another.\r\n */\n isCommon(path, another) {\n return path.length <= another.length && Path.compare(path, another) === 0;\n },\n\n /**\r\n * Check if a path is a descendant of another.\r\n */\n isDescendant(path, another) {\n return path.length > another.length && Path.compare(path, another) === 0;\n },\n\n /**\r\n * Check if a path is the parent of another.\r\n */\n isParent(path, another) {\n return path.length + 1 === another.length && Path.compare(path, another) === 0;\n },\n\n /**\r\n * Check is a value implements the `Path` interface.\r\n */\n isPath(value) {\n return Array.isArray(value) && (value.length === 0 || typeof value[0] === 'number');\n },\n\n /**\r\n * Check if a path is a sibling of another.\r\n */\n isSibling(path, another) {\n if (path.length !== another.length) {\n return false;\n }\n\n var as = path.slice(0, -1);\n var bs = another.slice(0, -1);\n var al = path[path.length - 1];\n var bl = another[another.length - 1];\n return al !== bl && Path.equals(as, bs);\n },\n\n /**\r\n * Get a list of paths at every level down to a path. Note: this is the same\r\n * as `Path.ancestors`, but including the path itself.\r\n *\r\n * The paths are sorted from shallowest to deepest. However, if the `reverse:\r\n * true` option is passed, they are reversed.\r\n */\n levels(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var list = [];\n\n for (var i = 0; i <= path.length; i++) {\n list.push(path.slice(0, i));\n }\n\n if (reverse) {\n list.reverse();\n }\n\n return list;\n },\n\n /**\r\n * Given a path, get the path to the next sibling node.\r\n */\n next(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the next path of a root path [\".concat(path, \"], because it has no next index.\"));\n }\n\n var last = path[path.length - 1];\n return path.slice(0, -1).concat(last + 1);\n },\n\n /**\r\n * Returns whether this operation can affect paths or not. Used as an\r\n * optimization when updating dirty paths during normalization\r\n *\r\n * NOTE: This *must* be kept in sync with the implementation of 'transform'\r\n * below\r\n */\n operationCanTransformPath(operation) {\n switch (operation.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'split_node':\n case 'move_node':\n return true;\n\n default:\n return false;\n }\n },\n\n /**\r\n * Given a path, return a new path referring to the parent node above it.\r\n */\n parent(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the parent path of the root path [\".concat(path, \"].\"));\n }\n\n return path.slice(0, -1);\n },\n\n /**\r\n * Given a path, get the path to the previous sibling node.\r\n */\n previous(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the previous path of a root path [\".concat(path, \"], because it has no previous index.\"));\n }\n\n var last = path[path.length - 1];\n\n if (last <= 0) {\n throw new Error(\"Cannot get the previous path of a first child path [\".concat(path, \"] because it would result in a negative index.\"));\n }\n\n return path.slice(0, -1).concat(last - 1);\n },\n\n /**\r\n * Get a path relative to an ancestor.\r\n */\n relative(path, ancestor) {\n if (!Path.isAncestor(ancestor, path) && !Path.equals(path, ancestor)) {\n throw new Error(\"Cannot get the relative path of [\".concat(path, \"] inside ancestor [\").concat(ancestor, \"], because it is not above or equal to the path.\"));\n }\n\n return path.slice(ancestor.length);\n },\n\n /**\r\n * Transform a path by an operation.\r\n */\n transform(path, operation) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!path) return null; // PERF: use destructing instead of immer\n\n var p = [...path];\n var {\n affinity = 'forward'\n } = options; // PERF: Exit early if the operation is guaranteed not to have an effect.\n\n if (path.length === 0) {\n return p;\n }\n\n switch (operation.type) {\n case 'insert_node':\n {\n var {\n path: op\n } = operation;\n\n if (Path.equals(op, p) || Path.endsBefore(op, p) || Path.isAncestor(op, p)) {\n p[op.length - 1] += 1;\n }\n\n break;\n }\n\n case 'remove_node':\n {\n var {\n path: _op\n } = operation;\n\n if (Path.equals(_op, p) || Path.isAncestor(_op, p)) {\n return null;\n } else if (Path.endsBefore(_op, p)) {\n p[_op.length - 1] -= 1;\n }\n\n break;\n }\n\n case 'merge_node':\n {\n var {\n path: _op2,\n position\n } = operation;\n\n if (Path.equals(_op2, p) || Path.endsBefore(_op2, p)) {\n p[_op2.length - 1] -= 1;\n } else if (Path.isAncestor(_op2, p)) {\n p[_op2.length - 1] -= 1;\n p[_op2.length] += position;\n }\n\n break;\n }\n\n case 'split_node':\n {\n var {\n path: _op3,\n position: _position\n } = operation;\n\n if (Path.equals(_op3, p)) {\n if (affinity === 'forward') {\n p[p.length - 1] += 1;\n } else if (affinity === 'backward') ; else {\n return null;\n }\n } else if (Path.endsBefore(_op3, p)) {\n p[_op3.length - 1] += 1;\n } else if (Path.isAncestor(_op3, p) && path[_op3.length] >= _position) {\n p[_op3.length - 1] += 1;\n p[_op3.length] -= _position;\n }\n\n break;\n }\n\n case 'move_node':\n {\n var {\n path: _op4,\n newPath: onp\n } = operation; // If the old and new path are the same, it's a no-op.\n\n if (Path.equals(_op4, onp)) {\n return p;\n }\n\n if (Path.isAncestor(_op4, p) || Path.equals(_op4, p)) {\n var copy = onp.slice();\n\n if (Path.endsBefore(_op4, onp) && _op4.length < onp.length) {\n copy[_op4.length - 1] -= 1;\n }\n\n return copy.concat(p.slice(_op4.length));\n } else if (Path.isSibling(_op4, onp) && (Path.isAncestor(onp, p) || Path.equals(onp, p))) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n } else {\n p[_op4.length - 1] += 1;\n }\n } else if (Path.endsBefore(onp, p) || Path.equals(onp, p) || Path.isAncestor(onp, p)) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n }\n\n p[onp.length - 1] += 1;\n } else if (Path.endsBefore(_op4, p)) {\n if (Path.equals(onp, p)) {\n p[onp.length - 1] += 1;\n }\n\n p[_op4.length - 1] -= 1;\n }\n\n break;\n }\n }\n\n return p;\n }\n\n};\n\nvar PathRef = {\n /**\r\n * Transform the path ref's current value by an operation.\r\n */\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var path = Path.transform(current, op, {\n affinity\n });\n ref.current = path;\n\n if (path == null) {\n ref.unref();\n }\n }\n\n};\n\nfunction ownKeys$6(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$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Point = {\n /**\r\n * Compare a point to another, returning an integer indicating whether the\r\n * point was before, at, or after the other.\r\n */\n compare(point, another) {\n var result = Path.compare(point.path, another.path);\n\n if (result === 0) {\n if (point.offset < another.offset) return -1;\n if (point.offset > another.offset) return 1;\n return 0;\n }\n\n return result;\n },\n\n /**\r\n * Check if a point is after another.\r\n */\n isAfter(point, another) {\n return Point.compare(point, another) === 1;\n },\n\n /**\r\n * Check if a point is before another.\r\n */\n isBefore(point, another) {\n return Point.compare(point, another) === -1;\n },\n\n /**\r\n * Check if a point is exactly equal to another.\r\n */\n equals(point, another) {\n // PERF: ensure the offsets are equal first since they are cheaper to check.\n return point.offset === another.offset && Path.equals(point.path, another.path);\n },\n\n /**\r\n * Check if a value implements the `Point` interface.\r\n */\n isPoint(value) {\n return isPlainObject(value) && typeof value.offset === 'number' && Path.isPath(value.path);\n },\n\n /**\r\n * Transform a point by an operation.\r\n */\n transform(point, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(point, p => {\n if (p === null) {\n return null;\n }\n\n var {\n affinity = 'forward'\n } = options;\n var {\n path,\n offset\n } = p;\n\n switch (op.type) {\n case 'insert_node':\n case 'move_node':\n {\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'insert_text':\n {\n if (Path.equals(op.path, path) && (op.offset < offset || op.offset === offset && affinity === 'forward')) {\n p.offset += op.text.length;\n }\n\n break;\n }\n\n case 'merge_node':\n {\n if (Path.equals(op.path, path)) {\n p.offset += op.position;\n }\n\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'remove_text':\n {\n if (Path.equals(op.path, path) && op.offset <= offset) {\n p.offset -= Math.min(offset - op.offset, op.text.length);\n }\n\n break;\n }\n\n case 'remove_node':\n {\n if (Path.equals(op.path, path) || Path.isAncestor(op.path, path)) {\n return null;\n }\n\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'split_node':\n {\n if (Path.equals(op.path, path)) {\n if (op.position === offset && affinity == null) {\n return null;\n } else if (op.position < offset || op.position === offset && affinity === 'forward') {\n p.offset -= op.position;\n p.path = Path.transform(path, op, _objectSpread$6(_objectSpread$6({}, options), {}, {\n affinity: 'forward'\n }));\n }\n } else {\n p.path = Path.transform(path, op, options);\n }\n\n break;\n }\n }\n });\n }\n\n};\n\nvar PointRef = {\n /**\r\n * Transform the point ref's current value by an operation.\r\n */\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var point = Point.transform(current, op, {\n affinity\n });\n ref.current = point;\n\n if (point == null) {\n ref.unref();\n }\n }\n\n};\n\nvar _excluded$2 = [\"anchor\", \"focus\"];\n\nfunction ownKeys$5(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$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Range = {\n /**\r\n * Get the start and end points of a range, in the order in which they appear\r\n * in the document.\r\n */\n edges(range) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var {\n anchor,\n focus\n } = range;\n return Range.isBackward(range) === reverse ? [anchor, focus] : [focus, anchor];\n },\n\n /**\r\n * Get the end point of a range.\r\n */\n end(range) {\n var [, end] = Range.edges(range);\n return end;\n },\n\n /**\r\n * Check if a range is exactly equal to another.\r\n */\n equals(range, another) {\n return Point.equals(range.anchor, another.anchor) && Point.equals(range.focus, another.focus);\n },\n\n /**\r\n * Check if a range includes a path, a point or part of another range.\r\n */\n includes(range, target) {\n if (Range.isRange(target)) {\n if (Range.includes(range, target.anchor) || Range.includes(range, target.focus)) {\n return true;\n }\n\n var [rs, re] = Range.edges(range);\n var [ts, te] = Range.edges(target);\n return Point.isBefore(rs, ts) && Point.isAfter(re, te);\n }\n\n var [start, end] = Range.edges(range);\n var isAfterStart = false;\n var isBeforeEnd = false;\n\n if (Point.isPoint(target)) {\n isAfterStart = Point.compare(target, start) >= 0;\n isBeforeEnd = Point.compare(target, end) <= 0;\n } else {\n isAfterStart = Path.compare(target, start.path) >= 0;\n isBeforeEnd = Path.compare(target, end.path) <= 0;\n }\n\n return isAfterStart && isBeforeEnd;\n },\n\n /**\r\n * Get the intersection of a range with another.\r\n */\n intersection(range, another) {\n var rest = _objectWithoutProperties(range, _excluded$2);\n\n var [s1, e1] = Range.edges(range);\n var [s2, e2] = Range.edges(another);\n var start = Point.isBefore(s1, s2) ? s2 : s1;\n var end = Point.isBefore(e1, e2) ? e1 : e2;\n\n if (Point.isBefore(end, start)) {\n return null;\n } else {\n return _objectSpread$5({\n anchor: start,\n focus: end\n }, rest);\n }\n },\n\n /**\r\n * Check if a range is backward, meaning that its anchor point appears in the\r\n * document _after_ its focus point.\r\n */\n isBackward(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.isAfter(anchor, focus);\n },\n\n /**\r\n * Check if a range is collapsed, meaning that both its anchor and focus\r\n * points refer to the exact same position in the document.\r\n */\n isCollapsed(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.equals(anchor, focus);\n },\n\n /**\r\n * Check if a range is expanded.\r\n *\r\n * This is the opposite of [[Range.isCollapsed]] and is provided for legibility.\r\n */\n isExpanded(range) {\n return !Range.isCollapsed(range);\n },\n\n /**\r\n * Check if a range is forward.\r\n *\r\n * This is the opposite of [[Range.isBackward]] and is provided for legibility.\r\n */\n isForward(range) {\n return !Range.isBackward(range);\n },\n\n /**\r\n * Check if a value implements the [[Range]] interface.\r\n */\n isRange(value) {\n return isPlainObject(value) && Point.isPoint(value.anchor) && Point.isPoint(value.focus);\n },\n\n /**\r\n * Iterate through all of the point entries in a range.\r\n */\n *points(range) {\n yield [range.anchor, 'anchor'];\n yield [range.focus, 'focus'];\n },\n\n /**\r\n * Get the start point of a range.\r\n */\n start(range) {\n var [start] = Range.edges(range);\n return start;\n },\n\n /**\r\n * Transform a range by an operation.\r\n */\n transform(range, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(range, r => {\n if (r === null) {\n return null;\n }\n\n var {\n affinity = 'inward'\n } = options;\n var affinityAnchor;\n var affinityFocus;\n\n if (affinity === 'inward') {\n // If the range is collapsed, make sure to use the same affinity to\n // avoid the two points passing each other and expanding in the opposite\n // direction\n var isCollapsed = Range.isCollapsed(r);\n\n if (Range.isForward(r)) {\n affinityAnchor = 'forward';\n affinityFocus = isCollapsed ? affinityAnchor : 'backward';\n } else {\n affinityAnchor = 'backward';\n affinityFocus = isCollapsed ? affinityAnchor : 'forward';\n }\n } else if (affinity === 'outward') {\n if (Range.isForward(r)) {\n affinityAnchor = 'backward';\n affinityFocus = 'forward';\n } else {\n affinityAnchor = 'forward';\n affinityFocus = 'backward';\n }\n } else {\n affinityAnchor = affinity;\n affinityFocus = affinity;\n }\n\n var anchor = Point.transform(r.anchor, op, {\n affinity: affinityAnchor\n });\n var focus = Point.transform(r.focus, op, {\n affinity: affinityFocus\n });\n\n if (!anchor || !focus) {\n return null;\n }\n\n r.anchor = anchor;\n r.focus = focus;\n });\n }\n\n};\n\nvar RangeRef = {\n /**\r\n * Transform the range ref's current value by an operation.\r\n */\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var path = Range.transform(current, op, {\n affinity\n });\n ref.current = path;\n\n if (path == null) {\n ref.unref();\n }\n }\n\n};\n\nvar _scrubber = undefined;\n/**\r\n * This interface implements a stringify() function, which is used by Slate\r\n * internally when generating exceptions containing end user data. Developers\r\n * using Slate may call Scrubber.setScrubber() to alter the behavior of this\r\n * stringify() function.\r\n *\r\n * For example, to prevent the cleartext logging of 'text' fields within Nodes:\r\n *\r\n * import { Scrubber } from 'slate';\r\n * Scrubber.setScrubber((key, val) => {\r\n * if (key === 'text') return '...scrubbed...'\r\n * return val\r\n * });\r\n *\r\n */\n// eslint-disable-next-line no-redeclare\n\nvar Scrubber = {\n setScrubber(scrubber) {\n _scrubber = scrubber;\n },\n\n stringify(value) {\n return JSON.stringify(value, _scrubber);\n }\n\n};\n\n/*\r\n Custom deep equal comparison for Slate nodes.\r\n\n We don't need general purpose deep equality;\r\n Slate only supports plain values, Arrays, and nested objects.\r\n Complex values nested inside Arrays are not supported.\r\n\n Slate objects are designed to be serialised, so\r\n missing keys are deliberately normalised to undefined.\r\n */\n\nvar isDeepEqual = (node, another) => {\n for (var key in node) {\n var a = node[key];\n var b = another[key];\n\n if (isPlainObject(a) && isPlainObject(b)) {\n if (!isDeepEqual(a, b)) return false;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n } else if (a !== b) {\n return false;\n }\n }\n /*\r\n Deep object equality is only necessary in one direction; in the reverse direction\r\n we are only looking for keys that are missing.\r\n As above, undefined keys are normalised to missing.\r\n */\n\n\n for (var _key in another) {\n if (node[_key] === undefined && another[_key] !== undefined) {\n return false;\n }\n }\n\n return true;\n};\n\nvar _excluded$1 = [\"text\"],\n _excluded2$1 = [\"anchor\", \"focus\"];\n\nfunction ownKeys$4(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$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Text = {\n /**\r\n * Check if two text nodes are equal.\r\n *\r\n * When loose is set, the text is not compared. This is\r\n * used to check whether sibling text nodes can be merged.\r\n */\n equals(text, another) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n loose = false\n } = options;\n\n function omitText(obj) {\n var rest = _objectWithoutProperties(obj, _excluded$1);\n\n return rest;\n }\n\n return isDeepEqual(loose ? omitText(text) : text, loose ? omitText(another) : another);\n },\n\n /**\r\n * Check if a value implements the `Text` interface.\r\n */\n isText(value) {\n return isPlainObject(value) && typeof value.text === 'string';\n },\n\n /**\r\n * Check if a value is a list of `Text` objects.\r\n */\n isTextList(value) {\n return Array.isArray(value) && value.every(val => Text.isText(val));\n },\n\n /**\r\n * Check if some props are a partial of Text.\r\n */\n isTextProps(props) {\n return props.text !== undefined;\n },\n\n /**\r\n * Check if an text matches set of properties.\r\n *\r\n * Note: this is for matching custom properties, and it does not ensure that\r\n * the `text` property are two nodes equal.\r\n */\n matches(text, props) {\n for (var key in props) {\n if (key === 'text') {\n continue;\n }\n\n if (!text.hasOwnProperty(key) || text[key] !== props[key]) {\n return false;\n }\n }\n\n return true;\n },\n\n /**\r\n * Get the leaves for a text node given decorations.\r\n */\n decorations(node, decorations) {\n var leaves = [_objectSpread$4({}, node)];\n\n for (var dec of decorations) {\n var rest = _objectWithoutProperties(dec, _excluded2$1);\n\n var [start, end] = Range.edges(dec);\n var next = [];\n var leafEnd = 0;\n var decorationStart = start.offset;\n var decorationEnd = end.offset;\n\n for (var leaf of leaves) {\n var {\n length\n } = leaf.text;\n var leafStart = leafEnd;\n leafEnd += length; // If the range encompasses the entire leaf, add the range.\n\n if (decorationStart <= leafStart && leafEnd <= decorationEnd) {\n Object.assign(leaf, rest);\n next.push(leaf);\n continue;\n } // If the range expanded and match the leaf, or starts after, or ends before it, continue.\n\n\n if (decorationStart !== decorationEnd && (decorationStart === leafEnd || decorationEnd === leafStart) || decorationStart > leafEnd || decorationEnd < leafStart || decorationEnd === leafStart && leafStart !== 0) {\n next.push(leaf);\n continue;\n } // Otherwise we need to split the leaf, at the start, end, or both,\n // and add the range to the middle intersecting section. Do the end\n // split first since we don't need to update the offset that way.\n\n\n var middle = leaf;\n var before = void 0;\n var after = void 0;\n\n if (decorationEnd < leafEnd) {\n var off = decorationEnd - leafStart;\n after = _objectSpread$4(_objectSpread$4({}, middle), {}, {\n text: middle.text.slice(off)\n });\n middle = _objectSpread$4(_objectSpread$4({}, middle), {}, {\n text: middle.text.slice(0, off)\n });\n }\n\n if (decorationStart > leafStart) {\n var _off = decorationStart - leafStart;\n\n before = _objectSpread$4(_objectSpread$4({}, middle), {}, {\n text: middle.text.slice(0, _off)\n });\n middle = _objectSpread$4(_objectSpread$4({}, middle), {}, {\n text: middle.text.slice(_off)\n });\n }\n\n Object.assign(middle, rest);\n\n if (before) {\n next.push(before);\n }\n\n next.push(middle);\n\n if (after) {\n next.push(after);\n }\n }\n\n leaves = next;\n }\n\n return leaves;\n }\n\n};\n\nfunction ownKeys$3(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$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar applyToDraft = (editor, selection, op) => {\n switch (op.type) {\n case 'insert_node':\n {\n var {\n path,\n node\n } = op;\n var parent = Node.parent(editor, path);\n var index = path[path.length - 1];\n\n if (index > parent.children.length) {\n throw new Error(\"Cannot apply an \\\"insert_node\\\" operation at path [\".concat(path, \"] because the destination is past the end of the node.\"));\n }\n\n parent.children.splice(index, 0, node);\n\n if (selection) {\n for (var [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op);\n }\n }\n\n break;\n }\n\n case 'insert_text':\n {\n var {\n path: _path,\n offset,\n text\n } = op;\n if (text.length === 0) break;\n\n var _node = Node.leaf(editor, _path);\n\n var before = _node.text.slice(0, offset);\n\n var after = _node.text.slice(offset);\n\n _node.text = before + text + after;\n\n if (selection) {\n for (var [_point, _key] of Range.points(selection)) {\n selection[_key] = Point.transform(_point, op);\n }\n }\n\n break;\n }\n\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n\n var _node2 = Node.get(editor, _path2);\n\n var prevPath = Path.previous(_path2);\n var prev = Node.get(editor, prevPath);\n\n var _parent = Node.parent(editor, _path2);\n\n var _index = _path2[_path2.length - 1];\n\n if (Text.isText(_node2) && Text.isText(prev)) {\n prev.text += _node2.text;\n } else if (!Text.isText(_node2) && !Text.isText(prev)) {\n prev.children.push(..._node2.children);\n } else {\n throw new Error(\"Cannot apply a \\\"merge_node\\\" operation at path [\".concat(_path2, \"] to nodes of different interfaces: \").concat(Scrubber.stringify(_node2), \" \").concat(Scrubber.stringify(prev)));\n }\n\n _parent.children.splice(_index, 1);\n\n if (selection) {\n for (var [_point2, _key2] of Range.points(selection)) {\n selection[_key2] = Point.transform(_point2, op);\n }\n }\n\n break;\n }\n\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n\n if (Path.isAncestor(_path3, newPath)) {\n throw new Error(\"Cannot move a path [\".concat(_path3, \"] to new path [\").concat(newPath, \"] because the destination is inside itself.\"));\n }\n\n var _node3 = Node.get(editor, _path3);\n\n var _parent2 = Node.parent(editor, _path3);\n\n var _index2 = _path3[_path3.length - 1]; // This is tricky, but since the `path` and `newPath` both refer to\n // the same snapshot in time, there's a mismatch. After either\n // removing the original position, the second step's path can be out\n // of date. So instead of using the `op.newPath` directly, we\n // transform `op.path` to ascertain what the `newPath` would be after\n // the operation was applied.\n\n _parent2.children.splice(_index2, 1);\n\n var truePath = Path.transform(_path3, op);\n var newParent = Node.get(editor, Path.parent(truePath));\n var newIndex = truePath[truePath.length - 1];\n newParent.children.splice(newIndex, 0, _node3);\n\n if (selection) {\n for (var [_point3, _key3] of Range.points(selection)) {\n selection[_key3] = Point.transform(_point3, op);\n }\n }\n\n break;\n }\n\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _index3 = _path4[_path4.length - 1];\n\n var _parent3 = Node.parent(editor, _path4);\n\n _parent3.children.splice(_index3, 1); // Transform all of the points in the value, but if the point was in the\n // node that was removed we need to update the range or remove it.\n\n\n if (selection) {\n for (var [_point4, _key4] of Range.points(selection)) {\n var result = Point.transform(_point4, op);\n\n if (selection != null && result != null) {\n selection[_key4] = result;\n } else {\n var _prev = void 0;\n\n var next = void 0;\n\n for (var [n, p] of Node.texts(editor)) {\n if (Path.compare(p, _path4) === -1) {\n _prev = [n, p];\n } else {\n next = [n, p];\n break;\n }\n }\n\n var preferNext = false;\n\n if (_prev && next) {\n if (Path.equals(next[1], _path4)) {\n preferNext = !Path.hasPrevious(next[1]);\n } else {\n preferNext = Path.common(_prev[1], _path4).length < Path.common(next[1], _path4).length;\n }\n }\n\n if (_prev && !preferNext) {\n _point4.path = _prev[1];\n _point4.offset = _prev[0].text.length;\n } else if (next) {\n _point4.path = next[1];\n _point4.offset = 0;\n } else {\n selection = null;\n }\n }\n }\n }\n\n break;\n }\n\n case 'remove_text':\n {\n var {\n path: _path5,\n offset: _offset,\n text: _text\n } = op;\n if (_text.length === 0) break;\n\n var _node4 = Node.leaf(editor, _path5);\n\n var _before = _node4.text.slice(0, _offset);\n\n var _after = _node4.text.slice(_offset + _text.length);\n\n _node4.text = _before + _after;\n\n if (selection) {\n for (var [_point5, _key5] of Range.points(selection)) {\n selection[_key5] = Point.transform(_point5, op);\n }\n }\n\n break;\n }\n\n case 'set_node':\n {\n var {\n path: _path6,\n properties,\n newProperties\n } = op;\n\n if (_path6.length === 0) {\n throw new Error(\"Cannot set properties on the root node!\");\n }\n\n var _node5 = Node.get(editor, _path6);\n\n for (var _key6 in newProperties) {\n if (_key6 === 'children' || _key6 === 'text') {\n throw new Error(\"Cannot set the \\\"\".concat(_key6, \"\\\" property of nodes!\"));\n }\n\n var value = newProperties[_key6];\n\n if (value == null) {\n delete _node5[_key6];\n } else {\n _node5[_key6] = value;\n }\n } // properties that were previously defined, but are now missing, must be deleted\n\n\n for (var _key7 in properties) {\n if (!newProperties.hasOwnProperty(_key7)) {\n delete _node5[_key7];\n }\n }\n\n break;\n }\n\n case 'set_selection':\n {\n var {\n newProperties: _newProperties\n } = op;\n\n if (_newProperties == null) {\n selection = _newProperties;\n } else {\n if (selection == null) {\n if (!Range.isRange(_newProperties)) {\n throw new Error(\"Cannot apply an incomplete \\\"set_selection\\\" operation properties \".concat(Scrubber.stringify(_newProperties), \" when there is no current selection.\"));\n }\n\n selection = _objectSpread$3({}, _newProperties);\n }\n\n for (var _key8 in _newProperties) {\n var _value = _newProperties[_key8];\n\n if (_value == null) {\n if (_key8 === 'anchor' || _key8 === 'focus') {\n throw new Error(\"Cannot remove the \\\"\".concat(_key8, \"\\\" selection property\"));\n }\n\n delete selection[_key8];\n } else {\n selection[_key8] = _value;\n }\n }\n }\n\n break;\n }\n\n case 'split_node':\n {\n var {\n path: _path7,\n position,\n properties: _properties\n } = op;\n\n if (_path7.length === 0) {\n throw new Error(\"Cannot apply a \\\"split_node\\\" operation at path [\".concat(_path7, \"] because the root node cannot be split.\"));\n }\n\n var _node6 = Node.get(editor, _path7);\n\n var _parent4 = Node.parent(editor, _path7);\n\n var _index4 = _path7[_path7.length - 1];\n var newNode;\n\n if (Text.isText(_node6)) {\n var _before2 = _node6.text.slice(0, position);\n\n var _after2 = _node6.text.slice(position);\n\n _node6.text = _before2;\n newNode = _objectSpread$3(_objectSpread$3({}, _properties), {}, {\n text: _after2\n });\n } else {\n var _before3 = _node6.children.slice(0, position);\n\n var _after3 = _node6.children.slice(position);\n\n _node6.children = _before3;\n newNode = _objectSpread$3(_objectSpread$3({}, _properties), {}, {\n children: _after3\n });\n }\n\n _parent4.children.splice(_index4 + 1, 0, newNode);\n\n if (selection) {\n for (var [_point6, _key9] of Range.points(selection)) {\n selection[_key9] = Point.transform(_point6, op);\n }\n }\n\n break;\n }\n }\n\n return selection;\n}; // eslint-disable-next-line no-redeclare\n\n\nvar GeneralTransforms = {\n /**\r\n * Transform the editor by an operation.\r\n */\n transform(editor, op) {\n editor.children = createDraft(editor.children);\n var selection = editor.selection && createDraft(editor.selection);\n\n try {\n selection = applyToDraft(editor, selection, op);\n } finally {\n editor.children = finishDraft(editor.children);\n\n if (selection) {\n editor.selection = isDraft(selection) ? finishDraft(selection) : selection;\n } else {\n editor.selection = null;\n }\n }\n }\n\n};\n\nvar _excluded = [\"text\"],\n _excluded2 = [\"children\"];\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar NodeTransforms = {\n /**\r\n * Insert nodes at a specific location in the Editor.\r\n */\n insertNodes(editor, nodes) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at,\n match,\n select\n } = options;\n\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n\n if (nodes.length === 0) {\n return;\n }\n\n var [node] = nodes; // By default, use the selection as the target location. But if there is\n // no selection, insert at the end of the document since that is such a\n // common use case when inserting from a non-selected state.\n\n if (!at) {\n if (editor.selection) {\n at = editor.selection;\n } else if (editor.children.length > 0) {\n at = Editor.end(editor, []);\n } else {\n at = [0];\n }\n\n select = true;\n }\n\n if (select == null) {\n select = false;\n }\n\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at);\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n }\n\n if (Point.isPoint(at)) {\n if (match == null) {\n if (Text.isText(node)) {\n match = n => Text.isText(n);\n } else if (editor.isInline(node)) {\n match = n => Text.isText(n) || Editor.isInline(editor, n);\n } else {\n match = n => Editor.isBlock(editor, n);\n }\n }\n\n var [entry] = Editor.nodes(editor, {\n at: at.path,\n match,\n mode,\n voids\n });\n\n if (entry) {\n var [, _matchPath] = entry;\n var pathRef = Editor.pathRef(editor, _matchPath);\n var isAtEnd = Editor.isEnd(editor, at, _matchPath);\n Transforms.splitNodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var path = pathRef.unref();\n at = isAtEnd ? Path.next(path) : path;\n } else {\n return;\n }\n }\n\n var parentPath = Path.parent(at);\n var index = at[at.length - 1];\n\n if (!voids && Editor.void(editor, {\n at: parentPath\n })) {\n return;\n }\n\n for (var _node of nodes) {\n var _path = parentPath.concat(index);\n\n index++;\n editor.apply({\n type: 'insert_node',\n path: _path,\n node: _node\n });\n at = Path.next(at);\n }\n\n at = Path.previous(at);\n\n if (select) {\n var point = Editor.end(editor, at);\n\n if (point) {\n Transforms.select(editor, point);\n }\n }\n });\n },\n\n /**\r\n * Lift nodes at a specific location upwards in the document tree, splitting\r\n * their parent in two if necessary.\r\n */\n liftNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Editor.isBlock(editor, n);\n }\n\n if (!at) {\n return;\n }\n\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n\n if (path.length < 2) {\n throw new Error(\"Cannot lift node at a path [\".concat(path, \"] because it has a depth of less than `2`.\"));\n }\n\n var parentNodeEntry = Editor.node(editor, Path.parent(path));\n var [parent, parentPath] = parentNodeEntry;\n var index = path[path.length - 1];\n var {\n length\n } = parent.children;\n\n if (length === 1) {\n var toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: toPath,\n voids\n });\n Transforms.removeNodes(editor, {\n at: parentPath,\n voids\n });\n } else if (index === 0) {\n Transforms.moveNodes(editor, {\n at: path,\n to: parentPath,\n voids\n });\n } else if (index === length - 1) {\n var _toPath = Path.next(parentPath);\n\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath,\n voids\n });\n } else {\n var splitPath = Path.next(path);\n\n var _toPath2 = Path.next(parentPath);\n\n Transforms.splitNodes(editor, {\n at: splitPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath2,\n voids\n });\n }\n }\n });\n },\n\n /**\r\n * Merge a node at a location with the previous node of the same depth,\r\n * removing any empty containing nodes after the merge if necessary.\r\n */\n mergeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection\n } = options;\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = n => Editor.isBlock(editor, n);\n }\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at);\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n }\n\n var [current] = Editor.nodes(editor, {\n at,\n match,\n voids,\n mode\n });\n var prev = Editor.previous(editor, {\n at,\n match,\n voids,\n mode\n });\n\n if (!current || !prev) {\n return;\n }\n\n var [node, path] = current;\n var [prevNode, prevPath] = prev;\n\n if (path.length === 0 || prevPath.length === 0) {\n return;\n }\n\n var newPath = Path.next(prevPath);\n var commonPath = Path.common(path, prevPath);\n var isPreviousSibling = Path.isSibling(path, prevPath);\n var levels = Array.from(Editor.levels(editor, {\n at: path\n }), _ref2 => {\n var [n] = _ref2;\n return n;\n }).slice(commonPath.length).slice(0, -1); // Determine if the merge will leave an ancestor of the path empty as a\n // result, in which case we'll want to remove it after merging.\n\n var emptyAncestor = Editor.above(editor, {\n at: path,\n mode: 'highest',\n match: n => levels.includes(n) && hasSingleChildNest(editor, n)\n });\n var emptyRef = emptyAncestor && Editor.pathRef(editor, emptyAncestor[1]);\n var properties;\n var position; // Ensure that the nodes are equivalent, and figure out what the position\n // and extra properties of the merge will be.\n\n if (Text.isText(node) && Text.isText(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded);\n\n position = prevNode.text.length;\n properties = rest;\n } else if (Element.isElement(node) && Element.isElement(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded2);\n\n position = prevNode.children.length;\n properties = rest;\n } else {\n throw new Error(\"Cannot merge the node at path [\".concat(path, \"] with the previous sibling because it is not the same kind: \").concat(Scrubber.stringify(node), \" \").concat(Scrubber.stringify(prevNode)));\n } // If the node isn't already the next sibling of the previous node, move\n // it so that it is before merging.\n\n\n if (!isPreviousSibling) {\n Transforms.moveNodes(editor, {\n at: path,\n to: newPath,\n voids\n });\n } // If there was going to be an empty ancestor of the node that was merged,\n // we remove it from the tree.\n\n\n if (emptyRef) {\n Transforms.removeNodes(editor, {\n at: emptyRef.current,\n voids\n });\n } // If the target node that we're merging with is empty, remove it instead\n // of merging the two. This is a common rich text editor behavior to\n // prevent losing formatting when deleting entire nodes when you have a\n // hanging selection.\n // if prevNode is first child in parent,don't remove it.\n\n\n if (Element.isElement(prevNode) && Editor.isEmpty(editor, prevNode) || Text.isText(prevNode) && prevNode.text === '' && prevPath[prevPath.length - 1] !== 0) {\n Transforms.removeNodes(editor, {\n at: prevPath,\n voids\n });\n } else {\n editor.apply({\n type: 'merge_node',\n path: newPath,\n position,\n properties\n });\n }\n\n if (emptyRef) {\n emptyRef.unref();\n }\n });\n },\n\n /**\r\n * Move the nodes at a location to a new location.\r\n */\n moveNodes(editor, options) {\n Editor.withoutNormalizing(editor, () => {\n var {\n to,\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Editor.isBlock(editor, n);\n }\n\n var toRef = Editor.pathRef(editor, to);\n var targets = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(targets, _ref3 => {\n var [, p] = _ref3;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n var newPath = toRef.current;\n\n if (path.length !== 0) {\n editor.apply({\n type: 'move_node',\n path,\n newPath\n });\n }\n\n if (toRef.current && Path.isSibling(newPath, path) && Path.isAfter(newPath, path)) {\n // When performing a sibling move to a later index, the path at the destination is shifted\n // to before the insertion point instead of after. To ensure our group of nodes are inserted\n // in the correct order we increment toRef to account for that\n toRef.current = Path.next(toRef.current);\n }\n }\n\n toRef.unref();\n });\n },\n\n /**\r\n * Remove the nodes at a specific location in the document.\r\n */\n removeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Editor.isBlock(editor, n);\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at);\n }\n\n var depths = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(depths, _ref4 => {\n var [, p] = _ref4;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n\n if (path) {\n var [node] = Editor.node(editor, path);\n editor.apply({\n type: 'remove_node',\n path,\n node\n });\n }\n }\n });\n },\n\n /**\r\n * Set new properties on the nodes at a location.\r\n */\n setNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection,\n compare,\n merge\n } = options;\n var {\n hanging = false,\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Editor.isBlock(editor, n);\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at);\n }\n\n if (split && Range.isRange(at)) {\n if (Range.isCollapsed(at) && Editor.leaf(editor, at.anchor)[0].text.length > 0) {\n // If the range is collapsed in a non-empty node and 'split' is true, there's nothing to\n // set that won't get normalized away\n return;\n }\n\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n var [start, end] = Range.edges(at);\n var splitMode = mode === 'lowest' ? 'lowest' : 'highest';\n var endAtEndOfNode = Editor.isEnd(editor, end, end.path);\n Transforms.splitNodes(editor, {\n at: end,\n match,\n mode: splitMode,\n voids,\n always: !endAtEndOfNode\n });\n var startAtStartOfNode = Editor.isStart(editor, start, start.path);\n Transforms.splitNodes(editor, {\n at: start,\n match,\n mode: splitMode,\n voids,\n always: !startAtStartOfNode\n });\n at = rangeRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n\n if (!compare) {\n compare = (prop, nodeProp) => prop !== nodeProp;\n }\n\n for (var [node, path] of Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n })) {\n var properties = {};\n var newProperties = {}; // You can't set properties on the editor node.\n\n if (path.length === 0) {\n continue;\n }\n\n var hasChanges = false;\n\n for (var k in props) {\n if (k === 'children' || k === 'text') {\n continue;\n }\n\n if (compare(props[k], node[k])) {\n hasChanges = true; // Omit new properties from the old properties list\n\n if (node.hasOwnProperty(k)) properties[k] = node[k]; // Omit properties that have been removed from the new properties list\n\n if (merge) {\n if (props[k] != null) newProperties[k] = merge(node[k], props[k]);\n } else {\n if (props[k] != null) newProperties[k] = props[k];\n }\n }\n }\n\n if (hasChanges) {\n editor.apply({\n type: 'set_node',\n path,\n properties,\n newProperties\n });\n }\n }\n });\n },\n\n /**\r\n * Split the nodes at a specific location.\r\n */\n splitNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection,\n height = 0,\n always = false\n } = options;\n\n if (match == null) {\n match = n => Editor.isBlock(editor, n);\n }\n\n if (Range.isRange(at)) {\n at = deleteRange(editor, at);\n } // If the target is a path, the default height-skipping and position\n // counters need to account for us potentially splitting at a non-leaf.\n\n\n if (Path.isPath(at)) {\n var path = at;\n var point = Editor.point(editor, path);\n var [parent] = Editor.parent(editor, path);\n\n match = n => n === parent;\n\n height = point.path.length - path.length + 1;\n at = point;\n always = true;\n }\n\n if (!at) {\n return;\n }\n\n var beforeRef = Editor.pointRef(editor, at, {\n affinity: 'backward'\n });\n var afterRef;\n\n try {\n var [highest] = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n\n if (!highest) {\n return;\n }\n\n var voidMatch = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n var nudge = 0;\n\n if (!voids && voidMatch) {\n var [voidNode, voidPath] = voidMatch;\n\n if (Element.isElement(voidNode) && editor.isInline(voidNode)) {\n var after = Editor.after(editor, voidPath);\n\n if (!after) {\n var text = {\n text: ''\n };\n var afterPath = Path.next(voidPath);\n Transforms.insertNodes(editor, text, {\n at: afterPath,\n voids\n });\n after = Editor.point(editor, afterPath);\n }\n\n at = after;\n always = true;\n }\n\n var siblingHeight = at.path.length - voidPath.length;\n height = siblingHeight + 1;\n always = true;\n }\n\n afterRef = Editor.pointRef(editor, at);\n var depth = at.path.length - height;\n var [, highestPath] = highest;\n var lowestPath = at.path.slice(0, depth);\n var position = height === 0 ? at.offset : at.path[depth] + nudge;\n\n for (var [node, _path2] of Editor.levels(editor, {\n at: lowestPath,\n reverse: true,\n voids\n })) {\n var split = false;\n\n if (_path2.length < highestPath.length || _path2.length === 0 || !voids && Editor.isVoid(editor, node)) {\n break;\n }\n\n var _point = beforeRef.current;\n var isEnd = Editor.isEnd(editor, _point, _path2);\n\n if (always || !beforeRef || !Editor.isEdge(editor, _point, _path2)) {\n split = true;\n var properties = Node.extractProps(node);\n editor.apply({\n type: 'split_node',\n path: _path2,\n position,\n properties\n });\n }\n\n position = _path2[_path2.length - 1] + (split || isEnd ? 1 : 0);\n }\n\n if (options.at == null) {\n var _point2 = afterRef.current || Editor.end(editor, []);\n\n Transforms.select(editor, _point2);\n }\n } finally {\n var _afterRef;\n\n beforeRef.unref();\n (_afterRef = afterRef) === null || _afterRef === void 0 ? void 0 : _afterRef.unref();\n }\n });\n },\n\n /**\r\n * Unset properties on the nodes at a location.\r\n */\n unsetNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!Array.isArray(props)) {\n props = [props];\n }\n\n var obj = {};\n\n for (var key of props) {\n obj[key] = null;\n }\n\n Transforms.setNodes(editor, obj, options);\n },\n\n /**\r\n * Unwrap the nodes at a location from a parent node, splitting the parent if\r\n * necessary to ensure that only the content in the range is unwrapped.\r\n */\n unwrapNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Editor.isBlock(editor, n);\n }\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n\n var rangeRef = Range.isRange(at) ? Editor.rangeRef(editor, at) : null;\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref5 => {\n var [, p] = _ref5;\n return Editor.pathRef(editor, p);\n } // unwrapNode will call liftNode which does not support splitting the node when nested.\n // If we do not reverse the order and call it from top to the bottom, it will remove all blocks\n // that wrap target node. So we reverse the order.\n ).reverse();\n\n var _loop = function _loop(pathRef) {\n var path = pathRef.unref();\n var [node] = Editor.node(editor, path);\n var range = Editor.range(editor, path);\n\n if (split && rangeRef) {\n range = Range.intersection(rangeRef.current, range);\n }\n\n Transforms.liftNodes(editor, {\n at: range,\n match: n => Element.isAncestor(node) && node.children.includes(n),\n voids\n });\n };\n\n for (var pathRef of pathRefs) {\n _loop(pathRef);\n }\n\n if (rangeRef) {\n rangeRef.unref();\n }\n });\n },\n\n /**\r\n * Wrap the nodes at a location in a new container node, splitting the edges\r\n * of the range first to ensure that only the content in the range is wrapped.\r\n */\n wrapNodes(editor, element) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n match = matchPath(editor, at);\n } else if (editor.isInline(element)) {\n match = n => Editor.isInline(editor, n) || Text.isText(n);\n } else {\n match = n => Editor.isBlock(editor, n);\n }\n }\n\n if (split && Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n Transforms.splitNodes(editor, {\n at: end,\n match,\n voids\n });\n Transforms.splitNodes(editor, {\n at: start,\n match,\n voids\n });\n at = rangeRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n\n var roots = Array.from(Editor.nodes(editor, {\n at,\n match: editor.isInline(element) ? n => Editor.isBlock(editor, n) : n => Editor.isEditor(n),\n mode: 'lowest',\n voids\n }));\n\n for (var [, rootPath] of roots) {\n var a = Range.isRange(at) ? Range.intersection(at, Editor.range(editor, rootPath)) : at;\n\n if (!a) {\n continue;\n }\n\n var matches = Array.from(Editor.nodes(editor, {\n at: a,\n match,\n mode,\n voids\n }));\n\n if (matches.length > 0) {\n var _ret = function () {\n var [first] = matches;\n var last = matches[matches.length - 1];\n var [, firstPath] = first;\n var [, lastPath] = last;\n\n if (firstPath.length === 0 && lastPath.length === 0) {\n // if there's no matching parent - usually means the node is an editor - don't do anything\n return \"continue\";\n }\n\n var commonPath = Path.equals(firstPath, lastPath) ? Path.parent(firstPath) : Path.common(firstPath, lastPath);\n var range = Editor.range(editor, firstPath, lastPath);\n var commonNodeEntry = Editor.node(editor, commonPath);\n var [commonNode] = commonNodeEntry;\n var depth = commonPath.length + 1;\n var wrapperPath = Path.next(lastPath.slice(0, depth));\n\n var wrapper = _objectSpread$2(_objectSpread$2({}, element), {}, {\n children: []\n });\n\n Transforms.insertNodes(editor, wrapper, {\n at: wrapperPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: range,\n match: n => Element.isAncestor(commonNode) && commonNode.children.includes(n),\n to: wrapperPath.concat(0),\n voids\n });\n }();\n\n if (_ret === \"continue\") continue;\n }\n }\n });\n }\n\n};\n\nvar hasSingleChildNest = (editor, node) => {\n if (Element.isElement(node)) {\n var element = node;\n\n if (Editor.isVoid(editor, node)) {\n return true;\n } else if (element.children.length === 1) {\n return hasSingleChildNest(editor, element.children[0]);\n } else {\n return false;\n }\n } else if (Editor.isEditor(node)) {\n return false;\n } else {\n return true;\n }\n};\n/**\r\n * Convert a range into a point by deleting it's content.\r\n */\n\n\nvar deleteRange = (editor, range) => {\n if (Range.isCollapsed(range)) {\n return range.anchor;\n } else {\n var [, end] = Range.edges(range);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at: range\n });\n return pointRef.unref();\n }\n};\n\nvar matchPath = (editor, path) => {\n var [node] = Editor.node(editor, path);\n return n => n === node;\n};\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar SelectionTransforms = {\n /**\r\n * Collapse the selection.\r\n */\n collapse(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n edge = 'anchor'\n } = options;\n var {\n selection\n } = editor;\n\n if (!selection) {\n return;\n } else if (edge === 'anchor') {\n Transforms.select(editor, selection.anchor);\n } else if (edge === 'focus') {\n Transforms.select(editor, selection.focus);\n } else if (edge === 'start') {\n var [start] = Range.edges(selection);\n Transforms.select(editor, start);\n } else if (edge === 'end') {\n var [, end] = Range.edges(selection);\n Transforms.select(editor, end);\n }\n },\n\n /**\r\n * Unset the selection.\r\n */\n deselect(editor) {\n var {\n selection\n } = editor;\n\n if (selection) {\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: null\n });\n }\n },\n\n /**\r\n * Move the selection's point forward or backward.\r\n */\n move(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n var {\n distance = 1,\n unit = 'character',\n reverse = false\n } = options;\n var {\n edge = null\n } = options;\n\n if (!selection) {\n return;\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n\n var {\n anchor,\n focus\n } = selection;\n var opts = {\n distance,\n unit\n };\n var props = {};\n\n if (edge == null || edge === 'anchor') {\n var point = reverse ? Editor.before(editor, anchor, opts) : Editor.after(editor, anchor, opts);\n\n if (point) {\n props.anchor = point;\n }\n }\n\n if (edge == null || edge === 'focus') {\n var _point = reverse ? Editor.before(editor, focus, opts) : Editor.after(editor, focus, opts);\n\n if (_point) {\n props.focus = _point;\n }\n }\n\n Transforms.setSelection(editor, props);\n },\n\n /**\r\n * Set the selection to a new value.\r\n */\n select(editor, target) {\n var {\n selection\n } = editor;\n target = Editor.range(editor, target);\n\n if (selection) {\n Transforms.setSelection(editor, target);\n return;\n }\n\n if (!Range.isRange(target)) {\n throw new Error(\"When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: \".concat(Scrubber.stringify(target)));\n }\n\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: target\n });\n },\n\n /**\r\n * Set new properties on one of the selection's points.\r\n */\n setPoint(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection\n } = editor;\n var {\n edge = 'both'\n } = options;\n\n if (!selection) {\n return;\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n\n var {\n anchor,\n focus\n } = selection;\n var point = edge === 'anchor' ? anchor : focus;\n Transforms.setSelection(editor, {\n [edge === 'anchor' ? 'anchor' : 'focus']: _objectSpread$1(_objectSpread$1({}, point), props)\n });\n },\n\n /**\r\n * Set new properties on the selection.\r\n */\n setSelection(editor, props) {\n var {\n selection\n } = editor;\n var oldProps = {};\n var newProps = {};\n\n if (!selection) {\n return;\n }\n\n for (var k in props) {\n if (k === 'anchor' && props.anchor != null && !Point.equals(props.anchor, selection.anchor) || k === 'focus' && props.focus != null && !Point.equals(props.focus, selection.focus) || k !== 'anchor' && k !== 'focus' && props[k] !== selection[k]) {\n oldProps[k] = selection[k];\n newProps[k] = props[k];\n }\n }\n\n if (Object.keys(oldProps).length > 0) {\n editor.apply({\n type: 'set_selection',\n properties: oldProps,\n newProperties: newProps\n });\n }\n }\n\n};\n\nvar TextTransforms = {\n /**\r\n * Delete content in the editor.\r\n */\n delete(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n reverse = false,\n unit = 'character',\n distance = 1,\n voids = false\n } = options;\n var {\n at = editor.selection,\n hanging = false\n } = options;\n\n if (!at) {\n return;\n }\n\n var isCollapsed = false;\n\n if (Range.isRange(at) && Range.isCollapsed(at)) {\n isCollapsed = true;\n at = at.anchor;\n }\n\n if (Point.isPoint(at)) {\n var furthestVoid = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n\n if (!voids && furthestVoid) {\n var [, voidPath] = furthestVoid;\n at = voidPath;\n } else {\n var opts = {\n unit,\n distance\n };\n var target = reverse ? Editor.before(editor, at, opts) || Editor.start(editor, []) : Editor.after(editor, at, opts) || Editor.end(editor, []);\n at = {\n anchor: at,\n focus: target\n };\n hanging = true;\n }\n }\n\n if (Path.isPath(at)) {\n Transforms.removeNodes(editor, {\n at,\n voids\n });\n return;\n }\n\n if (Range.isCollapsed(at)) {\n return;\n }\n\n if (!hanging) {\n var [, _end] = Range.edges(at);\n var endOfDoc = Editor.end(editor, []);\n\n if (!Point.equals(_end, endOfDoc)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n }\n\n var [start, end] = Range.edges(at);\n var startBlock = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n),\n at: start,\n voids\n });\n var endBlock = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n),\n at: end,\n voids\n });\n var isAcrossBlocks = startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1]);\n var isSingleText = Path.equals(start.path, end.path);\n var startVoid = voids ? null : Editor.void(editor, {\n at: start,\n mode: 'highest'\n });\n var endVoid = voids ? null : Editor.void(editor, {\n at: end,\n mode: 'highest'\n }); // If the start or end points are inside an inline void, nudge them out.\n\n if (startVoid) {\n var before = Editor.before(editor, start);\n\n if (before && startBlock && Path.isAncestor(startBlock[1], before.path)) {\n start = before;\n }\n }\n\n if (endVoid) {\n var after = Editor.after(editor, end);\n\n if (after && endBlock && Path.isAncestor(endBlock[1], after.path)) {\n end = after;\n }\n } // Get the highest nodes that are completely inside the range, as well as\n // the start and end nodes.\n\n\n var matches = [];\n var lastPath;\n\n for (var entry of Editor.nodes(editor, {\n at,\n voids\n })) {\n var [node, path] = entry;\n\n if (lastPath && Path.compare(path, lastPath) === 0) {\n continue;\n }\n\n if (!voids && Editor.isVoid(editor, node) || !Path.isCommon(path, start.path) && !Path.isCommon(path, end.path)) {\n matches.push(entry);\n lastPath = path;\n }\n }\n\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n var removedText = '';\n\n if (!isSingleText && !startVoid) {\n var _point = startRef.current;\n var [_node] = Editor.leaf(editor, _point);\n var {\n path: _path\n } = _point;\n var {\n offset\n } = start;\n\n var text = _node.text.slice(offset);\n\n if (text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path,\n offset,\n text\n });\n removedText = text;\n }\n }\n\n pathRefs.reverse().map(r => r.unref()).filter(r => r !== null).forEach(p => Transforms.removeNodes(editor, {\n at: p,\n voids\n }));\n\n if (!endVoid) {\n var _point2 = endRef.current;\n var [_node2] = Editor.leaf(editor, _point2);\n var {\n path: _path2\n } = _point2;\n\n var _offset = isSingleText ? start.offset : 0;\n\n var _text = _node2.text.slice(_offset, end.offset);\n\n if (_text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path2,\n offset: _offset,\n text: _text\n });\n removedText = _text;\n }\n }\n\n if (!isSingleText && isAcrossBlocks && endRef.current && startRef.current) {\n Transforms.mergeNodes(editor, {\n at: endRef.current,\n hanging: true,\n voids\n });\n } // For Thai script, deleting N character(s) backward should delete\n // N code point(s) instead of an entire grapheme cluster.\n // Therefore, the remaining code points should be inserted back.\n\n\n if (isCollapsed && reverse && unit === 'character' && removedText.length > 1 && removedText.match(/[\\u0E00-\\u0E7F]+/)) {\n Transforms.insertText(editor, removedText.slice(0, removedText.length - distance));\n }\n\n var startUnref = startRef.unref();\n var endUnref = endRef.unref();\n var point = reverse ? startUnref || endUnref : endUnref || startUnref;\n\n if (options.at == null && point) {\n Transforms.select(editor, point);\n }\n });\n },\n\n /**\r\n * Insert a fragment at a specific location in the editor.\r\n */\n insertFragment(editor, fragment) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false\n } = options;\n var {\n at = editor.selection\n } = options;\n\n if (!fragment.length) {\n return;\n }\n\n if (!at) {\n return;\n } else if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at);\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n } else if (Path.isPath(at)) {\n at = Editor.start(editor, at);\n }\n\n if (!voids && Editor.void(editor, {\n at\n })) {\n return;\n } // If the insert point is at the edge of an inline node, move it outside\n // instead since it will need to be split otherwise.\n\n\n var inlineElementMatch = Editor.above(editor, {\n at,\n match: n => Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (inlineElementMatch) {\n var [, _inlinePath] = inlineElementMatch;\n\n if (Editor.isEnd(editor, at, _inlinePath)) {\n var after = Editor.after(editor, _inlinePath);\n at = after;\n } else if (Editor.isStart(editor, at, _inlinePath)) {\n var before = Editor.before(editor, _inlinePath);\n at = before;\n }\n }\n\n var blockMatch = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n),\n at,\n voids\n });\n var [, blockPath] = blockMatch;\n var isBlockStart = Editor.isStart(editor, at, blockPath);\n var isBlockEnd = Editor.isEnd(editor, at, blockPath);\n var isBlockEmpty = isBlockStart && isBlockEnd;\n var mergeStart = !isBlockStart || isBlockStart && isBlockEnd;\n var mergeEnd = !isBlockEnd;\n var [, firstPath] = Node.first({\n children: fragment\n }, []);\n var [, lastPath] = Node.last({\n children: fragment\n }, []);\n var matches = [];\n\n var matcher = _ref2 => {\n var [n, p] = _ref2;\n var isRoot = p.length === 0;\n\n if (isRoot) {\n return false;\n }\n\n if (isBlockEmpty) {\n return true;\n }\n\n if (mergeStart && Path.isAncestor(p, firstPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n\n if (mergeEnd && Path.isAncestor(p, lastPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n\n return true;\n };\n\n for (var entry of Node.nodes({\n children: fragment\n }, {\n pass: matcher\n })) {\n if (matcher(entry)) {\n matches.push(entry);\n }\n }\n\n var starts = [];\n var middles = [];\n var ends = [];\n var starting = true;\n var hasBlocks = false;\n\n for (var [node] of matches) {\n if (Element.isElement(node) && !editor.isInline(node)) {\n starting = false;\n hasBlocks = true;\n middles.push(node);\n } else if (starting) {\n starts.push(node);\n } else {\n ends.push(node);\n }\n }\n\n var [inlineMatch] = Editor.nodes(editor, {\n at,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n var [, inlinePath] = inlineMatch;\n var isInlineStart = Editor.isStart(editor, at, inlinePath);\n var isInlineEnd = Editor.isEnd(editor, at, inlinePath);\n var middleRef = Editor.pathRef(editor, isBlockEnd && !ends.length ? Path.next(blockPath) : blockPath);\n var endRef = Editor.pathRef(editor, isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.splitNodes(editor, {\n at,\n match: n => hasBlocks ? Editor.isBlock(editor, n) : Text.isText(n) || Editor.isInline(editor, n),\n mode: hasBlocks ? 'lowest' : 'highest',\n always: hasBlocks && (!isBlockStart || starts.length > 0) && (!isBlockEnd || ends.length > 0),\n voids\n });\n var startRef = Editor.pathRef(editor, !isInlineStart || isInlineStart && isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.insertNodes(editor, starts, {\n at: startRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (isBlockEmpty && !starts.length && middles.length && !ends.length) {\n Transforms.delete(editor, {\n at: blockPath,\n voids\n });\n }\n\n Transforms.insertNodes(editor, middles, {\n at: middleRef.current,\n match: n => Editor.isBlock(editor, n),\n mode: 'lowest',\n voids\n });\n Transforms.insertNodes(editor, ends, {\n at: endRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (!options.at) {\n var path;\n\n if (ends.length > 0 && endRef.current) {\n path = Path.previous(endRef.current);\n } else if (middles.length > 0 && middleRef.current) {\n path = Path.previous(middleRef.current);\n } else if (startRef.current) {\n path = Path.previous(startRef.current);\n }\n\n if (path) {\n var _end2 = Editor.end(editor, path);\n\n Transforms.select(editor, _end2);\n }\n }\n\n startRef.unref();\n middleRef.unref();\n endRef.unref();\n });\n },\n\n /**\r\n * Insert a string of text in the Editor.\r\n */\n insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n voids = false\n } = options;\n var {\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var end = Range.end(at);\n\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n\n var start = Range.start(at);\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at,\n voids\n });\n var startPoint = startRef.unref();\n var endPoint = endRef.unref();\n at = startPoint || endPoint;\n Transforms.setSelection(editor, {\n anchor: at,\n focus: at\n });\n }\n }\n\n if (!voids && Editor.void(editor, {\n at\n })) {\n return;\n }\n\n var {\n path,\n offset\n } = at;\n if (text.length > 0) editor.apply({\n type: 'insert_text',\n path,\n offset,\n text\n });\n });\n }\n\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar Transforms = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, GeneralTransforms), NodeTransforms), SelectionTransforms), TextTransforms);\n\nexport { Editor, Element, Location, Node, Operation, Path, PathRef, Point, PointRef, Range, RangeRef, Scrubber, Span, Text, Transforms, createEditor };\n//# sourceMappingURL=index.es.js.map\n","'use strict'\n\nmodule.exports = direction\n\nvar RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nvar LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\nvar rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\nvar ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nfunction direction(value) {\n value = String(value || '')\n\n if (rtl.test(value)) {\n return 'rtl'\n }\n\n if (ltr.test(value)) {\n return 'ltr'\n }\n\n return 'neutral'\n}\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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","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","/** 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","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","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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","/** 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","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 * 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 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 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 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","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","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if(\"if-needed\"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? compute(target, options) : []);\n }\n\n if (!isTargetAttached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?') && value.length > 1;\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key' && event.key != null) {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","import getDirection from 'direction';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport React, { useLayoutEffect, useEffect, useRef, createContext, useContext, useCallback, Component, useState, useReducer, useMemo } from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { Editor, Scrubber, Transforms, Range, Path, Node, Text as Text$1, Element as Element$1, Point } from 'slate';\nimport { isKeyHotkey } from 'is-hotkey';\nimport ReactDOM from 'react-dom';\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 _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n 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\n/**\r\n * An auto-incrementing identifier for keys.\r\n */\nvar n = 0;\n/**\r\n * A class that keeps track of a key string. We use a full class here because we\r\n * want to be able to use them as keys in `WeakMap` objects.\r\n */\n\nclass Key {\n constructor() {\n this.id = \"\".concat(n++);\n }\n\n}\n\n/**\r\n * Two weak maps that allow us rebuild a path given a node. They are populated\r\n * at render time such that after a render occurs we can always backtrack.\r\n */\nvar NODE_TO_INDEX = new WeakMap();\nvar NODE_TO_PARENT = new WeakMap();\n/**\r\n * Weak maps that allow us to go between Slate nodes and DOM nodes. These\r\n * are used to resolve DOM event-related logic into Slate actions.\r\n */\n\nvar EDITOR_TO_WINDOW = new WeakMap();\nvar EDITOR_TO_ELEMENT = new WeakMap();\nvar EDITOR_TO_PLACEHOLDER_ELEMENT = new WeakMap();\nvar ELEMENT_TO_NODE = new WeakMap();\nvar NODE_TO_ELEMENT = new WeakMap();\nvar NODE_TO_KEY = new WeakMap();\nvar EDITOR_TO_KEY_TO_ELEMENT = new WeakMap();\n/**\r\n * Weak maps for storing editor-related state.\r\n */\n\nvar IS_READ_ONLY = new WeakMap();\nvar IS_FOCUSED = new WeakMap();\nvar IS_COMPOSING = new WeakMap();\nvar EDITOR_TO_USER_SELECTION = new WeakMap();\n/**\r\n * Weak map for associating the context `onChange` context with the plugin.\r\n */\n\nvar EDITOR_TO_ON_CHANGE = new WeakMap();\n/**\r\n * Weak maps for saving pending state on composition stage.\r\n */\n\nvar EDITOR_TO_SCHEDULE_FLUSH = new WeakMap();\nvar EDITOR_TO_PENDING_INSERTION_MARKS = new WeakMap();\nvar EDITOR_TO_USER_MARKS = new WeakMap();\n/**\r\n * Android input handling specific weak-maps\r\n */\n\nvar EDITOR_TO_PENDING_DIFFS = new WeakMap();\nvar EDITOR_TO_PENDING_ACTION = new WeakMap();\nvar EDITOR_TO_PENDING_SELECTION = new WeakMap();\nvar EDITOR_TO_FORCE_RENDER = new WeakMap();\n/**\r\n * Symbols.\r\n */\n\nvar PLACEHOLDER_SYMBOL = Symbol('placeholder');\nvar MARK_PLACEHOLDER_SYMBOL = Symbol('mark-placeholder');\n\n/**\r\n * Types.\r\n */\nvar DOMText = globalThis.Text;\n/**\r\n * Returns the host window of a DOM node\r\n */\n\nvar getDefaultView = value => {\n return value && value.ownerDocument && value.ownerDocument.defaultView || null;\n};\n/**\r\n * Check if a DOM node is a comment node.\r\n */\n\nvar isDOMComment = value => {\n return isDOMNode(value) && value.nodeType === 8;\n};\n/**\r\n * Check if a DOM node is an element node.\r\n */\n\nvar isDOMElement = value => {\n return isDOMNode(value) && value.nodeType === 1;\n};\n/**\r\n * Check if a value is a DOM node.\r\n */\n\nvar isDOMNode = value => {\n var window = getDefaultView(value);\n return !!window && value instanceof window.Node;\n};\n/**\r\n * Check if a value is a DOM selection.\r\n */\n\nvar isDOMSelection = value => {\n var window = value && value.anchorNode && getDefaultView(value.anchorNode);\n return !!window && value instanceof window.Selection;\n};\n/**\r\n * Check if a DOM node is an element node.\r\n */\n\nvar isDOMText = value => {\n return isDOMNode(value) && value.nodeType === 3;\n};\n/**\r\n * Checks whether a paste event is a plaintext-only event.\r\n */\n\nvar isPlainTextOnlyPaste = event => {\n return event.clipboardData && event.clipboardData.getData('text/plain') !== '' && event.clipboardData.types.length === 1;\n};\n/**\r\n * Normalize a DOM point so that it always refers to a text node.\r\n */\n\nvar normalizeDOMPoint = domPoint => {\n var [node, offset] = domPoint; // If it's an element node, its offset refers to the index of its children\n // including comment nodes, so try to find the right text child node.\n\n if (isDOMElement(node) && node.childNodes.length) {\n var isLast = offset === node.childNodes.length;\n var index = isLast ? offset - 1 : offset;\n [node, index] = getEditableChildAndIndex(node, index, isLast ? 'backward' : 'forward'); // If the editable child found is in front of input offset, we instead seek to its end\n\n isLast = index < offset; // If the node has children, traverse until we have a leaf node. Leaf nodes\n // can be either text nodes, or other void DOM nodes.\n\n while (isDOMElement(node) && node.childNodes.length) {\n var i = isLast ? node.childNodes.length - 1 : 0;\n node = getEditableChild(node, i, isLast ? 'backward' : 'forward');\n } // Determine the new offset inside the text node.\n\n\n offset = isLast && node.textContent != null ? node.textContent.length : 0;\n } // Return the node and offset.\n\n\n return [node, offset];\n};\n/**\r\n * Determines wether the active element is nested within a shadowRoot\r\n */\n\nvar hasShadowRoot = () => {\n return !!(window.document.activeElement && window.document.activeElement.shadowRoot);\n};\n/**\r\n * Get the nearest editable child and index at `index` in a `parent`, preferring\r\n * `direction`.\r\n */\n\nvar getEditableChildAndIndex = (parent, index, direction) => {\n var {\n childNodes\n } = parent;\n var child = childNodes[index];\n var i = index;\n var triedForward = false;\n var triedBackward = false; // While the child is a comment node, or an element node with no children,\n // keep iterating to find a sibling non-void, non-comment node.\n\n while (isDOMComment(child) || isDOMElement(child) && child.childNodes.length === 0 || isDOMElement(child) && child.getAttribute('contenteditable') === 'false') {\n if (triedForward && triedBackward) {\n break;\n }\n\n if (i >= childNodes.length) {\n triedForward = true;\n i = index - 1;\n direction = 'backward';\n continue;\n }\n\n if (i < 0) {\n triedBackward = true;\n i = index + 1;\n direction = 'forward';\n continue;\n }\n\n child = childNodes[i];\n index = i;\n i += direction === 'forward' ? 1 : -1;\n }\n\n return [child, index];\n};\n/**\r\n * Get the nearest editable child at `index` in a `parent`, preferring\r\n * `direction`.\r\n */\n\nvar getEditableChild = (parent, index, direction) => {\n var [child] = getEditableChildAndIndex(parent, index, direction);\n return child;\n};\n/**\r\n * Get a plaintext representation of the content of a node, accounting for block\r\n * elements which get a newline appended.\r\n *\r\n * The domNode must be attached to the DOM.\r\n */\n\nvar getPlainText = domNode => {\n var text = '';\n\n if (isDOMText(domNode) && domNode.nodeValue) {\n return domNode.nodeValue;\n }\n\n if (isDOMElement(domNode)) {\n for (var childNode of Array.from(domNode.childNodes)) {\n text += getPlainText(childNode);\n }\n\n var display = getComputedStyle(domNode).getPropertyValue('display');\n\n if (display === 'block' || display === 'list' || domNode.tagName === 'BR') {\n text += '\\n';\n }\n }\n\n return text;\n};\n/**\r\n * Get x-slate-fragment attribute from data-slate-fragment\r\n */\n\nvar catchSlateFragment = /data-slate-fragment=\"(.+?)\"/m;\nvar getSlateFragmentAttribute = dataTransfer => {\n var htmlData = dataTransfer.getData('text/html');\n var [, fragment] = htmlData.match(catchSlateFragment) || [];\n return fragment;\n};\n/**\r\n * Check whether a mutation originates from a editable element inside the editor.\r\n */\n\nvar isTrackedMutation = (editor, mutation, batch) => {\n var {\n target\n } = mutation;\n\n if (isDOMElement(target) && target.matches('[contentEditable=\"false\"]')) {\n return false;\n }\n\n var {\n document\n } = ReactEditor.getWindow(editor);\n\n if (document.contains(target)) {\n return ReactEditor.hasDOMNode(editor, target, {\n editable: true\n });\n }\n\n var parentMutation = batch.find(_ref => {\n var {\n addedNodes,\n removedNodes\n } = _ref;\n\n for (var node of addedNodes) {\n if (node === target || node.contains(target)) {\n return true;\n }\n }\n\n for (var _node of removedNodes) {\n if (_node === target || _node.contains(target)) {\n return true;\n }\n }\n });\n\n if (!parentMutation || parentMutation === mutation) {\n return false;\n } // Target add/remove is tracked. Track the mutation if we track the parent mutation.\n\n\n return isTrackedMutation(editor, parentMutation, batch);\n};\n\nvar IS_REACT_VERSION_17_OR_ABOVE = parseInt(React.version.split('.')[0], 10) >= 17;\nvar IS_IOS = typeof navigator !== 'undefined' && typeof window !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);\nvar IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);\nvar IS_FIREFOX = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);\nvar IS_SAFARI = typeof navigator !== 'undefined' && /Version\\/[\\d\\.]+.*Safari/.test(navigator.userAgent); // \"modern\" Edge was released at 79.x\n\nvar IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\\/(?:[0-6][0-9]|[0-7][0-8])(?:\\.)/i.test(navigator.userAgent);\nvar IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navigator.userAgent); // Native `beforeInput` events don't work well with react on Chrome 75\n// and older, Chrome 76+ can use `beforeInput` though.\n\nvar IS_CHROME_LEGACY = typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-7][0-5]|[0-6][0-9])(?:\\.)/i.test(navigator.userAgent); // Firefox did not support `beforeInput` until `v87`.\n\nvar IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox\\/(?:[0-7][0-9]|[0-8][0-6])(?:\\.)).*/i.test(navigator.userAgent); // qq browser\n\nvar IS_QQBROWSER = typeof navigator !== 'undefined' && /.*QQBrowser/.test(navigator.userAgent); // UC mobile browser\n\nvar IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent); // Wechat browser\n\nvar IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent); // Check if DOM is available as React does internally.\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\n\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined'); // COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event\n// Chrome Legacy doesn't support `beforeinput` correctly\n\nvar HAS_BEFORE_INPUT_SUPPORT = !IS_CHROME_LEGACY && !IS_EDGE_LEGACY && // globalThis is undefined in older browsers\ntypeof globalThis !== 'undefined' && globalThis.InputEvent && // @ts-ignore The `getTargetRanges` property isn't recognized.\ntypeof globalThis.InputEvent.prototype.getTargetRanges === 'function';\n\nvar ReactEditor = {\n /**\r\n * Check if the user is currently composing inside the editor.\r\n */\n isComposing(editor) {\n return !!IS_COMPOSING.get(editor);\n },\n\n /**\r\n * Return the host window of the current editor.\r\n */\n getWindow(editor) {\n var window = EDITOR_TO_WINDOW.get(editor);\n\n if (!window) {\n throw new Error('Unable to find a host window element for this editor');\n }\n\n return window;\n },\n\n /**\r\n * Find a key for a Slate node.\r\n */\n findKey(editor, node) {\n var key = NODE_TO_KEY.get(node);\n\n if (!key) {\n key = new Key();\n NODE_TO_KEY.set(node, key);\n }\n\n return key;\n },\n\n /**\r\n * Find the path of Slate node.\r\n */\n findPath(editor, node) {\n var path = [];\n var child = node;\n\n while (true) {\n var parent = NODE_TO_PARENT.get(child);\n\n if (parent == null) {\n if (Editor.isEditor(child)) {\n return path;\n } else {\n break;\n }\n }\n\n var i = NODE_TO_INDEX.get(child);\n\n if (i == null) {\n break;\n }\n\n path.unshift(i);\n child = parent;\n }\n\n throw new Error(\"Unable to find the path for Slate node: \".concat(Scrubber.stringify(node)));\n },\n\n /**\r\n * Find the DOM node that implements DocumentOrShadowRoot for the editor.\r\n */\n findDocumentOrShadowRoot(editor) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n\n if ((root instanceof Document || root instanceof ShadowRoot) && root.getSelection != null) {\n return root;\n }\n\n return el.ownerDocument;\n },\n\n /**\r\n * Check if the editor is focused.\r\n */\n isFocused(editor) {\n return !!IS_FOCUSED.get(editor);\n },\n\n /**\r\n * Check if the editor is in read-only mode.\r\n */\n isReadOnly(editor) {\n return !!IS_READ_ONLY.get(editor);\n },\n\n /**\r\n * Blur the editor.\r\n */\n blur(editor) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, false);\n\n if (root.activeElement === el) {\n el.blur();\n }\n },\n\n /**\r\n * Focus the editor.\r\n */\n focus(editor) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, true);\n\n if (root.activeElement !== el) {\n el.focus({\n preventScroll: true\n });\n }\n },\n\n /**\r\n * Deselect the editor.\r\n */\n deselect(editor) {\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = root.getSelection();\n\n if (domSelection && domSelection.rangeCount > 0) {\n domSelection.removeAllRanges();\n }\n\n if (selection) {\n Transforms.deselect(editor);\n }\n },\n\n /**\r\n * Check if a DOM node is within the editor.\r\n */\n hasDOMNode(editor, target) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n editable = false\n } = options;\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var targetEl; // COMPAT: In Firefox, reading `target.nodeType` will throw an error if\n // target is originating from an internal \"restricted\" element (e.g. a\n // stepper arrow on a number input). (2018/05/04)\n // https://github.com/ianstormtaylor/slate/issues/1819\n\n try {\n targetEl = isDOMElement(target) ? target : target.parentElement;\n } catch (err) {\n if (!err.message.includes('Permission denied to access property \"nodeType\"')) {\n throw err;\n }\n }\n\n if (!targetEl) {\n return false;\n }\n\n return targetEl.closest(\"[data-slate-editor]\") === editorEl && (!editable || targetEl.isContentEditable ? true : typeof targetEl.isContentEditable === 'boolean' && // isContentEditable exists only on HTMLElement, and on other nodes it will be undefined\n // this is the core logic that lets you know you got the right editor.selection instead of null when editor is contenteditable=\"false\"(readOnly)\n targetEl.closest('[contenteditable=\"false\"]') === editorEl || !!targetEl.getAttribute('data-slate-zero-width'));\n },\n\n /**\r\n * Insert data from a `DataTransfer` into the editor.\r\n */\n insertData(editor, data) {\n editor.insertData(data);\n },\n\n /**\r\n * Insert fragment data from a `DataTransfer` into the editor.\r\n */\n insertFragmentData(editor, data) {\n return editor.insertFragmentData(data);\n },\n\n /**\r\n * Insert text data from a `DataTransfer` into the editor.\r\n */\n insertTextData(editor, data) {\n return editor.insertTextData(data);\n },\n\n /**\r\n * Sets data from the currently selected fragment on a `DataTransfer`.\r\n */\n setFragmentData(editor, data, originEvent) {\n editor.setFragmentData(data, originEvent);\n },\n\n /**\r\n * Find the native DOM element from a Slate node.\r\n */\n toDOMNode(editor, node) {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n var domNode = Editor.isEditor(node) ? EDITOR_TO_ELEMENT.get(editor) : KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.get(ReactEditor.findKey(editor, node));\n\n if (!domNode) {\n throw new Error(\"Cannot resolve a DOM node from Slate node: \".concat(Scrubber.stringify(node)));\n }\n\n return domNode;\n },\n\n /**\r\n * Find a native DOM selection point from a Slate point.\r\n */\n toDOMPoint(editor, point) {\n var [node] = Editor.node(editor, point.path);\n var el = ReactEditor.toDOMNode(editor, node);\n var domPoint; // If we're inside a void node, force the offset to 0, otherwise the zero\n // width spacing character will result in an incorrect offset of 1\n\n if (Editor.void(editor, {\n at: point\n })) {\n point = {\n path: point.path,\n offset: 0\n };\n } // For each leaf, we need to isolate its content, which means filtering\n // to its direct text and zero-width spans. (We have to filter out any\n // other siblings that may have been rendered alongside them.)\n\n\n var selector = \"[data-slate-string], [data-slate-zero-width]\";\n var texts = Array.from(el.querySelectorAll(selector));\n var start = 0;\n\n for (var i = 0; i < texts.length; i++) {\n var text = texts[i];\n var domNode = text.childNodes[0];\n\n if (domNode == null || domNode.textContent == null) {\n continue;\n }\n\n var {\n length\n } = domNode.textContent;\n var attr = text.getAttribute('data-slate-length');\n var trueLength = attr == null ? length : parseInt(attr, 10);\n var end = start + trueLength; // Prefer putting the selection inside the mark placeholder to ensure\n // composed text is displayed with the correct marks.\n\n var nextText = texts[i + 1];\n\n if (point.offset === end && nextText !== null && nextText !== void 0 && nextText.hasAttribute('data-slate-mark-placeholder')) {\n var _nextText$textContent;\n\n var domText = nextText.childNodes[0];\n domPoint = [// COMPAT: If we don't explicity set the dom point to be on the actual\n // dom text element, chrome will put the selection behind the actual dom\n // text element, causing domRange.getBoundingClientRect() calls on a collapsed\n // selection to return incorrect zero values (https://bugs.chromium.org/p/chromium/issues/detail?id=435438)\n // which will cause issues when scrolling to it.\n domText instanceof DOMText ? domText : nextText, (_nextText$textContent = nextText.textContent) !== null && _nextText$textContent !== void 0 && _nextText$textContent.startsWith('\\uFEFF') ? 1 : 0];\n break;\n }\n\n if (point.offset <= end) {\n var offset = Math.min(length, Math.max(0, point.offset - start));\n domPoint = [domNode, offset];\n break;\n }\n\n start = end;\n }\n\n if (!domPoint) {\n throw new Error(\"Cannot resolve a DOM point from Slate point: \".concat(Scrubber.stringify(point)));\n }\n\n return domPoint;\n },\n\n /**\r\n * Find a native DOM range from a Slate `range`.\r\n *\r\n * Notice: the returned range will always be ordinal regardless of the direction of Slate `range` due to DOM API limit.\r\n *\r\n * there is no way to create a reverse DOM Range using Range.setStart/setEnd\r\n * according to https://dom.spec.whatwg.org/#concept-range-bp-set.\r\n */\n toDOMRange(editor, range) {\n var {\n anchor,\n focus\n } = range;\n var isBackward = Range.isBackward(range);\n var domAnchor = ReactEditor.toDOMPoint(editor, anchor);\n var domFocus = Range.isCollapsed(range) ? domAnchor : ReactEditor.toDOMPoint(editor, focus);\n var window = ReactEditor.getWindow(editor);\n var domRange = window.document.createRange();\n var [startNode, startOffset] = isBackward ? domFocus : domAnchor;\n var [endNode, endOffset] = isBackward ? domAnchor : domFocus; // A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at\n // zero-width node has an offset of 1 so we have to check if we are in a zero-width node and\n // adjust the offset accordingly.\n\n var startEl = isDOMElement(startNode) ? startNode : startNode.parentElement;\n var isStartAtZeroWidth = !!startEl.getAttribute('data-slate-zero-width');\n var endEl = isDOMElement(endNode) ? endNode : endNode.parentElement;\n var isEndAtZeroWidth = !!endEl.getAttribute('data-slate-zero-width');\n domRange.setStart(startNode, isStartAtZeroWidth ? 1 : startOffset);\n domRange.setEnd(endNode, isEndAtZeroWidth ? 1 : endOffset);\n return domRange;\n },\n\n /**\r\n * Find a Slate node from a native DOM `element`.\r\n */\n toSlateNode(editor, domNode) {\n var domEl = isDOMElement(domNode) ? domNode : domNode.parentElement;\n\n if (domEl && !domEl.hasAttribute('data-slate-node')) {\n domEl = domEl.closest(\"[data-slate-node]\");\n }\n\n var node = domEl ? ELEMENT_TO_NODE.get(domEl) : null;\n\n if (!node) {\n throw new Error(\"Cannot resolve a Slate node from DOM node: \".concat(domEl));\n }\n\n return node;\n },\n\n /**\r\n * Get the target range from a DOM `event`.\r\n */\n findEventRange(editor, event) {\n if ('nativeEvent' in event) {\n event = event.nativeEvent;\n }\n\n var {\n clientX: x,\n clientY: y,\n target\n } = event;\n\n if (x == null || y == null) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node); // If the drop target is inside a void node, move it into either the\n // next or previous node, depending on which side the `x` and `y`\n // coordinates are closest to.\n\n if (Editor.isVoid(editor, node)) {\n var rect = target.getBoundingClientRect();\n var isPrev = editor.isInline(node) ? x - rect.left < rect.left + rect.width - x : y - rect.top < rect.top + rect.height - y;\n var edge = Editor.point(editor, path, {\n edge: isPrev ? 'start' : 'end'\n });\n var point = isPrev ? Editor.before(editor, edge) : Editor.after(editor, edge);\n\n if (point) {\n var _range = Editor.range(editor, point);\n\n return _range;\n }\n } // Else resolve a range from the caret position where the drop occured.\n\n\n var domRange;\n var {\n document\n } = ReactEditor.getWindow(editor); // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)\n\n if (document.caretRangeFromPoint) {\n domRange = document.caretRangeFromPoint(x, y);\n } else {\n var position = document.caretPositionFromPoint(x, y);\n\n if (position) {\n domRange = document.createRange();\n domRange.setStart(position.offsetNode, position.offset);\n domRange.setEnd(position.offsetNode, position.offset);\n }\n }\n\n if (!domRange) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n } // Resolve a Slate range from the DOM range.\n\n\n var range = ReactEditor.toSlateRange(editor, domRange, {\n exactMatch: false,\n suppressThrow: false\n });\n return range;\n },\n\n /**\r\n * Find a Slate point from a DOM selection's `domNode` and `domOffset`.\r\n */\n toSlatePoint(editor, domPoint, options) {\n var {\n exactMatch,\n suppressThrow\n } = options;\n var [nearestNode, nearestOffset] = exactMatch ? domPoint : normalizeDOMPoint(domPoint);\n var parentNode = nearestNode.parentNode;\n var textNode = null;\n var offset = 0;\n\n if (parentNode) {\n var _domNode$textContent, _domNode$textContent2;\n\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var potentialVoidNode = parentNode.closest('[data-slate-void=\"true\"]'); // Need to ensure that the closest void node is actually a void node\n // within this editor, and not a void node within some parent editor. This can happen\n // if this editor is within a void node of another editor (\"nested editors\", like in\n // the \"Editable Voids\" example on the docs site).\n\n var voidNode = potentialVoidNode && editorEl.contains(potentialVoidNode) ? potentialVoidNode : null;\n var leafNode = parentNode.closest('[data-slate-leaf]');\n var domNode = null; // Calculate how far into the text node the `nearestNode` is, so that we\n // can determine what the offset relative to the text node is.\n\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n\n if (textNode) {\n var window = ReactEditor.getWindow(editor);\n var range = window.document.createRange();\n range.setStart(textNode, 0);\n range.setEnd(nearestNode, nearestOffset);\n var contents = range.cloneContents();\n var removals = [...Array.prototype.slice.call(contents.querySelectorAll('[data-slate-zero-width]')), ...Array.prototype.slice.call(contents.querySelectorAll('[contenteditable=false]'))];\n removals.forEach(el => {\n // COMPAT: While composing at the start of a text node, some keyboards put\n // the text content inside the zero width space.\n if (IS_ANDROID && !exactMatch && el.hasAttribute('data-slate-zero-width') && el.textContent.length > 0 && el.textContext !== '\\uFEFF') {\n if (el.textContent.startsWith('\\uFEFF')) {\n el.textContent = el.textContent.slice(1);\n }\n\n return;\n }\n\n el.parentNode.removeChild(el);\n }); // COMPAT: Edge has a bug where Range.prototype.toString() will\n // convert \\n into \\r\\n. The bug causes a loop when slate-react\n // attempts to reposition its cursor to match the native position. Use\n // textContent.length instead.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/\n\n offset = contents.textContent.length;\n domNode = textNode;\n }\n } else if (voidNode) {\n // For void nodes, the element with the offset key will be a cousin, not an\n // ancestor, so find it by going down from the nearest void parent and taking the\n // first one that isn't inside a nested editor.\n var leafNodes = voidNode.querySelectorAll('[data-slate-leaf]');\n\n for (var index = 0; index < leafNodes.length; index++) {\n var current = leafNodes[index];\n\n if (ReactEditor.hasDOMNode(editor, current)) {\n leafNode = current;\n break;\n }\n } // COMPAT: In read-only editors the leaf is not rendered.\n\n\n if (!leafNode) {\n offset = 1;\n } else {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n }\n\n if (domNode && offset === domNode.textContent.length && // COMPAT: Android IMEs might remove the zero width space while composing,\n // and we don't add it for line-breaks.\n IS_ANDROID && domNode.getAttribute('data-slate-zero-width') === 'z' && (_domNode$textContent = domNode.textContent) !== null && _domNode$textContent !== void 0 && _domNode$textContent.startsWith('\\uFEFF') && (parentNode.hasAttribute('data-slate-zero-width') || IS_FIREFOX && (_domNode$textContent2 = domNode.textContent) !== null && _domNode$textContent2 !== void 0 && _domNode$textContent2.endsWith('\\n\\n'))) {\n offset--;\n }\n }\n\n if (IS_ANDROID && !textNode && !exactMatch) {\n var node = parentNode.hasAttribute('data-slate-node') ? parentNode : parentNode.closest('[data-slate-node]');\n\n if (node && ReactEditor.hasDOMNode(editor, node, {\n editable: true\n })) {\n var _slateNode = ReactEditor.toSlateNode(editor, node);\n\n var {\n path: _path,\n offset: _offset\n } = Editor.start(editor, ReactEditor.findPath(editor, _slateNode));\n\n if (!node.querySelector('[data-slate-leaf]')) {\n _offset = nearestOffset;\n }\n\n return {\n path: _path,\n offset: _offset\n };\n }\n }\n\n if (!textNode) {\n if (suppressThrow) {\n return null;\n }\n\n throw new Error(\"Cannot resolve a Slate point from DOM point: \".concat(domPoint));\n } // COMPAT: If someone is clicking from one Slate editor into another,\n // the select event fires twice, once for the old editor's `element`\n // first, and then afterwards for the correct `element`. (2017/03/03)\n\n\n var slateNode = ReactEditor.toSlateNode(editor, textNode);\n var path = ReactEditor.findPath(editor, slateNode);\n return {\n path,\n offset\n };\n },\n\n /**\r\n * Find a Slate range from a DOM range or selection.\r\n */\n toSlateRange(editor, domRange, options) {\n var {\n exactMatch,\n suppressThrow\n } = options;\n var el = isDOMSelection(domRange) ? domRange.anchorNode : domRange.startContainer;\n var anchorNode;\n var anchorOffset;\n var focusNode;\n var focusOffset;\n var isCollapsed;\n\n if (el) {\n if (isDOMSelection(domRange)) {\n anchorNode = domRange.anchorNode;\n anchorOffset = domRange.anchorOffset;\n focusNode = domRange.focusNode;\n focusOffset = domRange.focusOffset; // COMPAT: There's a bug in chrome that always returns `true` for\n // `isCollapsed` for a Selection that comes from a ShadowRoot.\n // (2020/08/08)\n // https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n\n if (IS_CHROME && hasShadowRoot()) {\n isCollapsed = domRange.anchorNode === domRange.focusNode && domRange.anchorOffset === domRange.focusOffset;\n } else {\n isCollapsed = domRange.isCollapsed;\n }\n } else {\n anchorNode = domRange.startContainer;\n anchorOffset = domRange.startOffset;\n focusNode = domRange.endContainer;\n focusOffset = domRange.endOffset;\n isCollapsed = domRange.collapsed;\n }\n }\n\n if (anchorNode == null || focusNode == null || anchorOffset == null || focusOffset == null) {\n throw new Error(\"Cannot resolve a Slate range from DOM range: \".concat(domRange));\n }\n\n var anchor = ReactEditor.toSlatePoint(editor, [anchorNode, anchorOffset], {\n exactMatch,\n suppressThrow\n });\n\n if (!anchor) {\n return null;\n }\n\n var focus = isCollapsed ? anchor : ReactEditor.toSlatePoint(editor, [focusNode, focusOffset], {\n exactMatch,\n suppressThrow\n });\n\n if (!focus) {\n return null;\n }\n\n var range = {\n anchor: anchor,\n focus: focus\n }; // if the selection is a hanging range that ends in a void\n // and the DOM focus is an Element\n // (meaning that the selection ends before the element)\n // unhang the range to avoid mistakenly including the void\n\n if (Range.isExpanded(range) && Range.isForward(range) && isDOMElement(focusNode) && Editor.void(editor, {\n at: range.focus,\n mode: 'highest'\n })) {\n range = Editor.unhangRange(editor, range, {\n voids: true\n });\n }\n\n return range;\n },\n\n hasRange(editor, range) {\n var {\n anchor,\n focus\n } = range;\n return Editor.hasPath(editor, anchor.path) && Editor.hasPath(editor, focus.path);\n },\n\n /**\r\n * Experimental and android specific: Flush all pending diffs and cancel composition at the next possible time.\r\n */\n androidScheduleFlush(editor) {\n var _EDITOR_TO_SCHEDULE_F;\n\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(editor)) === null || _EDITOR_TO_SCHEDULE_F === void 0 ? void 0 : _EDITOR_TO_SCHEDULE_F();\n },\n\n /**\r\n * Experimental and android specific: Get pending diffs\r\n */\n androidPendingDiffs(editor) {\n return EDITOR_TO_PENDING_DIFFS.get(editor);\n }\n\n};\n\n/**\r\n * Prevent warning on SSR by falling back to useEffect when DOM isn't available\r\n */\n\nvar useIsomorphicLayoutEffect = CAN_USE_DOM ? useLayoutEffect : useEffect;\n\nvar _excluded$3 = [\"anchor\", \"focus\"],\n _excluded2$1 = [\"anchor\", \"focus\"];\nvar shallowCompare = (obj1, obj2) => Object.keys(obj1).length === Object.keys(obj2).length && Object.keys(obj1).every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key]);\n/**\r\n * Check if a list of decorator ranges are equal to another.\r\n *\r\n * PERF: this requires the two lists to also have the ranges inside them in the\r\n * same order, but this is an okay constraint for us since decorations are\r\n * kept in order, and the odd case where they aren't is okay to re-render for.\r\n */\n\nvar isDecoratorRangeListEqual = (list, another) => {\n if (list.length !== another.length) {\n return false;\n }\n\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n\n var rangeOwnProps = _objectWithoutProperties(range, _excluded$3);\n\n var otherOwnProps = _objectWithoutProperties(other, _excluded2$1);\n\n if (!Range.equals(range, other) || range[PLACEHOLDER_SYMBOL] !== other[PLACEHOLDER_SYMBOL] || !shallowCompare(rangeOwnProps, otherOwnProps)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\r\n * Leaf content strings.\r\n */\n\nvar String = props => {\n var {\n isLast,\n leaf,\n parent,\n text\n } = props;\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, text);\n var parentPath = Path.parent(path);\n var isMarkPlaceholder = leaf[MARK_PLACEHOLDER_SYMBOL] === true; // COMPAT: Render text inside void nodes with a zero-width space.\n // So the node can contain selection but the text is not visible.\n\n if (editor.isVoid(parent)) {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n length: Node.string(parent).length\n });\n } // COMPAT: If this is the last text node in an empty block, render a zero-\n // width space that will convert into a line break when copying and pasting\n // to support expected plain text.\n\n\n if (leaf.text === '' && parent.children[parent.children.length - 1] === text && !editor.isInline(parent) && Editor.string(editor, parentPath) === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isLineBreak: true,\n isMarkPlaceholder: isMarkPlaceholder\n });\n } // COMPAT: If the text is empty, it's because it's on the edge of an inline\n // node, so we render a zero-width space so that the selection can be\n // inserted next to it still.\n\n\n if (leaf.text === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isMarkPlaceholder: isMarkPlaceholder\n });\n } // COMPAT: Browsers will collapse trailing new lines at the end of blocks,\n // so we need to add an extra trailing new lines to prevent that.\n\n\n if (isLast && leaf.text.slice(-1) === '\\n') {\n return /*#__PURE__*/React.createElement(TextString, {\n isTrailing: true,\n text: leaf.text\n });\n }\n\n return /*#__PURE__*/React.createElement(TextString, {\n text: leaf.text\n });\n};\n/**\r\n * Leaf strings with text in them.\r\n */\n\n\nvar TextString = props => {\n var {\n text,\n isTrailing = false\n } = props;\n var ref = useRef(null);\n\n var getTextContent = () => {\n return \"\".concat(text !== null && text !== void 0 ? text : '').concat(isTrailing ? '\\n' : '');\n }; // This is the actual text rendering boundary where we interface with the DOM\n // The text is not rendered as part of the virtual DOM, as since we handle basic character insertions natively,\n // updating the DOM is not a one way dataflow anymore. What we need here is not reconciliation and diffing\n // with previous version of the virtual DOM, but rather diffing with the actual DOM element, and replace the DOM <span> content\n // exactly if and only if its current content does not match our current virtual DOM.\n // Otherwise the DOM TextNode would always be replaced by React as the user types, which interferes with native text features,\n // eg makes native spellcheck opt out from checking the text node.\n // useLayoutEffect: updating our span before browser paint\n\n\n useIsomorphicLayoutEffect(() => {\n // null coalescing text to make sure we're not outputing \"null\" as a string in the extreme case it is nullish at runtime\n var textWithTrailing = getTextContent();\n\n if (ref.current && ref.current.textContent !== textWithTrailing) {\n ref.current.textContent = textWithTrailing;\n } // intentionally not specifying dependencies, so that this effect runs on every render\n // as this effectively replaces \"specifying the text in the virtual DOM under the <span> below\" on each render\n\n }); // Render text content immediately if it's the first-time render\n // Ensure that text content is rendered on server-side rendering\n\n if (!ref.current) {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-string\": true,\n ref: ref\n }, getTextContent());\n } // the span is intentionally same on every render in virtual DOM, actual rendering happens in the layout effect above\n\n\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-string\": true,\n ref: ref\n });\n};\n/**\r\n * Leaf strings without text, render as zero-width strings.\r\n */\n\n\nvar ZeroWidthString = props => {\n var {\n length = 0,\n isLineBreak = false,\n isMarkPlaceholder = false\n } = props;\n var attributes = {\n 'data-slate-zero-width': isLineBreak ? 'n' : 'z',\n 'data-slate-length': length\n };\n\n if (isMarkPlaceholder) {\n attributes['data-slate-mark-placeholder'] = true;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, attributes), !IS_ANDROID || !isLineBreak ? '\\uFEFF' : null, isLineBreak ? /*#__PURE__*/React.createElement(\"br\", null) : null);\n};\n\n/**\r\n * A React context for sharing the editor object.\r\n */\n\nvar EditorContext = /*#__PURE__*/createContext(null);\n/**\r\n * Get the current editor object from the React context.\r\n */\n\nvar useSlateStatic = () => {\n var editor = useContext(EditorContext);\n\n if (!editor) {\n throw new Error(\"The `useSlateStatic` hook must be used inside the <Slate> component's context.\");\n }\n\n return editor;\n};\n\n/**\r\n * Individual leaves in a text node with unique formatting.\r\n */\n\nvar Leaf = props => {\n var {\n leaf,\n isLast,\n text,\n parent,\n renderPlaceholder,\n renderLeaf = props => /*#__PURE__*/React.createElement(DefaultLeaf, Object.assign({}, props))\n } = props;\n var placeholderRef = useRef(null);\n var editor = useSlateStatic();\n useEffect(() => {\n var placeholderEl = placeholderRef === null || placeholderRef === void 0 ? void 0 : placeholderRef.current;\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n\n if (!placeholderEl || !editorEl) {\n return;\n }\n\n editorEl.style.minHeight = \"\".concat(placeholderEl.clientHeight, \"px\");\n EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);\n return () => {\n editorEl.style.minHeight = 'auto';\n EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);\n };\n }, [placeholderRef, leaf]);\n var children = /*#__PURE__*/React.createElement(String, {\n isLast: isLast,\n leaf: leaf,\n parent: parent,\n text: text\n });\n\n if (leaf[PLACEHOLDER_SYMBOL]) {\n var placeholderProps = {\n children: leaf.placeholder,\n attributes: {\n 'data-slate-placeholder': true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n width: '100%',\n maxWidth: '100%',\n display: 'block',\n opacity: '0.333',\n userSelect: 'none',\n textDecoration: 'none'\n },\n contentEditable: false,\n ref: placeholderRef\n }\n };\n children = /*#__PURE__*/React.createElement(React.Fragment, null, renderPlaceholder(placeholderProps), children);\n } // COMPAT: Having the `data-` attributes on these leaf elements ensures that\n // in certain misbehaving browsers they aren't weirdly cloned/destroyed by\n // contenteditable behaviors. (2019/05/08)\n\n\n var attributes = {\n 'data-slate-leaf': true\n };\n return renderLeaf({\n attributes,\n children,\n leaf,\n text\n });\n};\n\nvar MemoizedLeaf = /*#__PURE__*/React.memo(Leaf, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && Text$1.equals(next.leaf, prev.leaf) && next.leaf[PLACEHOLDER_SYMBOL] === prev.leaf[PLACEHOLDER_SYMBOL];\n});\nvar DefaultLeaf = props => {\n var {\n attributes,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, attributes), children);\n};\n\n/**\r\n * Text.\r\n */\n\nvar Text = props => {\n var {\n decorations,\n isLast,\n parent,\n renderPlaceholder,\n renderLeaf,\n text\n } = props;\n var editor = useSlateStatic();\n var ref = useRef(null);\n var leaves = Text$1.decorations(text, decorations);\n var key = ReactEditor.findKey(editor, text);\n var children = [];\n\n for (var i = 0; i < leaves.length; i++) {\n var leaf = leaves[i];\n children.push( /*#__PURE__*/React.createElement(MemoizedLeaf, {\n isLast: isLast && i === leaves.length - 1,\n key: \"\".concat(key.id, \"-\").concat(i),\n renderPlaceholder: renderPlaceholder,\n leaf: leaf,\n text: text,\n parent: parent,\n renderLeaf: renderLeaf\n }));\n } // Update element-related weak maps with the DOM element ref.\n\n\n useIsomorphicLayoutEffect(() => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n\n if (ref.current) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.set(key, ref.current);\n NODE_TO_ELEMENT.set(text, ref.current);\n ELEMENT_TO_NODE.set(ref.current, text);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(text);\n }\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-node\": \"text\",\n ref: ref\n }, children);\n};\n\nvar MemoizedText = /*#__PURE__*/React.memo(Text, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.text === prev.text && isDecoratorRangeListEqual(next.decorations, prev.decorations);\n});\n\n/**\r\n * Element.\r\n */\n\nvar Element = props => {\n var {\n decorations,\n element,\n renderElement = p => /*#__PURE__*/React.createElement(DefaultElement, Object.assign({}, p)),\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var editor = useSlateStatic();\n var readOnly = useReadOnly();\n var isInline = editor.isInline(element);\n var key = ReactEditor.findKey(editor, element);\n var ref = useCallback(ref => {\n // Update element-related weak maps with the DOM element ref.\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n\n if (ref) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.set(key, ref);\n NODE_TO_ELEMENT.set(element, ref);\n ELEMENT_TO_NODE.set(ref, element);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(element);\n }\n }, [editor, key, element]);\n var children = useChildren({\n decorations,\n node: element,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n }); // Attributes that the developer must mix into the element in their\n // custom node renderer component.\n\n var attributes = {\n 'data-slate-node': 'element',\n ref\n };\n\n if (isInline) {\n attributes['data-slate-inline'] = true;\n } // If it's a block node with inline children, add the proper `dir` attribute\n // for text direction.\n\n\n if (!isInline && Editor.hasInlines(editor, element)) {\n var text = Node.string(element);\n var dir = getDirection(text);\n\n if (dir === 'rtl') {\n attributes.dir = dir;\n }\n } // If it's a void node, wrap the children in extra void-specific elements.\n\n\n if (Editor.isVoid(editor, element)) {\n attributes['data-slate-void'] = true;\n\n if (!readOnly && isInline) {\n attributes.contentEditable = false;\n }\n\n var Tag = isInline ? 'span' : 'div';\n var [[_text]] = Node.texts(element);\n children = /*#__PURE__*/React.createElement(Tag, {\n \"data-slate-spacer\": true,\n style: {\n height: '0',\n color: 'transparent',\n outline: 'none',\n position: 'absolute'\n }\n }, /*#__PURE__*/React.createElement(MemoizedText, {\n renderPlaceholder: renderPlaceholder,\n decorations: [],\n isLast: false,\n parent: element,\n text: _text\n }));\n NODE_TO_INDEX.set(_text, 0);\n NODE_TO_PARENT.set(_text, element);\n }\n\n return renderElement({\n attributes,\n children,\n element\n });\n};\n\nvar MemoizedElement = /*#__PURE__*/React.memo(Element, (prev, next) => {\n return prev.element === next.element && prev.renderElement === next.renderElement && prev.renderLeaf === next.renderLeaf && isDecoratorRangeListEqual(prev.decorations, next.decorations) && (prev.selection === next.selection || !!prev.selection && !!next.selection && Range.equals(prev.selection, next.selection));\n});\n/**\r\n * The default element renderer.\r\n */\n\nvar DefaultElement = props => {\n var {\n attributes,\n children,\n element\n } = props;\n var editor = useSlateStatic();\n var Tag = editor.isInline(element) ? 'span' : 'div';\n return /*#__PURE__*/React.createElement(Tag, Object.assign({}, attributes, {\n style: {\n position: 'relative'\n }\n }), children);\n};\n\n/**\r\n * A React context for sharing the `decorate` prop of the editable.\r\n */\n\nvar DecorateContext = /*#__PURE__*/createContext(() => []);\n/**\r\n * Get the current `decorate` prop of the editable.\r\n */\n\nvar useDecorate = () => {\n return useContext(DecorateContext);\n};\n\n/**\r\n * A React context for sharing the `selected` state of an element.\r\n */\n\nvar SelectedContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `selected` state of an element.\r\n */\n\nvar useSelected = () => {\n return useContext(SelectedContext);\n};\n\n/**\r\n * Children.\r\n */\n\nvar useChildren = props => {\n var {\n decorations,\n node,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var decorate = useDecorate();\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, node);\n var children = [];\n var isLeafBlock = Element$1.isElement(node) && !editor.isInline(node) && Editor.hasInlines(editor, node);\n\n for (var i = 0; i < node.children.length; i++) {\n var p = path.concat(i);\n var n = node.children[i];\n var key = ReactEditor.findKey(editor, n);\n var range = Editor.range(editor, p);\n var sel = selection && Range.intersection(range, selection);\n var ds = decorate([n, p]);\n\n for (var dec of decorations) {\n var d = Range.intersection(dec, range);\n\n if (d) {\n ds.push(d);\n }\n }\n\n if (Element$1.isElement(n)) {\n children.push( /*#__PURE__*/React.createElement(SelectedContext.Provider, {\n key: \"provider-\".concat(key.id),\n value: !!sel\n }, /*#__PURE__*/React.createElement(MemoizedElement, {\n decorations: ds,\n element: n,\n key: key.id,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: sel\n })));\n } else {\n children.push( /*#__PURE__*/React.createElement(MemoizedText, {\n decorations: ds,\n key: key.id,\n isLast: isLeafBlock && i === node.children.length - 1,\n parent: node,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n text: n\n }));\n }\n\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n }\n\n return children;\n};\n\n/**\r\n * A React context for sharing the `readOnly` state of the editor.\r\n */\n\nvar ReadOnlyContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `readOnly` state of the editor.\r\n */\n\nvar useReadOnly = () => {\n return useContext(ReadOnlyContext);\n};\n\nvar SlateContext = /*#__PURE__*/createContext(null);\n/**\r\n * Get the current editor object from the React context.\r\n */\n\nvar useSlate = () => {\n var context = useContext(SlateContext);\n\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n\n var {\n editor\n } = context;\n return editor;\n};\nvar useSlateWithV = () => {\n var context = useContext(SlateContext);\n\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n\n return context;\n};\n\nvar TRIPLE_CLICK = 3;\n\n/**\r\n * Hotkey mappings for each platform.\r\n */\n\nvar HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n insertSoftBreak: 'shift+enter',\n splitBlock: 'enter',\n undo: 'mod+z'\n};\nvar APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t'\n};\nvar WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: ['ctrl+y', 'ctrl+shift+z']\n};\n/**\r\n * Create a platform-aware hotkey checker.\r\n */\n\nvar create = key => {\n var generic = HOTKEYS[key];\n var apple = APPLE_HOTKEYS[key];\n var windows = WINDOWS_HOTKEYS[key];\n var isGeneric = generic && isKeyHotkey(generic);\n var isApple = apple && isKeyHotkey(apple);\n var isWindows = windows && isKeyHotkey(windows);\n return event => {\n if (isGeneric && isGeneric(event)) return true;\n if (IS_APPLE && isApple && isApple(event)) return true;\n if (!IS_APPLE && isWindows && isWindows(event)) return true;\n return false;\n };\n};\n/**\r\n * Hotkeys.\r\n */\n\n\nvar Hotkeys = {\n isBold: create('bold'),\n isCompose: create('compose'),\n isMoveBackward: create('moveBackward'),\n isMoveForward: create('moveForward'),\n isDeleteBackward: create('deleteBackward'),\n isDeleteForward: create('deleteForward'),\n isDeleteLineBackward: create('deleteLineBackward'),\n isDeleteLineForward: create('deleteLineForward'),\n isDeleteWordBackward: create('deleteWordBackward'),\n isDeleteWordForward: create('deleteWordForward'),\n isExtendBackward: create('extendBackward'),\n isExtendForward: create('extendForward'),\n isExtendLineBackward: create('extendLineBackward'),\n isExtendLineForward: create('extendLineForward'),\n isItalic: create('italic'),\n isMoveLineBackward: create('moveLineBackward'),\n isMoveLineForward: create('moveLineForward'),\n isMoveWordBackward: create('moveWordBackward'),\n isMoveWordForward: create('moveWordForward'),\n isRedo: create('redo'),\n isSoftBreak: create('insertSoftBreak'),\n isSplitBlock: create('splitBlock'),\n isTransposeCharacter: create('transposeCharacter'),\n isUndo: create('undo')\n};\n\nvar createRestoreDomManager = (editor, receivedUserInput) => {\n var bufferedMutations = [];\n\n var clear = () => {\n bufferedMutations = [];\n };\n\n var registerMutations = mutations => {\n if (!receivedUserInput.current) {\n return;\n }\n\n var trackedMutations = mutations.filter(mutation => isTrackedMutation(editor, mutation, mutations));\n bufferedMutations.push(...trackedMutations);\n };\n\n function restoreDOM() {\n bufferedMutations.reverse().forEach(mutation => {\n if (mutation.type === 'characterData') {\n mutation.target.textContent = mutation.oldValue;\n return;\n }\n\n mutation.removedNodes.forEach(node => {\n mutation.target.insertBefore(node, mutation.nextSibling);\n });\n mutation.addedNodes.forEach(node => {\n mutation.target.removeChild(node);\n });\n }); // Clear buffered mutations to ensure we don't undo them twice\n\n clear();\n }\n\n return {\n registerMutations,\n restoreDOM,\n clear\n };\n};\n\nvar MUTATION_OBSERVER_CONFIG$1 = {\n subtree: true,\n childList: true,\n characterData: true,\n characterDataOldValue: true\n}; // We have to use a class component here since we rely on `getSnapshotBeforeUpdate` which has no FC equivalent\n// to run code synchronously immediately before react commits the component update to the DOM.\n\nclass RestoreDOMComponent extends Component {\n constructor() {\n super(...arguments);\n this.context = null;\n this.manager = null;\n this.mutationObserver = null;\n }\n\n observe() {\n var _this$mutationObserve;\n\n var {\n node\n } = this.props;\n\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.observe(node.current, MUTATION_OBSERVER_CONFIG$1);\n }\n\n componentDidMount() {\n var {\n receivedUserInput\n } = this.props;\n var editor = this.context;\n this.manager = createRestoreDomManager(editor, receivedUserInput);\n this.mutationObserver = new MutationObserver(this.manager.registerMutations);\n this.observe();\n }\n\n getSnapshotBeforeUpdate() {\n var _this$mutationObserve2, _this$mutationObserve3, _this$manager2;\n\n var pendingMutations = (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 ? void 0 : _this$mutationObserve2.takeRecords();\n\n if (pendingMutations !== null && pendingMutations !== void 0 && pendingMutations.length) {\n var _this$manager;\n\n (_this$manager = this.manager) === null || _this$manager === void 0 ? void 0 : _this$manager.registerMutations(pendingMutations);\n }\n\n (_this$mutationObserve3 = this.mutationObserver) === null || _this$mutationObserve3 === void 0 ? void 0 : _this$mutationObserve3.disconnect();\n (_this$manager2 = this.manager) === null || _this$manager2 === void 0 ? void 0 : _this$manager2.restoreDOM();\n return null;\n }\n\n componentDidUpdate() {\n var _this$manager3;\n\n (_this$manager3 = this.manager) === null || _this$manager3 === void 0 ? void 0 : _this$manager3.clear();\n this.observe();\n }\n\n componentWillUnmount() {\n var _this$mutationObserve4;\n\n (_this$mutationObserve4 = this.mutationObserver) === null || _this$mutationObserve4 === void 0 ? void 0 : _this$mutationObserve4.disconnect();\n }\n\n render() {\n return this.props.children;\n }\n\n}\n\nRestoreDOMComponent.contextType = EditorContext;\nvar RestoreDOM = IS_ANDROID ? RestoreDOMComponent : _ref => {\n var {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\n\n/**\r\n * Check whether a text diff was applied in a way we can perform the pending action on /\r\n * recover the pending selection.\r\n */\n\nfunction verifyDiffState(editor, textDiff) {\n var {\n path,\n diff\n } = textDiff;\n\n if (!Editor.hasPath(editor, path)) {\n return false;\n }\n\n var node = Node.get(editor, path);\n\n if (!Text$1.isText(node)) {\n return false;\n }\n\n if (diff.start !== node.text.length || diff.text.length === 0) {\n return node.text.slice(diff.start, diff.start + diff.text.length) === diff.text;\n }\n\n var nextPath = Path.next(path);\n\n if (!Editor.hasPath(editor, nextPath)) {\n return false;\n }\n\n var nextNode = Node.get(editor, nextPath);\n return Text$1.isText(nextNode) && nextNode.text.startsWith(diff.text);\n}\n\nfunction applyStringDiff(text) {\n for (var _len = arguments.length, diffs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n diffs[_key - 1] = arguments[_key];\n }\n\n return diffs.reduce((text, diff) => text.slice(0, diff.start) + diff.text + text.slice(diff.end), text);\n}\n\nfunction longestCommonPrefixLength(str, another) {\n var length = Math.min(str.length, another.length);\n\n for (var i = 0; i < length; i++) {\n if (str.charAt(i) !== another.charAt(i)) {\n return i;\n }\n }\n\n return length;\n}\n\nfunction longestCommonSuffixLength(str, another, max) {\n var length = Math.min(str.length, another.length, max);\n\n for (var i = 0; i < length; i++) {\n if (str.charAt(str.length - i - 1) !== another.charAt(another.length - i - 1)) {\n return i;\n }\n }\n\n return length;\n}\n/**\r\n * Remove redundant changes from the diff so that it spans the minimal possible range\r\n */\n\n\nfunction normalizeStringDiff(targetText, diff) {\n var {\n start,\n end,\n text\n } = diff;\n var removedText = targetText.slice(start, end);\n var prefixLength = longestCommonPrefixLength(removedText, text);\n var max = Math.min(removedText.length - prefixLength, text.length - prefixLength);\n var suffixLength = longestCommonSuffixLength(removedText, text, max);\n var normalized = {\n start: start + prefixLength,\n end: end - suffixLength,\n text: text.slice(prefixLength, text.length - suffixLength)\n };\n\n if (normalized.start === normalized.end && normalized.text.length === 0) {\n return null;\n }\n\n return normalized;\n}\n/**\r\n * Return a string diff that is equivalent to applying b after a spanning the range of\r\n * both changes\r\n */\n\nfunction mergeStringDiffs(targetText, a, b) {\n var start = Math.min(a.start, b.start);\n var overlap = Math.max(0, Math.min(a.start + a.text.length, b.end) - b.start);\n var applied = applyStringDiff(targetText, a, b);\n var sliceEnd = Math.max(b.start + b.text.length, a.start + a.text.length + (a.start + a.text.length > b.start ? b.text.length : 0) - overlap);\n var text = applied.slice(start, sliceEnd);\n var end = Math.max(a.end, b.end - a.text.length + (a.end - a.start));\n return normalizeStringDiff(targetText, {\n start,\n end,\n text\n });\n}\n/**\r\n * Get the slate range the text diff spans.\r\n */\n\nfunction targetRange(textDiff) {\n var {\n path,\n diff\n } = textDiff;\n return {\n anchor: {\n path,\n offset: diff.start\n },\n focus: {\n path,\n offset: diff.end\n }\n };\n}\n/**\r\n * Normalize a 'pending point' a.k.a a point based on the dom state before applying\r\n * the pending diffs. Since the pending diffs might have been inserted with different\r\n * marks we have to 'walk' the offset from the starting position to ensure we still\r\n * have a valid point inside the document\r\n */\n\nfunction normalizePoint(editor, point) {\n var {\n path,\n offset\n } = point;\n\n if (!Editor.hasPath(editor, path)) {\n return null;\n }\n\n var leaf = Node.get(editor, path);\n\n if (!Text$1.isText(leaf)) {\n return null;\n }\n\n var parentBlock = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n),\n at: path\n });\n\n if (!parentBlock) {\n return null;\n }\n\n while (offset > leaf.text.length) {\n var entry = Editor.next(editor, {\n at: path,\n match: Text$1.isText\n });\n\n if (!entry || !Path.isDescendant(entry[1], parentBlock[1])) {\n return null;\n }\n\n offset -= leaf.text.length;\n leaf = entry[0];\n path = entry[1];\n }\n\n return {\n path,\n offset\n };\n}\n/**\r\n * Normalize a 'pending selection' to ensure it's valid in the current document state.\r\n */\n\nfunction normalizeRange(editor, range) {\n var anchor = normalizePoint(editor, range.anchor);\n\n if (!anchor) {\n return null;\n }\n\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n\n var focus = normalizePoint(editor, range.focus);\n\n if (!focus) {\n return null;\n }\n\n return {\n anchor,\n focus\n };\n}\nfunction transformPendingPoint(editor, point, op) {\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var textDiff = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(_ref => {\n var {\n path\n } = _ref;\n return Path.equals(path, point.path);\n });\n\n if (!textDiff || point.offset <= textDiff.diff.start) {\n return Point.transform(point, op, {\n affinity: 'backward'\n });\n }\n\n var {\n diff\n } = textDiff; // Point references location inside the diff => transform the point based on the location\n // the diff will be applied to and add the offset inside the diff.\n\n if (point.offset <= diff.start + diff.text.length) {\n var _anchor = {\n path: point.path,\n offset: diff.start\n };\n\n var _transformed = Point.transform(_anchor, op, {\n affinity: 'backward'\n });\n\n if (!_transformed) {\n return null;\n }\n\n return {\n path: _transformed.path,\n offset: _transformed.offset + point.offset - diff.start\n };\n } // Point references location after the diff\n\n\n var anchor = {\n path: point.path,\n offset: point.offset - diff.text.length + diff.end - diff.start\n };\n var transformed = Point.transform(anchor, op, {\n affinity: 'backward'\n });\n\n if (!transformed) {\n return null;\n }\n\n if (op.type === 'split_node' && Path.equals(op.path, point.path) && anchor.offset < op.position && diff.start < op.position) {\n return transformed;\n }\n\n return {\n path: transformed.path,\n offset: transformed.offset + diff.text.length - diff.end + diff.start\n };\n}\nfunction transformPendingRange(editor, range, op) {\n var anchor = transformPendingPoint(editor, range.anchor, op);\n\n if (!anchor) {\n return null;\n }\n\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n\n var focus = transformPendingPoint(editor, range.focus, op);\n\n if (!focus) {\n return null;\n }\n\n return {\n anchor,\n focus\n };\n}\nfunction transformTextDiff(textDiff, op) {\n var {\n path,\n diff,\n id\n } = textDiff;\n\n switch (op.type) {\n case 'insert_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n\n if (op.offset <= diff.start) {\n return {\n diff: {\n start: op.text.length + diff.start,\n end: op.text.length + diff.end,\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end + op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n case 'remove_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n\n if (op.offset + op.text.length <= diff.start) {\n return {\n diff: {\n start: diff.start - op.text.length,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n case 'split_node':\n {\n if (!Path.equals(op.path, path) || op.position >= diff.end) {\n return {\n diff,\n id,\n path: Path.transform(path, op, {\n affinity: 'backward'\n })\n };\n }\n\n if (op.position > diff.start) {\n return {\n diff: {\n start: diff.start,\n end: Math.min(op.position, diff.end),\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start - op.position,\n end: diff.end - op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op, {\n affinity: 'forward'\n })\n };\n }\n\n case 'merge_node':\n {\n if (!Path.equals(op.path, path)) {\n return {\n diff,\n id,\n path: Path.transform(path, op)\n };\n }\n\n return {\n diff: {\n start: diff.start + op.position,\n end: diff.end + op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op)\n };\n }\n }\n\n var newPath = Path.transform(path, op);\n\n if (!newPath) {\n return null;\n }\n\n return {\n diff,\n path: newPath,\n id\n };\n}\n\nfunction ownKeys$3(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$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n// When using keyboard English association function, conpositionEnd triggered too fast, resulting in after `insertText` still maintain association state.\n\nvar RESOLVE_DELAY = 25; // Time with no user interaction before the current user action is considered as done.\n\nvar FLUSH_DELAY = 200; // Replace with `const debug = console.log` to debug\n\nvar debug = function debug() {};\n\nfunction createAndroidInputManager(_ref) {\n var {\n editor,\n scheduleOnDOMSelectionChange,\n onDOMSelectionChange\n } = _ref;\n var flushing = false;\n var compositionEndTimeoutId = null;\n var flushTimeoutId = null;\n var actionTimeoutId = null;\n var idCounter = 0;\n var insertPositionHint = false;\n\n var applyPendingSelection = () => {\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(editor);\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n\n if (pendingSelection) {\n var {\n selection\n } = editor;\n var normalized = normalizeRange(editor, pendingSelection);\n\n if (normalized && (!selection || !Range.equals(normalized, selection))) {\n Transforms.select(editor, normalized);\n }\n }\n };\n\n var performAction = () => {\n var action = EDITOR_TO_PENDING_ACTION.get(editor);\n EDITOR_TO_PENDING_ACTION.delete(editor);\n\n if (!action) {\n return;\n }\n\n if (action.at) {\n var target = Point.isPoint(action.at) ? normalizePoint(editor, action.at) : normalizeRange(editor, action.at);\n\n if (!target) {\n return;\n }\n\n var _targetRange = Editor.range(editor, target);\n\n if (!editor.selection || !Range.equals(editor.selection, _targetRange)) {\n Transforms.select(editor, target);\n }\n }\n\n action.run();\n };\n\n var flush = () => {\n var _EDITOR_TO_PENDING_DI;\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n if (actionTimeoutId) {\n clearTimeout(actionTimeoutId);\n actionTimeoutId = null;\n }\n\n if (!hasPendingDiffs() && !hasPendingAction()) {\n applyPendingSelection();\n return;\n }\n\n if (!flushing) {\n flushing = true;\n setTimeout(() => flushing = false);\n }\n\n if (hasPendingAction()) {\n flushing = 'action';\n }\n\n var selectionRef = editor.selection && Editor.rangeRef(editor, editor.selection, {\n affinity: 'forward'\n });\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n debug('flush', EDITOR_TO_PENDING_ACTION.get(editor), EDITOR_TO_PENDING_DIFFS.get(editor));\n var scheduleSelectionChange = !!((_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI !== void 0 && _EDITOR_TO_PENDING_DI.length);\n var diff;\n\n while (diff = (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI2 === void 0 ? void 0 : _EDITOR_TO_PENDING_DI2[0]) {\n var _EDITOR_TO_PENDING_DI2, _EDITOR_TO_PENDING_DI3;\n\n var pendingMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n\n if (pendingMarks !== undefined) {\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n editor.marks = pendingMarks;\n }\n\n if (pendingMarks && insertPositionHint === false) {\n insertPositionHint = null;\n }\n\n var range = targetRange(diff);\n\n if (!editor.selection || !Range.equals(editor.selection, range)) {\n Transforms.select(editor, range);\n }\n\n if (diff.diff.text) {\n Editor.insertText(editor, diff.diff.text);\n } else {\n Editor.deleteFragment(editor);\n } // Remove diff only after we have applied it to account for it when transforming\n // pending ranges.\n\n\n EDITOR_TO_PENDING_DIFFS.set(editor, (_EDITOR_TO_PENDING_DI3 = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI3 === void 0 ? void 0 : _EDITOR_TO_PENDING_DI3.filter(_ref2 => {\n var {\n id\n } = _ref2;\n return id !== diff.id;\n }));\n\n if (!verifyDiffState(editor, diff)) {\n scheduleSelectionChange = false;\n EDITOR_TO_PENDING_ACTION.delete(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n flushing = 'action'; // Ensure we don't restore the pending user (dom) selection\n // since the document and dom state do not match.\n\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n }\n }\n\n var selection = selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n\n if (selection && !EDITOR_TO_PENDING_SELECTION.get(editor) && (!editor.selection || !Range.equals(selection, editor.selection))) {\n Transforms.select(editor, selection);\n }\n\n if (hasPendingAction()) {\n performAction();\n return;\n } // COMPAT: The selectionChange event is fired after the action is performed,\n // so we have to manually schedule it to ensure we don't 'throw away' the selection\n // while rendering if we have pending changes.\n\n\n if (scheduleSelectionChange) {\n scheduleOnDOMSelectionChange();\n }\n\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n applyPendingSelection();\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n editor.onChange();\n }\n };\n\n var handleCompositionEnd = _event => {\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n }\n\n compositionEndTimeoutId = setTimeout(() => {\n IS_COMPOSING.set(editor, false);\n flush();\n }, RESOLVE_DELAY);\n };\n\n var handleCompositionStart = _event => {\n IS_COMPOSING.set(editor, true);\n\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n compositionEndTimeoutId = null;\n }\n };\n\n var updatePlaceholderVisibility = function updatePlaceholderVisibility() {\n var forceHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placeholderElement = EDITOR_TO_PLACEHOLDER_ELEMENT.get(editor);\n\n if (!placeholderElement) {\n return;\n }\n\n if (hasPendingDiffs() || forceHide) {\n placeholderElement.style.display = 'none';\n return;\n }\n\n placeholderElement.style.removeProperty('display');\n };\n\n var storeDiff = (path, diff) => {\n var _EDITOR_TO_PENDING_DI4;\n var pendingDiffs = (_EDITOR_TO_PENDING_DI4 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI4 !== void 0 ? _EDITOR_TO_PENDING_DI4 : [];\n EDITOR_TO_PENDING_DIFFS.set(editor, pendingDiffs);\n var target = Node.leaf(editor, path);\n var idx = pendingDiffs.findIndex(change => Path.equals(change.path, path));\n\n if (idx < 0) {\n var normalized = normalizeStringDiff(target.text, diff);\n\n if (normalized) {\n pendingDiffs.push({\n path,\n diff,\n id: idCounter++\n });\n }\n\n updatePlaceholderVisibility();\n return;\n }\n\n var merged = mergeStringDiffs(target.text, pendingDiffs[idx].diff, diff);\n\n if (!merged) {\n pendingDiffs.splice(idx, 1);\n updatePlaceholderVisibility();\n return;\n }\n\n pendingDiffs[idx] = _objectSpread$3(_objectSpread$3({}, pendingDiffs[idx]), {}, {\n diff: merged\n });\n };\n\n var scheduleAction = function scheduleAction(run) {\n var {\n at\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n insertPositionHint = false;\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n\n if (hasPendingAction()) {\n flush();\n }\n\n EDITOR_TO_PENDING_ACTION.set(editor, {\n at,\n run\n }); // COMPAT: When deleting before a non-contenteditable element chrome only fires a beforeinput,\n // (no input) and doesn't perform any dom mutations. Without a flush timeout we would never flush\n // in this case and thus never actually perform the action.\n\n actionTimeoutId = setTimeout(flush);\n };\n\n var handleDOMBeforeInput = event => {\n var _targetRange2;\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n var {\n inputType: type\n } = event;\n var targetRange = null;\n var data = event.dataTransfer || event.data || undefined;\n\n if (insertPositionHint !== false && type !== 'insertText' && type !== 'insertCompositionText') {\n insertPositionHint = false;\n }\n\n var [nativeTargetRange] = event.getTargetRanges();\n\n if (nativeTargetRange) {\n targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {\n exactMatch: false,\n suppressThrow: true\n });\n } // COMPAT: SelectionChange event is fired after the action is performed, so we\n // have to manually get the selection here to ensure it's up-to-date.\n\n\n var window = ReactEditor.getWindow(editor);\n var domSelection = window.getSelection();\n\n if (!targetRange && domSelection) {\n nativeTargetRange = domSelection;\n targetRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n\n targetRange = (_targetRange2 = targetRange) !== null && _targetRange2 !== void 0 ? _targetRange2 : editor.selection;\n\n if (!targetRange) {\n return;\n }\n\n if (Range.isExpanded(targetRange) && type.startsWith('delete')) {\n var [start, end] = Range.edges(targetRange);\n var leaf = Node.leaf(editor, start.path);\n\n if (leaf.text.length === start.offset && end.offset === 0) {\n var next = Editor.next(editor, {\n at: start.path,\n match: Text$1.isText\n });\n\n if (next && Path.equals(next[1], end.path)) {\n targetRange = {\n anchor: end,\n focus: end\n };\n }\n }\n }\n\n if (Range.isExpanded(targetRange) && type.startsWith('delete')) {\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var [_start, _end] = Range.edges(targetRange);\n return storeDiff(targetRange.anchor.path, {\n text: '',\n end: _end.offset,\n start: _start.offset\n });\n }\n\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n return scheduleAction(() => Editor.deleteFragment(editor, {\n direction\n }), {\n at: targetRange\n });\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n return scheduleAction(() => Editor.deleteFragment(editor), {\n at: targetRange\n });\n }\n\n case 'deleteContent':\n case 'deleteContentForward':\n {\n var {\n anchor\n } = targetRange;\n\n if (Range.isCollapsed(targetRange)) {\n var targetNode = Node.leaf(editor, anchor.path);\n\n if (anchor.offset < targetNode.text.length) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset,\n end: anchor.offset + 1\n });\n }\n }\n\n return scheduleAction(() => Editor.deleteForward(editor), {\n at: targetRange\n });\n }\n\n case 'deleteContentBackward':\n {\n var _nativeTargetRange;\n\n var {\n anchor: _anchor\n } = targetRange; // If we have a mismatch between the native and slate selection being collapsed\n // we are most likely deleting a zero-width placeholder and thus should perform it\n // as an action to ensure correct behavior (mostly happens with mark placeholders)\n\n var nativeCollapsed = isDOMSelection(nativeTargetRange) ? nativeTargetRange.isCollapsed : !!((_nativeTargetRange = nativeTargetRange) !== null && _nativeTargetRange !== void 0 && _nativeTargetRange.collapsed);\n\n if (nativeCollapsed && Range.isCollapsed(targetRange) && _anchor.offset > 0) {\n return storeDiff(_anchor.path, {\n text: '',\n start: _anchor.offset - 1,\n end: _anchor.offset\n });\n }\n\n return scheduleAction(() => Editor.deleteBackward(editor), {\n at: targetRange\n });\n }\n\n case 'deleteEntireSoftLine':\n {\n return scheduleAction(() => {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }, {\n at: targetRange\n });\n }\n\n case 'deleteHardLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteSoftLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteHardLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteSoftLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteWordBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteWordForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n\n case 'insertLineBreak':\n {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: targetRange\n });\n }\n\n case 'insertParagraph':\n {\n return scheduleAction(() => Editor.insertBreak(editor), {\n at: targetRange\n });\n }\n\n case 'insertCompositionText':\n case 'deleteCompositionText':\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {\n return scheduleAction(() => ReactEditor.insertData(editor, data), {\n at: targetRange\n });\n }\n\n if (typeof data === 'string' && data.includes('\\n')) {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: Range.end(targetRange)\n });\n }\n\n var text = data !== null && data !== void 0 ? data : ''; // COMPAT: If we are writing inside a placeholder, the ime inserts the text inside\n // the placeholder itself and thus includes the zero-width space inside edit events.\n\n if (EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)) {\n text = text.replace('\\uFEFF', '');\n }\n\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var [_start2, _end2] = Range.edges(targetRange);\n var diff = {\n start: _start2.offset,\n end: _end2.offset,\n text\n }; // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word\n // inserted after a mark placeholder is inserted with an anchor offset off by 1.\n // So writing 'some text' will result in 'some ttext'. Luckily all 'normal' insert\n // text events are fired with the correct target ranges, only the final 'insertComposition'\n // isn't, so we can adjust the target range start offset if we are confident this is the\n // swiftkey insert causing the issue.\n\n if (text && insertPositionHint && type === 'insertCompositionText') {\n var hintPosition = insertPositionHint.start + insertPositionHint.text.search(/\\S|$/);\n var diffPosition = diff.start + diff.text.search(/\\S|$/);\n\n if (diffPosition === hintPosition + 1 && diff.end === insertPositionHint.start + insertPositionHint.text.length) {\n diff.start -= 1;\n insertPositionHint = null;\n scheduleFlush();\n } else {\n insertPositionHint = false;\n }\n } else if (type === 'insertText') {\n if (insertPositionHint === null) {\n insertPositionHint = diff;\n } else if (insertPositionHint && Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start2.offset) {\n insertPositionHint = _objectSpread$3(_objectSpread$3({}, insertPositionHint), {}, {\n text: insertPositionHint.text + text\n });\n } else {\n insertPositionHint = false;\n }\n } else {\n insertPositionHint = false;\n }\n\n storeDiff(_start2.path, diff);\n return;\n }\n\n return scheduleAction(() => Editor.insertText(editor, text), {\n at: targetRange\n });\n }\n }\n };\n\n var hasPendingAction = () => {\n return !!EDITOR_TO_PENDING_ACTION.get(editor);\n };\n\n var hasPendingDiffs = () => {\n var _EDITOR_TO_PENDING_DI5;\n\n return !!((_EDITOR_TO_PENDING_DI5 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI5 !== void 0 && _EDITOR_TO_PENDING_DI5.length);\n };\n\n var hasPendingChanges = () => {\n return hasPendingAction() || hasPendingDiffs();\n };\n\n var isFlushing = () => {\n return flushing;\n };\n\n var handleUserSelect = range => {\n EDITOR_TO_PENDING_SELECTION.set(editor, range);\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n var {\n selection\n } = editor;\n\n if (!range) {\n return;\n }\n\n var pathChanged = !selection || !Path.equals(selection.anchor.path, range.anchor.path);\n var parentPathChanged = !selection || !Path.equals(selection.anchor.path.slice(0, -1), range.anchor.path.slice(0, -1));\n\n if (pathChanged && insertPositionHint || parentPathChanged) {\n insertPositionHint = false;\n }\n\n if (pathChanged || !hasPendingDiffs()) {\n flushTimeoutId = setTimeout(flush, FLUSH_DELAY);\n }\n };\n\n var handleInput = () => {\n if (hasPendingAction() || !hasPendingDiffs()) {\n flush();\n }\n };\n\n var handleKeyDown = _ => {\n // COMPAT: Swiftkey closes the keyboard when typing inside a empty node\n // directly next to a non-contenteditable element (= the placeholder).\n // The only event fired soon enough for us to allow hiding the placeholder\n // without swiftkey picking it up is the keydown event, so we have to hide it\n // here. See https://github.com/ianstormtaylor/slate/pull/4988#issuecomment-1201050535\n if (!hasPendingDiffs()) {\n updatePlaceholderVisibility(true);\n setTimeout(updatePlaceholderVisibility);\n }\n };\n\n var scheduleFlush = () => {\n if (!hasPendingAction()) {\n actionTimeoutId = setTimeout(flush);\n }\n };\n\n var handleDomMutations = mutations => {\n if (hasPendingDiffs() || hasPendingAction()) {\n return;\n }\n\n if (mutations.some(mutation => isTrackedMutation(editor, mutation, mutations))) {\n var _EDITOR_TO_FORCE_REND;\n\n // Cause a re-render to restore the dom state if we encounter tracked mutations without\n // a corresponding pending action.\n (_EDITOR_TO_FORCE_REND = EDITOR_TO_FORCE_RENDER.get(editor)) === null || _EDITOR_TO_FORCE_REND === void 0 ? void 0 : _EDITOR_TO_FORCE_REND();\n }\n };\n\n return {\n flush,\n scheduleFlush,\n hasPendingDiffs,\n hasPendingAction,\n hasPendingChanges,\n isFlushing,\n handleUserSelect,\n handleCompositionEnd,\n handleCompositionStart,\n handleDOMBeforeInput,\n handleKeyDown,\n handleDomMutations,\n handleInput\n };\n}\n\nfunction useIsMounted() {\n var isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n}\n\nfunction useMutationObserver(node, callback, options) {\n var [mutationObserver] = useState(() => new MutationObserver(callback));\n useIsomorphicLayoutEffect(() => {\n // Discard mutations caused during render phase. This works due to react calling\n // useLayoutEffect synchronously after the render phase before the next tick.\n mutationObserver.takeRecords();\n });\n useEffect(() => {\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n\n mutationObserver.observe(node.current, options);\n return () => mutationObserver.disconnect();\n }, []);\n}\n\nvar _excluded$2 = [\"node\"];\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar MUTATION_OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true\n};\nfunction useAndroidInputManager(_ref) {\n var {\n node\n } = _ref,\n options = _objectWithoutProperties(_ref, _excluded$2);\n\n if (!IS_ANDROID) {\n return null;\n }\n\n var editor = useSlateStatic();\n var isMounted = useIsMounted();\n var [inputManager] = useState(() => createAndroidInputManager(_objectSpread$2({\n editor\n }, options)));\n useMutationObserver(node, inputManager.handleDomMutations, MUTATION_OBSERVER_CONFIG);\n EDITOR_TO_SCHEDULE_FLUSH.set(editor, inputManager.scheduleFlush);\n\n if (isMounted) {\n inputManager.flush();\n }\n\n return inputManager;\n}\n\nfunction useTrackUserInput() {\n var editor = useSlateStatic();\n var receivedUserInput = useRef(false);\n var animationFrameIdRef = useRef(0);\n var onUserInput = useCallback(() => {\n if (receivedUserInput.current) {\n return;\n }\n\n receivedUserInput.current = true;\n var window = ReactEditor.getWindow(editor);\n window.cancelAnimationFrame(animationFrameIdRef.current);\n animationFrameIdRef.current = window.requestAnimationFrame(() => {\n receivedUserInput.current = false;\n });\n }, []);\n useEffect(() => () => cancelAnimationFrame(animationFrameIdRef.current), []);\n return {\n receivedUserInput,\n onUserInput\n };\n}\n\nvar _excluded$1 = [\"autoFocus\", \"decorate\", \"onDOMBeforeInput\", \"placeholder\", \"readOnly\", \"renderElement\", \"renderLeaf\", \"renderPlaceholder\", \"scrollSelectionIntoView\", \"style\", \"as\"],\n _excluded2 = [\"text\"];\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props));\n/**\r\n * Editable.\r\n */\n\n\nvar Editable = props => {\n var {\n autoFocus,\n decorate = defaultDecorate,\n onDOMBeforeInput: propsOnDOMBeforeInput,\n placeholder,\n readOnly = false,\n renderElement,\n renderLeaf,\n renderPlaceholder = props => /*#__PURE__*/React.createElement(DefaultPlaceholder, Object.assign({}, props)),\n scrollSelectionIntoView = defaultScrollSelectionIntoView,\n style = {},\n as: Component = 'div'\n } = props,\n attributes = _objectWithoutProperties(props, _excluded$1);\n\n var editor = useSlate(); // Rerender editor when composition status changed\n\n var [isComposing, setIsComposing] = useState(false);\n var ref = useRef(null);\n var deferredOperations = useRef([]);\n var {\n onUserInput,\n receivedUserInput\n } = useTrackUserInput();\n var [, forceRender] = useReducer(s => s + 1, 0);\n EDITOR_TO_FORCE_RENDER.set(editor, forceRender); // Update internal state on each render.\n\n IS_READ_ONLY.set(editor, readOnly); // Keep track of some state for the event handler logic.\n\n var state = useMemo(() => ({\n isDraggingInternally: false,\n isUpdatingSelection: false,\n latestElement: null,\n hasMarkPlaceholder: false\n }), []); // The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it\n // needs to be manually focused.\n\n useEffect(() => {\n if (ref.current && autoFocus) {\n ref.current.focus();\n }\n }, [autoFocus]); // Listen on the native `selectionchange` event to be able to update any time\n // the selection changes. This is required because React's `onSelect` is leaky\n // and non-standard so it doesn't fire until after a selection has been\n // released. This causes issues in situations where another change happens\n // while a selection is being dragged.\n\n var onDOMSelectionChange = useCallback(throttle(() => {\n if ((IS_ANDROID || !ReactEditor.isComposing(editor)) && (!state.isUpdatingSelection || androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing()) && !state.isDraggingInternally) {\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var {\n activeElement\n } = root;\n var el = ReactEditor.toDOMNode(editor, editor);\n var domSelection = root.getSelection();\n\n if (activeElement === el) {\n state.latestElement = activeElement;\n IS_FOCUSED.set(editor, true);\n } else {\n IS_FOCUSED.delete(editor);\n }\n\n if (!domSelection) {\n return Transforms.deselect(editor);\n }\n\n var {\n anchorNode,\n focusNode\n } = domSelection;\n var anchorNodeSelectable = hasEditableTarget(editor, anchorNode) || isTargetInsideNonReadonlyVoid(editor, anchorNode);\n var focusNodeSelectable = hasEditableTarget(editor, focusNode) || isTargetInsideNonReadonlyVoid(editor, focusNode);\n\n if (anchorNodeSelectable && focusNodeSelectable) {\n var range = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n\n if (range) {\n if (!ReactEditor.isComposing(editor) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.hasPendingChanges()) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing())) {\n Transforms.select(editor, range);\n } else {\n androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.handleUserSelect(range);\n }\n }\n } // Deselect the editor if the dom selection is not selectable in readonly mode\n\n\n if (readOnly && (!anchorNodeSelectable || !focusNodeSelectable)) {\n Transforms.deselect(editor);\n }\n }\n }, 100), [readOnly]);\n var scheduleOnDOMSelectionChange = useMemo(() => debounce(onDOMSelectionChange, 0), [onDOMSelectionChange]);\n var androidInputManager = useAndroidInputManager({\n node: ref,\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange\n });\n useIsomorphicLayoutEffect(() => {\n // Update element-related weak maps with the DOM element ref.\n var window;\n\n if (ref.current && (window = getDefaultView(ref.current))) {\n EDITOR_TO_WINDOW.set(editor, window);\n EDITOR_TO_ELEMENT.set(editor, ref.current);\n NODE_TO_ELEMENT.set(editor, ref.current);\n ELEMENT_TO_NODE.set(ref.current, editor);\n } else {\n NODE_TO_ELEMENT.delete(editor);\n } // Make sure the DOM selection state is in sync.\n\n\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = root.getSelection();\n\n if (!domSelection || !ReactEditor.isFocused(editor) || androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.hasPendingAction()) {\n return;\n }\n\n var setDomSelection = forceChange => {\n var hasDomSelection = domSelection.type !== 'None'; // If the DOM selection is properly unset, we're done.\n\n if (!selection && !hasDomSelection) {\n return;\n } // verify that the dom selection is in the editor\n\n\n var editorElement = EDITOR_TO_ELEMENT.get(editor);\n var hasDomSelectionInEditor = false;\n\n if (editorElement.contains(domSelection.anchorNode) && editorElement.contains(domSelection.focusNode)) {\n hasDomSelectionInEditor = true;\n } // If the DOM selection is in the editor and the editor selection is already correct, we're done.\n\n\n if (hasDomSelection && hasDomSelectionInEditor && selection && !forceChange) {\n var slateRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: true,\n // domSelection is not necessarily a valid Slate range\n // (e.g. when clicking on contentEditable:false element)\n suppressThrow: true\n });\n\n if (slateRange && Range.equals(slateRange, selection)) {\n var _anchorNode$parentEle;\n\n if (!state.hasMarkPlaceholder) {\n return;\n } // Ensure selection is inside the mark placeholder\n\n\n var {\n anchorNode\n } = domSelection;\n\n if (anchorNode !== null && anchorNode !== void 0 && (_anchorNode$parentEle = anchorNode.parentElement) !== null && _anchorNode$parentEle !== void 0 && _anchorNode$parentEle.hasAttribute('data-slate-mark-placeholder')) {\n return;\n }\n }\n } // when <Editable/> is being controlled through external value\n // then its children might just change - DOM responds to it on its own\n // but Slate's value is not being updated through any operation\n // and thus it doesn't transform selection on its own\n\n\n if (selection && !ReactEditor.hasRange(editor, selection)) {\n editor.selection = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n return;\n } // Otherwise the DOM selection is out of sync, so update it.\n\n\n state.isUpdatingSelection = true;\n var newDomRange = selection && ReactEditor.toDOMRange(editor, selection);\n\n if (newDomRange) {\n if (Range.isBackward(selection)) {\n domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);\n } else {\n domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);\n }\n\n scrollSelectionIntoView(editor, newDomRange);\n } else {\n domSelection.removeAllRanges();\n }\n\n return newDomRange;\n };\n\n var newDomRange = setDomSelection();\n var ensureSelection = (androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.isFlushing()) === 'action';\n\n if (!IS_ANDROID || !ensureSelection) {\n setTimeout(() => {\n // COMPAT: In Firefox, it's not enough to create a range, you also need\n // to focus the contenteditable element too. (2016/11/16)\n if (newDomRange && IS_FIREFOX) {\n var el = ReactEditor.toDOMNode(editor, editor);\n el.focus();\n }\n\n state.isUpdatingSelection = false;\n });\n return;\n }\n\n var timeoutId = null;\n var animationFrameId = requestAnimationFrame(() => {\n if (ensureSelection) {\n var ensureDomSelection = forceChange => {\n try {\n var el = ReactEditor.toDOMNode(editor, editor);\n el.focus();\n setDomSelection(forceChange);\n } catch (e) {// Ignore, dom and state might be out of sync\n }\n }; // Compat: Android IMEs try to force their selection by manually re-applying it even after we set it.\n // This essentially would make setting the slate selection during an update meaningless, so we force it\n // again here. We can't only do it in the setTimeout after the animation frame since that would cause a\n // visible flicker.\n\n\n ensureDomSelection();\n timeoutId = setTimeout(() => {\n // COMPAT: While setting the selection in an animation frame visually correctly sets the selection,\n // it doesn't update GBoards spellchecker state. We have to manually trigger a selection change after\n // the animation frame to ensure it displays the correct state.\n ensureDomSelection(true);\n state.isUpdatingSelection = false;\n });\n }\n });\n return () => {\n cancelAnimationFrame(animationFrameId);\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }); // Listen on the native `beforeinput` event to get real \"Level 2\" events. This\n // is required because React's `beforeinput` is fake and never really attaches\n // to the real event sadly. (2019/11/01)\n // https://github.com/facebook/react/issues/11211\n\n var onDOMBeforeInput = useCallback(event => {\n onUserInput();\n\n if (!readOnly && hasEditableTarget(editor, event.target) && !isDOMEventHandled(event, propsOnDOMBeforeInput)) {\n var _EDITOR_TO_USER_SELEC;\n\n // COMPAT: BeforeInput events aren't cancelable on android, so we have to handle them differently using the android input manager.\n if (androidInputManager) {\n return androidInputManager.handleDOMBeforeInput(event);\n } // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before\n // triggering a `beforeinput` expecting the change to be applied to the immediately before\n // set selection.\n\n\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n var {\n selection\n } = editor;\n var {\n inputType: type\n } = event;\n var data = event.dataTransfer || event.data || undefined;\n var isCompositionChange = type === 'insertCompositionText' || type === 'deleteCompositionText'; // COMPAT: use composition change events as a hint to where we should insert\n // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038\n\n if (isCompositionChange && ReactEditor.isComposing(editor)) {\n return;\n }\n\n var native = false;\n\n if (type === 'insertText' && selection && Range.isCollapsed(selection) && // Only use native character insertion for single characters a-z or space for now.\n // Long-press events (hold a + press 4 = ä) to choose a special character otherwise\n // causes duplicate inserts.\n event.data && event.data.length === 1 && /[a-z ]/i.test(event.data) && // Chrome has issues correctly editing the start of nodes: https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n // When there is an inline element, e.g. a link, and you select\n // right after it (the start of the next node).\n selection.anchor.offset !== 0) {\n var _node$parentElement, _window$getComputedSt;\n\n native = true; // Skip native if there are marks, as\n // `insertText` will insert a node, not just text.\n\n if (editor.marks) {\n native = false;\n } // Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100\n // Therefore we don't allow native events to insert text at the end of anchor nodes.\n\n\n var {\n anchor\n } = selection;\n var [node, offset] = ReactEditor.toDOMPoint(editor, anchor);\n var anchorNode = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.closest('a');\n var window = ReactEditor.getWindow(editor);\n\n if (native && anchorNode && ReactEditor.hasDOMNode(editor, anchorNode)) {\n var _lastText$textContent;\n\n // Find the last text node inside the anchor.\n var lastText = window === null || window === void 0 ? void 0 : window.document.createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT).lastChild();\n\n if (lastText === node && ((_lastText$textContent = lastText.textContent) === null || _lastText$textContent === void 0 ? void 0 : _lastText$textContent.length) === offset) {\n native = false;\n }\n } // Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'\n // causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139\n\n\n if (native && node.parentElement && (window === null || window === void 0 ? void 0 : (_window$getComputedSt = window.getComputedStyle(node.parentElement)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.whiteSpace) === 'pre') {\n var block = Editor.above(editor, {\n at: anchor.path,\n match: n => Editor.isBlock(editor, n)\n });\n\n if (block && Node.string(block[0]).includes('\\t')) {\n native = false;\n }\n }\n } // COMPAT: For the deleting forward/backward input types we don't want\n // to change the selection because it is the range that will be deleted,\n // and those commands determine that for themselves.\n\n\n if (!type.startsWith('delete') || type.startsWith('deleteBy')) {\n var [targetRange] = event.getTargetRanges();\n\n if (targetRange) {\n var range = ReactEditor.toSlateRange(editor, targetRange, {\n exactMatch: false,\n suppressThrow: false\n });\n\n if (!selection || !Range.equals(selection, range)) {\n native = false;\n var selectionRef = !isCompositionChange && editor.selection && Editor.rangeRef(editor, editor.selection);\n Transforms.select(editor, range);\n\n if (selectionRef) {\n EDITOR_TO_USER_SELECTION.set(editor, selectionRef);\n }\n }\n }\n } // Composition change types occur while a user is composing text and can't be\n // cancelled. Let them through and wait for the composition to end.\n\n\n if (isCompositionChange) {\n return;\n }\n\n if (!native) {\n event.preventDefault();\n } // COMPAT: If the selection is expanded, even if the command seems like\n // a delete forward/backward command it should delete the selection.\n\n\n if (selection && Range.isExpanded(selection) && type.startsWith('delete')) {\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n Editor.deleteFragment(editor, {\n direction\n });\n return;\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n Editor.deleteFragment(editor);\n break;\n }\n\n case 'deleteContent':\n case 'deleteContentForward':\n {\n Editor.deleteForward(editor);\n break;\n }\n\n case 'deleteContentBackward':\n {\n Editor.deleteBackward(editor);\n break;\n }\n\n case 'deleteEntireSoftLine':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteHardLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n break;\n }\n\n case 'deleteSoftLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteHardLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'block'\n });\n break;\n }\n\n case 'deleteSoftLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteWordBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n break;\n }\n\n case 'deleteWordForward':\n {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n break;\n }\n\n case 'insertLineBreak':\n Editor.insertSoftBreak(editor);\n break;\n\n case 'insertParagraph':\n {\n Editor.insertBreak(editor);\n break;\n }\n\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (type === 'insertFromComposition') {\n // COMPAT: in Safari, `compositionend` is dispatched after the\n // `beforeinput` for \"insertFromComposition\". But if we wait for it\n // then we will abort because we're still composing and the selection\n // won't be updated properly.\n // https://www.w3.org/TR/input-events-2/\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n } // use a weak comparison instead of 'instanceof' to allow\n // programmatic access of paste events coming from external windows\n // like cypress where cy.window does not work realibly\n\n\n if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {\n ReactEditor.insertData(editor, data);\n } else if (typeof data === 'string') {\n // Only insertText operations use the native functionality, for now.\n // Potentially expand to single character deletes, as well.\n if (native) {\n deferredOperations.current.push(() => Editor.insertText(editor, data));\n } else {\n Editor.insertText(editor, data);\n }\n }\n\n break;\n }\n } // Restore the actual user section if nothing manually set it.\n\n\n var toRestore = (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(editor);\n\n if (toRestore && (!editor.selection || !Range.equals(editor.selection, toRestore))) {\n Transforms.select(editor, toRestore);\n }\n }\n }, [readOnly, propsOnDOMBeforeInput]); // Attach a native DOM event handler for `beforeinput` events, because React's\n // built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose\n // real `beforeinput` events sadly... (2019/11/04)\n // https://github.com/facebook/react/issues/11211\n\n useIsomorphicLayoutEffect(() => {\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.addEventListener('beforeinput', onDOMBeforeInput);\n }\n\n return () => {\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.removeEventListener('beforeinput', onDOMBeforeInput);\n }\n };\n }, [onDOMBeforeInput]); // Attach a native DOM event handler for `selectionchange`, because React's\n // built-in `onSelect` handler doesn't fire for all selection changes. It's a\n // leaky polyfill that only fires on keypresses or clicks. Instead, we want to\n // fire for any change to the selection inside the editor. (2019/11/04)\n // https://github.com/facebook/react/issues/5785\n\n useIsomorphicLayoutEffect(() => {\n var window = ReactEditor.getWindow(editor);\n window.document.addEventListener('selectionchange', scheduleOnDOMSelectionChange);\n return () => {\n window.document.removeEventListener('selectionchange', scheduleOnDOMSelectionChange);\n };\n }, [scheduleOnDOMSelectionChange]);\n var decorations = decorate([editor, []]);\n\n if (placeholder && editor.children.length === 1 && Array.from(Node.texts(editor)).length === 1 && Node.string(editor) === '' && !isComposing) {\n var start = Editor.start(editor, []);\n decorations.push({\n [PLACEHOLDER_SYMBOL]: true,\n placeholder,\n anchor: start,\n focus: start\n });\n }\n\n var {\n marks\n } = editor;\n state.hasMarkPlaceholder = false;\n\n if (editor.selection && Range.isCollapsed(editor.selection) && marks) {\n var {\n anchor\n } = editor.selection;\n var leaf = Node.leaf(editor, anchor.path);\n\n var rest = _objectWithoutProperties(leaf, _excluded2); // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n\n\n if (!Text$1.equals(leaf, marks, {\n loose: true\n })) {\n state.hasMarkPlaceholder = true;\n var unset = Object.fromEntries(Object.keys(rest).map(mark => [mark, null]));\n decorations.push(_objectSpread$1(_objectSpread$1(_objectSpread$1({\n [MARK_PLACEHOLDER_SYMBOL]: true\n }, unset), marks), {}, {\n anchor,\n focus: anchor\n }));\n }\n } // Update EDITOR_TO_MARK_PLACEHOLDER_MARKS in setTimeout useEffect to ensure we don't set it\n // before we receive the composition end event.\n\n\n useEffect(() => {\n setTimeout(() => {\n var {\n selection\n } = editor;\n\n if (selection) {\n var {\n anchor: _anchor\n } = selection;\n\n var _text = Node.leaf(editor, _anchor.path); // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n\n\n if (marks && !Text$1.equals(_text, marks, {\n loose: true\n })) {\n EDITOR_TO_PENDING_INSERTION_MARKS.set(editor, marks);\n return;\n }\n }\n\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n });\n });\n return /*#__PURE__*/React.createElement(ReadOnlyContext.Provider, {\n value: readOnly\n }, /*#__PURE__*/React.createElement(DecorateContext.Provider, {\n value: decorate\n }, /*#__PURE__*/React.createElement(RestoreDOM, {\n node: ref,\n receivedUserInput: receivedUserInput\n }, /*#__PURE__*/React.createElement(Component, Object.assign({\n role: readOnly ? undefined : 'textbox',\n \"aria-multiline\": readOnly ? undefined : true\n }, attributes, {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we'd\n // have to use hacks to make these replacement-based features work.\n // For SSR situations HAS_BEFORE_INPUT_SUPPORT is false and results in prop\n // mismatch warning app moves to browser. Pass-through consumer props when\n // not CAN_USE_DOM (SSR) and default to falsy value\n spellCheck: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.spellCheck : false,\n autoCorrect: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCorrect : 'false',\n autoCapitalize: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCapitalize : 'false',\n \"data-slate-editor\": true,\n \"data-slate-node\": \"value\",\n // explicitly set this\n contentEditable: !readOnly,\n // in some cases, a decoration needs access to the range / selection to decorate a text node,\n // then you will select the whole text node when you select part the of text\n // this magic zIndex=\"-1\" will fix it\n zindex: -1,\n suppressContentEditableWarning: true,\n ref: ref,\n style: _objectSpread$1({\n // Allow positioning relative to the editable element.\n position: 'relative',\n // Prevent the default outline styles.\n outline: 'none',\n // Preserve adjacent whitespace and new lines.\n whiteSpace: 'pre-wrap',\n // Allow words to break if they are too long.\n wordWrap: 'break-word'\n }, style),\n onBeforeInput: useCallback(event => {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's leaky polyfill instead just for it. It\n // only works for the `insertText` input type.\n if (!HAS_BEFORE_INPUT_SUPPORT && !readOnly && !isEventHandled(event, attributes.onBeforeInput) && hasEditableTarget(editor, event.target)) {\n event.preventDefault();\n\n if (!ReactEditor.isComposing(editor)) {\n var _text2 = event.data;\n Editor.insertText(editor, _text2);\n }\n }\n }, [readOnly]),\n onInput: useCallback(event => {\n if (androidInputManager) {\n androidInputManager.handleInput();\n return;\n } // Flush native operations, as native events will have propogated\n // and we can correctly compare DOM text values in components\n // to stop rendering, so that browser functions like autocorrect\n // and spellcheck work as expected.\n\n\n for (var op of deferredOperations.current) {\n op();\n }\n\n deferredOperations.current = [];\n }, []),\n onBlur: useCallback(event => {\n if (readOnly || state.isUpdatingSelection || !hasEditableTarget(editor, event.target) || isEventHandled(event, attributes.onBlur)) {\n return;\n } // COMPAT: If the current `activeElement` is still the previous\n // one, this is due to the window being blurred when the tab\n // itself becomes unfocused, so we want to abort early to allow to\n // editor to stay focused when the tab becomes focused again.\n\n\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n\n if (state.latestElement === root.activeElement) {\n return;\n }\n\n var {\n relatedTarget\n } = event;\n var el = ReactEditor.toDOMNode(editor, editor); // COMPAT: The event should be ignored if the focus is returning\n // to the editor from an embedded editable element (eg. an <input>\n // element inside a void node).\n\n if (relatedTarget === el) {\n return;\n } // COMPAT: The event should be ignored if the focus is moving from\n // the editor to inside a void node's spacer element.\n\n\n if (isDOMElement(relatedTarget) && relatedTarget.hasAttribute('data-slate-spacer')) {\n return;\n } // COMPAT: The event should be ignored if the focus is moving to a\n // non- editable section of an element that isn't a void node (eg.\n // a list item of the check list example).\n\n\n if (relatedTarget != null && isDOMNode(relatedTarget) && ReactEditor.hasDOMNode(editor, relatedTarget)) {\n var node = ReactEditor.toSlateNode(editor, relatedTarget);\n\n if (Element$1.isElement(node) && !editor.isVoid(node)) {\n return;\n }\n } // COMPAT: Safari doesn't always remove the selection even if the content-\n // editable element no longer has focus. Refer to:\n // https://stackoverflow.com/questions/12353247/force-contenteditable-div-to-stop-accepting-input-after-it-loses-focus-under-web\n\n\n if (IS_SAFARI) {\n var domSelection = root.getSelection();\n domSelection === null || domSelection === void 0 ? void 0 : domSelection.removeAllRanges();\n }\n\n IS_FOCUSED.delete(editor);\n }, [readOnly, attributes.onBlur]),\n onClick: useCallback(event => {\n if (hasTarget(editor, event.target) && !isEventHandled(event, attributes.onClick) && isDOMNode(event.target)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node); // At this time, the Slate document may be arbitrarily different,\n // because onClick handlers can change the document before we get here.\n // Therefore we must check that this path actually exists,\n // and that it still refers to the same node.\n\n if (!Editor.hasPath(editor, path) || Node.get(editor, path) !== node) {\n return;\n }\n\n if (event.detail === TRIPLE_CLICK && path.length >= 1) {\n var blockPath = path;\n\n if (!Editor.isBlock(editor, node)) {\n var _block$;\n\n var block = Editor.above(editor, {\n match: n => Editor.isBlock(editor, n),\n at: path\n });\n blockPath = (_block$ = block === null || block === void 0 ? void 0 : block[1]) !== null && _block$ !== void 0 ? _block$ : path.slice(0, 1);\n }\n\n var range = Editor.range(editor, blockPath);\n Transforms.select(editor, range);\n return;\n }\n\n if (readOnly) {\n return;\n }\n\n var _start = Editor.start(editor, path);\n\n var end = Editor.end(editor, path);\n var startVoid = Editor.void(editor, {\n at: _start\n });\n var endVoid = Editor.void(editor, {\n at: end\n });\n\n if (startVoid && endVoid && Path.equals(startVoid[1], endVoid[1])) {\n var _range = Editor.range(editor, _start);\n\n Transforms.select(editor, _range);\n }\n }\n }, [readOnly, attributes.onClick]),\n onCompositionEnd: useCallback(event => {\n if (hasEditableTarget(editor, event.target)) {\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n\n androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.handleCompositionEnd(event);\n\n if (isEventHandled(event, attributes.onCompositionEnd) || IS_ANDROID) {\n return;\n } // COMPAT: In Chrome, `beforeinput` events for compositions\n // aren't correct and never fire the \"insertFromComposition\"\n // type that we need. So instead, insert whenever a composition\n // ends since it will already have been committed to the DOM.\n\n\n if (!IS_SAFARI && !IS_FIREFOX_LEGACY && !IS_IOS && !IS_QQBROWSER && !IS_WECHATBROWSER && !IS_UC_MOBILE && event.data) {\n var placeholderMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor); // Ensure we insert text with the marks the user was actually seeing\n\n if (placeholderMarks !== undefined) {\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n editor.marks = placeholderMarks;\n }\n\n Editor.insertText(editor, event.data);\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n }\n }\n }\n }, [attributes.onCompositionEnd]),\n onCompositionUpdate: useCallback(event => {\n if (hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onCompositionUpdate)) {\n if (!ReactEditor.isComposing(editor)) {\n setIsComposing(true);\n IS_COMPOSING.set(editor, true);\n }\n }\n }, [attributes.onCompositionUpdate]),\n onCompositionStart: useCallback(event => {\n if (hasEditableTarget(editor, event.target)) {\n androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.handleCompositionStart(event);\n\n if (isEventHandled(event, attributes.onCompositionStart) || IS_ANDROID) {\n return;\n }\n\n setIsComposing(true);\n var {\n selection\n } = editor;\n\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n return;\n }\n\n var inline = Editor.above(editor, {\n match: n => Editor.isInline(editor, n),\n mode: 'highest'\n });\n\n if (inline) {\n var [, inlinePath] = inline;\n\n if (Editor.isEnd(editor, selection.anchor, inlinePath)) {\n var point = Editor.after(editor, inlinePath);\n Transforms.setSelection(editor, {\n anchor: point,\n focus: point\n });\n }\n }\n }\n }\n }, [attributes.onCompositionStart]),\n onCopy: useCallback(event => {\n if (hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onCopy)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'copy');\n }\n }, [attributes.onCopy]),\n onCut: useCallback(event => {\n if (!readOnly && hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onCut)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'cut');\n var {\n selection\n } = editor;\n\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n } else {\n var node = Node.parent(editor, selection.anchor.path);\n\n if (Editor.isVoid(editor, node)) {\n Transforms.delete(editor);\n }\n }\n }\n }\n }, [readOnly, attributes.onCut]),\n onDragOver: useCallback(event => {\n if (hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragOver)) {\n // Only when the target is void, call `preventDefault` to signal\n // that drops are allowed. Editable content is droppable by\n // default, and calling `preventDefault` hides the cursor.\n var node = ReactEditor.toSlateNode(editor, event.target);\n\n if (Editor.isVoid(editor, node)) {\n event.preventDefault();\n }\n }\n }, [attributes.onDragOver]),\n onDragStart: useCallback(event => {\n if (!readOnly && hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragStart)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n var voidMatch = Editor.isVoid(editor, node) || Editor.void(editor, {\n at: path,\n voids: true\n }); // If starting a drag on a void node, make sure it is selected\n // so that it shows up in the selection's fragment.\n\n if (voidMatch) {\n var range = Editor.range(editor, path);\n Transforms.select(editor, range);\n }\n\n state.isDraggingInternally = true;\n ReactEditor.setFragmentData(editor, event.dataTransfer, 'drag');\n }\n }, [readOnly, attributes.onDragStart]),\n onDrop: useCallback(event => {\n if (!readOnly && hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDrop)) {\n event.preventDefault(); // Keep a reference to the dragged range before updating selection\n\n var draggedRange = editor.selection; // Find the range where the drop happened\n\n var range = ReactEditor.findEventRange(editor, event);\n var data = event.dataTransfer;\n Transforms.select(editor, range);\n\n if (state.isDraggingInternally) {\n if (draggedRange && !Range.equals(draggedRange, range) && !Editor.void(editor, {\n at: range,\n voids: true\n })) {\n Transforms.delete(editor, {\n at: draggedRange\n });\n }\n }\n\n ReactEditor.insertData(editor, data); // When dragging from another source into the editor, it's possible\n // that the current editor does not have focus.\n\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n }\n\n state.isDraggingInternally = false;\n }, [readOnly, attributes.onDrop]),\n onDragEnd: useCallback(event => {\n if (!readOnly && state.isDraggingInternally && attributes.onDragEnd && hasTarget(editor, event.target)) {\n attributes.onDragEnd(event);\n } // When dropping on a different droppable element than the current editor,\n // `onDrop` is not called. So we need to clean up in `onDragEnd` instead.\n // Note: `onDragEnd` is only called when `onDrop` is not called\n\n\n state.isDraggingInternally = false;\n }, [readOnly, attributes.onDragEnd]),\n onFocus: useCallback(event => {\n if (!readOnly && !state.isUpdatingSelection && hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onFocus)) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n state.latestElement = root.activeElement; // COMPAT: If the editor has nested editable elements, the focus\n // can go to them. In Firefox, this must be prevented because it\n // results in issues with keyboard navigation. (2017/03/30)\n\n if (IS_FIREFOX && event.target !== el) {\n el.focus();\n return;\n }\n\n IS_FOCUSED.set(editor, true);\n }\n }, [readOnly, attributes.onFocus]),\n onKeyDown: useCallback(event => {\n if (!readOnly && hasEditableTarget(editor, event.target)) {\n androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.handleKeyDown(event);\n var {\n nativeEvent\n } = event; // COMPAT: The composition end event isn't fired reliably in all browsers,\n // so we sometimes might end up stuck in a composition state even though we\n // aren't composing any more.\n\n if (ReactEditor.isComposing(editor) && nativeEvent.isComposing === false) {\n IS_COMPOSING.set(editor, false);\n setIsComposing(false);\n }\n\n if (isEventHandled(event, attributes.onKeyDown) || ReactEditor.isComposing(editor)) {\n return;\n }\n\n var {\n selection\n } = editor;\n var element = editor.children[selection !== null ? selection.focus.path[0] : 0];\n var isRTL = getDirection(Node.string(element)) === 'rtl'; // COMPAT: Since we prevent the default behavior on\n // `beforeinput` events, the browser doesn't think there's ever\n // any history stack to undo or redo, so we have to manage these\n // hotkeys ourselves. (2019/11/06)\n\n if (Hotkeys.isRedo(nativeEvent)) {\n event.preventDefault();\n var maybeHistoryEditor = editor;\n\n if (typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n }\n\n return;\n }\n\n if (Hotkeys.isUndo(nativeEvent)) {\n event.preventDefault();\n var _maybeHistoryEditor = editor;\n\n if (typeof _maybeHistoryEditor.undo === 'function') {\n _maybeHistoryEditor.undo();\n }\n\n return;\n } // COMPAT: Certain browsers don't handle the selection updates\n // properly. In Chrome, the selection isn't properly extended.\n // And in Firefox, the selection isn't properly collapsed.\n // (2017/10/17)\n\n\n if (Hotkeys.isMoveLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n reverse: true\n });\n return;\n }\n\n if (Hotkeys.isMoveLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line'\n });\n return;\n }\n\n if (Hotkeys.isExtendLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus',\n reverse: true\n });\n return;\n }\n\n if (Hotkeys.isExtendLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus'\n });\n return;\n } // COMPAT: If a void node is selected, or a zero-width text node\n // adjacent to an inline is selected, we need to handle these\n // hotkeys manually because browsers won't be able to skip over\n // the void node with the zero-width space not being an empty\n // string.\n\n\n if (Hotkeys.isMoveBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: !isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: 'start'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isMoveForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: 'end'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isMoveWordBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n\n Transforms.move(editor, {\n unit: 'word',\n reverse: !isRTL\n });\n return;\n }\n\n if (Hotkeys.isMoveWordForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n\n Transforms.move(editor, {\n unit: 'word',\n reverse: isRTL\n });\n return;\n } // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to guessing at the input intention for hotkeys.\n // COMPAT: In iOS, some of these hotkeys are handled in the\n\n\n if (!HAS_BEFORE_INPUT_SUPPORT) {\n // We don't have a core behavior for these, but they change the\n // DOM if we don't prevent them, so we have to.\n if (Hotkeys.isBold(nativeEvent) || Hotkeys.isItalic(nativeEvent) || Hotkeys.isTransposeCharacter(nativeEvent)) {\n event.preventDefault();\n return;\n }\n\n if (Hotkeys.isSoftBreak(nativeEvent)) {\n event.preventDefault();\n Editor.insertSoftBreak(editor);\n return;\n }\n\n if (Hotkeys.isSplitBlock(nativeEvent)) {\n event.preventDefault();\n Editor.insertBreak(editor);\n return;\n }\n\n if (Hotkeys.isDeleteBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor);\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor);\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteLineBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteLineForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteWordBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteWordForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n }\n\n return;\n }\n } else {\n if (IS_CHROME || IS_SAFARI) {\n // COMPAT: Chrome and Safari support `beforeinput` event but do not fire\n // an event when deleting backwards in a selected void inline node\n if (selection && (Hotkeys.isDeleteBackward(nativeEvent) || Hotkeys.isDeleteForward(nativeEvent)) && Range.isCollapsed(selection)) {\n var currentNode = Node.parent(editor, selection.anchor.path);\n\n if (Element$1.isElement(currentNode) && Editor.isVoid(editor, currentNode) && (Editor.isInline(editor, currentNode) || Editor.isBlock(editor, currentNode))) {\n event.preventDefault();\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n return;\n }\n }\n }\n }\n }\n }, [readOnly, attributes.onKeyDown]),\n onPaste: useCallback(event => {\n if (!readOnly && hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onPaste)) {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's `onPaste` here instead.\n // COMPAT: Firefox, Chrome and Safari don't emit `beforeinput` events\n // when \"paste without formatting\" is used, so fallback. (2020/02/20)\n if (!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent)) {\n event.preventDefault();\n ReactEditor.insertData(editor, event.clipboardData);\n }\n }\n }, [readOnly, attributes.onPaste])\n }), /*#__PURE__*/React.createElement(Children, {\n decorations: decorations,\n node: editor,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: editor.selection\n })))));\n};\n/**\r\n * The default placeholder element\r\n */\n\nvar DefaultPlaceholder = _ref => {\n var {\n attributes,\n children\n } = _ref;\n return (\n /*#__PURE__*/\n // COMPAT: Artificially add a line-break to the end on the placeholder element\n // to prevent Android IMEs to pick up its content in autocorrect and to auto-capitalize the first letter\n React.createElement(\"span\", Object.assign({}, attributes), children, IS_ANDROID && /*#__PURE__*/React.createElement(\"br\", null))\n );\n};\n/**\r\n * A default memoized decorate function.\r\n */\n\nvar defaultDecorate = () => [];\n/**\r\n * A default implement to scroll dom range into view.\r\n */\n\nvar defaultScrollSelectionIntoView = (editor, domRange) => {\n // This was affecting the selection of multiple blocks and dragging behavior,\n // so enabled only if the selection has been collapsed.\n if (!editor.selection || editor.selection && Range.isCollapsed(editor.selection)) {\n var leafEl = domRange.startContainer.parentElement;\n leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange);\n scrollIntoView(leafEl, {\n scrollMode: 'if-needed'\n }); // @ts-expect-error an unorthodox delete D:\n\n delete leafEl.getBoundingClientRect;\n }\n};\n/**\r\n * Check if the target is in the editor.\r\n */\n\n\nvar hasTarget = (editor, target) => {\n return isDOMNode(target) && ReactEditor.hasDOMNode(editor, target);\n};\n/**\r\n * Check if the target is editable and in the editor.\r\n */\n\nvar hasEditableTarget = (editor, target) => {\n return isDOMNode(target) && ReactEditor.hasDOMNode(editor, target, {\n editable: true\n });\n};\n/**\r\n * Check if the target is inside void and in an non-readonly editor.\r\n */\n\nvar isTargetInsideNonReadonlyVoid = (editor, target) => {\n if (IS_READ_ONLY.get(editor)) return false;\n var slateNode = hasTarget(editor, target) && ReactEditor.toSlateNode(editor, target);\n return Editor.isVoid(editor, slateNode);\n};\n/**\r\n * Check if an event is overrided by a handler.\r\n */\n\nvar isEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n } // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n\n\n var shouldTreatEventAsHandled = handler(event);\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n\n return event.isDefaultPrevented() || event.isPropagationStopped();\n};\n/**\r\n * Check if a DOM event is overrided by a handler.\r\n */\n\nvar isDOMEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n } // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n\n\n var shouldTreatEventAsHandled = handler(event);\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n\n return event.defaultPrevented;\n};\n\n/**\r\n * A React context for sharing the `focused` state of the editor.\r\n */\n\nvar FocusedContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `focused` state of the editor.\r\n */\n\nvar useFocused = () => {\n return useContext(FocusedContext);\n};\n\nfunction isError(error) {\n return error instanceof Error;\n}\n/**\r\n * A React context for sharing the editor selector context in a way to control rerenders\r\n */\n\n\nvar SlateSelectorContext = /*#__PURE__*/createContext({});\n\nvar refEquality = (a, b) => a === b;\n/**\r\n * use redux style selectors to prevent rerendering on every keystroke.\r\n * Bear in mind rerendering can only prevented if the returned value is a value type or for reference types (e.g. objects and arrays) add a custom equality function.\r\n *\r\n * Example:\r\n * ```\r\n * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection));\r\n * ```\r\n */\n\n\nfunction useSlateSelector(selector) {\n var equalityFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : refEquality;\n var [, forceRender] = useReducer(s => s + 1, 0);\n var context = useContext(SlateSelectorContext);\n\n if (!context) {\n throw new Error(\"The `useSlateSelector` hook must be used inside the <Slate> component's context.\");\n }\n\n var {\n getSlate,\n addEventListener\n } = context;\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef(() => null);\n var latestSelectedState = useRef(null);\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(getSlate());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current && isError(err)) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\".concat(latestSubscriptionCallbackError.current.stack, \"\\n\\n\");\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(() => {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(getSlate());\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 var unsubscribe = addEventListener(checkForUpdates);\n checkForUpdates();\n return () => unsubscribe();\n }, // don't rerender on equalityFn change since we want to be able to define it inline\n [addEventListener, getSlate]);\n return selectedState;\n}\n/**\r\n * Create selector context with editor updating on every editor change\r\n */\n\nfunction getSelectorContext(editor) {\n var eventListeners = useRef([]).current;\n var slateRef = useRef({\n editor\n }).current;\n var onChange = useCallback(editor => {\n slateRef.editor = editor;\n eventListeners.forEach(listener => listener(editor));\n }, []);\n var selectorContext = useMemo(() => {\n return {\n getSlate: () => slateRef.editor,\n addEventListener: callback => {\n eventListeners.push(callback);\n return () => {\n eventListeners.splice(eventListeners.indexOf(callback), 1);\n };\n }\n };\n }, [eventListeners, slateRef]);\n return {\n selectorContext,\n onChange\n };\n}\n\nvar _excluded = [\"editor\", \"children\", \"onChange\", \"value\"];\n/**\r\n * A wrapper around the provider to handle `onChange` events, because the editor\r\n * is a mutable singleton so it won't ever register as \"changed\" otherwise.\r\n */\n\nvar Slate = props => {\n var {\n editor,\n children,\n onChange,\n value\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n\n var unmountRef = useRef(false);\n var [context, setContext] = React.useState(() => {\n if (!Node.isNodeList(value)) {\n throw new Error(\"[Slate] value is invalid! Expected a list of elements\" + \"but got: \".concat(Scrubber.stringify(value)));\n }\n\n if (!Editor.isEditor(editor)) {\n throw new Error(\"[Slate] editor is invalid! you passed:\" + \"\".concat(Scrubber.stringify(editor)));\n }\n\n editor.children = value;\n Object.assign(editor, rest);\n return {\n v: 0,\n editor\n };\n });\n var {\n selectorContext,\n onChange: handleSelectorChange\n } = getSelectorContext(editor);\n var onContextChange = useCallback(() => {\n if (onChange) {\n onChange(editor.children);\n }\n\n setContext(prevContext => ({\n v: prevContext.v + 1,\n editor\n }));\n handleSelectorChange(editor);\n }, [onChange]);\n EDITOR_TO_ON_CHANGE.set(editor, onContextChange);\n useEffect(() => {\n return () => {\n EDITOR_TO_ON_CHANGE.set(editor, () => {});\n unmountRef.current = true;\n };\n }, []);\n var [isFocused, setIsFocused] = useState(ReactEditor.isFocused(editor));\n useEffect(() => {\n setIsFocused(ReactEditor.isFocused(editor));\n });\n useIsomorphicLayoutEffect(() => {\n var fn = () => setIsFocused(ReactEditor.isFocused(editor));\n\n if (IS_REACT_VERSION_17_OR_ABOVE) {\n // In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.\n // Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)\n // to return the correct value, we have to listen to the focusin and focusout events without useCapture here.\n document.addEventListener('focusin', fn);\n document.addEventListener('focusout', fn);\n return () => {\n document.removeEventListener('focusin', fn);\n document.removeEventListener('focusout', fn);\n };\n } else {\n document.addEventListener('focus', fn, true);\n document.addEventListener('blur', fn, true);\n return () => {\n document.removeEventListener('focus', fn, true);\n document.removeEventListener('blur', fn, true);\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(SlateSelectorContext.Provider, {\n value: selectorContext\n }, /*#__PURE__*/React.createElement(SlateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EditorContext.Provider, {\n value: context.editor\n }, /*#__PURE__*/React.createElement(FocusedContext.Provider, {\n value: isFocused\n }, children))));\n};\n\n/**\r\n * Get the current editor object from the React context.\r\n * @deprecated Use useSlateStatic instead.\r\n */\n\nvar useEditor = () => {\n var editor = useContext(EditorContext);\n\n if (!editor) {\n throw new Error(\"The `useEditor` hook must be used inside the <Slate> component's context.\");\n }\n\n return editor;\n};\n\n/**\r\n * Get the current slate selection.\r\n * Only triggers a rerender when the selection actually changes\r\n */\n\nvar useSlateSelection = () => {\n return useSlateSelector(editor => editor.selection, isSelectionEqual);\n};\n\nvar isSelectionEqual = (a, b) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\r\n * Utilities for single-line deletion\r\n */\n\nvar doRectsIntersect = (rect, compareRect) => {\n var middle = (compareRect.top + compareRect.bottom) / 2;\n return rect.top <= middle && rect.bottom >= middle;\n};\n\nvar areRangesSameLine = (editor, range1, range2) => {\n var rect1 = ReactEditor.toDOMRange(editor, range1).getBoundingClientRect();\n var rect2 = ReactEditor.toDOMRange(editor, range2).getBoundingClientRect();\n return doRectsIntersect(rect1, rect2) && doRectsIntersect(rect2, rect1);\n};\n/**\r\n * A helper utility that returns the end portion of a `Range`\r\n * which is located on a single line.\r\n *\r\n * @param {Editor} editor The editor object to compare against\r\n * @param {Range} parentRange The parent range to compare against\r\n * @returns {Range} A valid portion of the parentRange which is one a single line\r\n */\n\n\nvar findCurrentLineRange = (editor, parentRange) => {\n var parentRangeBoundary = Editor.range(editor, Range.end(parentRange));\n var positions = Array.from(Editor.positions(editor, {\n at: parentRange\n }));\n var left = 0;\n var right = positions.length;\n var middle = Math.floor(right / 2);\n\n if (areRangesSameLine(editor, Editor.range(editor, positions[left]), parentRangeBoundary)) {\n return Editor.range(editor, positions[left], parentRangeBoundary);\n }\n\n if (positions.length < 2) {\n return Editor.range(editor, positions[positions.length - 1], parentRangeBoundary);\n }\n\n while (middle !== positions.length && middle !== left) {\n if (areRangesSameLine(editor, Editor.range(editor, positions[middle]), parentRangeBoundary)) {\n right = middle;\n } else {\n left = middle;\n }\n\n middle = Math.floor((left + right) / 2);\n }\n\n return Editor.range(editor, positions[right], parentRangeBoundary);\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * `withReact` adds React and DOM specific behaviors to the editor.\r\n *\r\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\r\n * this plugin.\r\n *\r\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\r\n */\n\nvar withReact = editor => {\n var e = editor;\n var {\n apply,\n onChange,\n deleteBackward,\n addMark,\n removeMark\n } = e; // The WeakMap which maps a key to a specific HTMLElement must be scoped to the editor instance to\n // avoid collisions between editors in the DOM that share the same value.\n\n EDITOR_TO_KEY_TO_ELEMENT.set(e, new WeakMap());\n\n e.addMark = (key, value) => {\n var _EDITOR_TO_SCHEDULE_F, _EDITOR_TO_PENDING_DI;\n\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(e)) === null || _EDITOR_TO_SCHEDULE_F === void 0 ? void 0 : _EDITOR_TO_SCHEDULE_F();\n\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI !== void 0 && _EDITOR_TO_PENDING_DI.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n\n EDITOR_TO_USER_MARKS.delete(e);\n addMark(key, value);\n };\n\n e.removeMark = key => {\n var _EDITOR_TO_PENDING_DI2;\n\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI2 !== void 0 && _EDITOR_TO_PENDING_DI2.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n\n EDITOR_TO_USER_MARKS.delete(e);\n removeMark(key);\n };\n\n e.deleteBackward = unit => {\n if (unit !== 'line') {\n return deleteBackward(unit);\n }\n\n if (e.selection && Range.isCollapsed(e.selection)) {\n var parentBlockEntry = Editor.above(e, {\n match: n => Editor.isBlock(e, n),\n at: e.selection\n });\n\n if (parentBlockEntry) {\n var [, parentBlockPath] = parentBlockEntry;\n var parentElementRange = Editor.range(e, parentBlockPath, e.selection.anchor);\n var currentLineRange = findCurrentLineRange(e, parentElementRange);\n\n if (!Range.isCollapsed(currentLineRange)) {\n Transforms.delete(e, {\n at: currentLineRange\n });\n }\n }\n }\n }; // This attempts to reset the NODE_TO_KEY entry to the correct value\n // as apply() changes the object reference and hence invalidates the NODE_TO_KEY entry\n\n\n e.apply = op => {\n var matches = [];\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(e);\n\n if (pendingDiffs !== null && pendingDiffs !== void 0 && pendingDiffs.length) {\n var transformed = pendingDiffs.map(textDiff => transformTextDiff(textDiff, op)).filter(Boolean);\n EDITOR_TO_PENDING_DIFFS.set(e, transformed);\n }\n\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(e);\n\n if (pendingSelection) {\n EDITOR_TO_PENDING_SELECTION.set(e, transformPendingRange(e, pendingSelection, op));\n }\n\n var pendingAction = EDITOR_TO_PENDING_ACTION.get(e);\n\n if (pendingAction !== null && pendingAction !== void 0 && pendingAction.at) {\n var at = Point.isPoint(pendingAction === null || pendingAction === void 0 ? void 0 : pendingAction.at) ? transformPendingPoint(e, pendingAction.at, op) : transformPendingRange(e, pendingAction.at, op);\n EDITOR_TO_PENDING_ACTION.set(e, at ? _objectSpread(_objectSpread({}, pendingAction), {}, {\n at\n }) : null);\n }\n\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n case 'split_node':\n {\n matches.push(...getMatches(e, op.path));\n break;\n }\n\n case 'set_selection':\n {\n var _EDITOR_TO_USER_SELEC;\n\n // Selection was manually set, don't restore the user selection after the change.\n (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(e)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(e);\n break;\n }\n\n case 'insert_node':\n case 'remove_node':\n {\n matches.push(...getMatches(e, Path.parent(op.path)));\n break;\n }\n\n case 'merge_node':\n {\n var prevPath = Path.previous(op.path);\n matches.push(...getMatches(e, prevPath));\n break;\n }\n\n case 'move_node':\n {\n var commonPath = Path.common(Path.parent(op.path), Path.parent(op.newPath));\n matches.push(...getMatches(e, commonPath));\n break;\n }\n }\n\n apply(op);\n\n for (var [path, key] of matches) {\n var [node] = Editor.node(e, path);\n NODE_TO_KEY.set(node, key);\n }\n };\n\n e.setFragmentData = data => {\n var {\n selection\n } = e;\n\n if (!selection) {\n return;\n }\n\n var [start, end] = Range.edges(selection);\n var startVoid = Editor.void(e, {\n at: start.path\n });\n var endVoid = Editor.void(e, {\n at: end.path\n });\n\n if (Range.isCollapsed(selection) && !startVoid) {\n return;\n } // Create a fake selection so that we can add a Base64-encoded copy of the\n // fragment to the HTML, to decode on future pastes.\n\n\n var domRange = ReactEditor.toDOMRange(e, selection);\n var contents = domRange.cloneContents();\n var attach = contents.childNodes[0]; // Make sure attach is non-empty, since empty nodes will not get copied.\n\n contents.childNodes.forEach(node => {\n if (node.textContent && node.textContent.trim() !== '') {\n attach = node;\n }\n }); // COMPAT: If the end node is a void node, we need to move the end of the\n // range from the void node's spacer span, to the end of the void node's\n // content, since the spacer is before void's content in the DOM.\n\n if (endVoid) {\n var [voidNode] = endVoid;\n var r = domRange.cloneRange();\n var domNode = ReactEditor.toDOMNode(e, voidNode);\n r.setEndAfter(domNode);\n contents = r.cloneContents();\n } // COMPAT: If the start node is a void node, we need to attach the encoded\n // fragment to the void node's content node instead of the spacer, because\n // attaching it to empty `<div>/<span>` nodes will end up having it erased by\n // most browsers. (2018/04/27)\n\n\n if (startVoid) {\n attach = contents.querySelector('[data-slate-spacer]');\n } // Remove any zero-width space spans from the cloned DOM so that they don't\n // show up elsewhere when pasted.\n\n\n Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(zw => {\n var isNewline = zw.getAttribute('data-slate-zero-width') === 'n';\n zw.textContent = isNewline ? '\\n' : '';\n }); // Set a `data-slate-fragment` attribute on a non-empty node, so it shows up\n // in the HTML, and can be used for intra-Slate pasting. If it's a text\n // node, wrap it in a `<span>` so we have something to set an attribute on.\n\n if (isDOMText(attach)) {\n var span = attach.ownerDocument.createElement('span'); // COMPAT: In Chrome and Safari, if we don't add the `white-space` style\n // then leading and trailing spaces will be ignored. (2017/09/21)\n\n span.style.whiteSpace = 'pre';\n span.appendChild(attach);\n contents.appendChild(span);\n attach = span;\n }\n\n var fragment = e.getFragment();\n var string = JSON.stringify(fragment);\n var encoded = window.btoa(encodeURIComponent(string));\n attach.setAttribute('data-slate-fragment', encoded);\n data.setData('application/x-slate-fragment', encoded); // Add the content to a <div> so that we can get its inner HTML.\n\n var div = contents.ownerDocument.createElement('div');\n div.appendChild(contents);\n div.setAttribute('hidden', 'true');\n contents.ownerDocument.body.appendChild(div);\n data.setData('text/html', div.innerHTML);\n data.setData('text/plain', getPlainText(div));\n contents.ownerDocument.body.removeChild(div);\n return data;\n };\n\n e.insertData = data => {\n if (!e.insertFragmentData(data)) {\n e.insertTextData(data);\n }\n };\n\n e.insertFragmentData = data => {\n /**\r\n * Checking copied fragment from application/x-slate-fragment or data-slate-fragment\r\n */\n var fragment = data.getData('application/x-slate-fragment') || getSlateFragmentAttribute(data);\n\n if (fragment) {\n var decoded = decodeURIComponent(window.atob(fragment));\n var parsed = JSON.parse(decoded);\n e.insertFragment(parsed);\n return true;\n }\n\n return false;\n };\n\n e.insertTextData = data => {\n var text = data.getData('text/plain');\n\n if (text) {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var split = false;\n\n for (var line of lines) {\n if (split) {\n Transforms.splitNodes(e, {\n always: true\n });\n }\n\n e.insertText(line);\n split = true;\n }\n\n return true;\n }\n\n return false;\n };\n\n e.onChange = () => {\n // COMPAT: React doesn't batch `setState` hook calls, which means that the\n // children and selection can get out of sync for one render pass. So we\n // have to use this unstable API to ensure it batches them. (2019/12/03)\n // https://github.com/facebook/react/issues/14259#issuecomment-439702367\n ReactDOM.unstable_batchedUpdates(() => {\n var onContextChange = EDITOR_TO_ON_CHANGE.get(e);\n\n if (onContextChange) {\n onContextChange();\n }\n\n onChange();\n });\n };\n\n return e;\n};\n\nvar getMatches = (e, path) => {\n var matches = [];\n\n for (var [n, p] of Editor.levels(e, {\n at: path\n })) {\n var key = ReactEditor.findKey(e, n);\n matches.push([p, key]);\n }\n\n return matches;\n};\n\nexport { DefaultElement, DefaultLeaf, DefaultPlaceholder, Editable, ReactEditor, Slate, useEditor, useFocused, useReadOnly, useSelected, useSlate, useSlateSelection, useSlateSelector, useSlateStatic, useSlateWithV, withReact };\n//# sourceMappingURL=index.es.js.map\n",null,null,null,null,null,null,null,null,null,null,"!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.reactTextMask=t(require(\"react\")):e.reactTextMask=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t,r){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function a(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.conformToMask=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),f=r(3);Object.defineProperty(t,\"conformToMask\",{enumerable:!0,get:function(){return n(f).default}});var c=r(11),p=n(c),d=r(9),h=n(d),v=r(5),y=n(v),m=r(2),b=function(e){function t(){var e;i(this,t);for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];var u=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n)));return u.setRef=u.setRef.bind(u),u.onBlur=u.onBlur.bind(u),u.onChange=u.onChange.bind(u),u}return u(t,e),l(t,[{key:\"setRef\",value:function(e){this.inputElement=e}},{key:\"initTextMask\",value:function(){var e=this.props,t=this.props.value;this.textMaskInputElement=(0,y.default)(s({inputElement:this.inputElement},e)),this.textMaskInputElement.update(t)}},{key:\"componentDidMount\",value:function(){this.initTextMask()}},{key:\"componentDidUpdate\",value:function(e){var t=this.props,r=t.value,n=t.pipe,o=t.mask,i=t.guide,a=t.placeholderChar,u=t.showMask,s={guide:i,placeholderChar:a,showMask:u},l=\"function\"==typeof n&&\"function\"==typeof e.pipe?n.toString()!==e.pipe.toString():(0,m.isNil)(n)&&!(0,m.isNil)(e.pipe)||!(0,m.isNil)(n)&&(0,m.isNil)(e.pipe),f=o.toString()!==e.mask.toString(),c=Object.keys(s).some(function(t){return s[t]!==e[t]})||f||l,p=r!==this.inputElement.value;(p||c)&&this.initTextMask()}},{key:\"render\",value:function e(){var t=this.props,e=t.render,r=o(t,[\"render\"]);return delete r.mask,delete r.guide,delete r.pipe,delete r.placeholderChar,delete r.keepCharPositions,delete r.value,delete r.onBlur,delete r.onChange,delete r.showMask,e(this.setRef,s({onBlur:this.onBlur,onChange:this.onChange,defaultValue:this.props.value},r))}},{key:\"onChange\",value:function(e){this.textMaskInputElement.update(),\"function\"==typeof this.props.onChange&&this.props.onChange(e)}},{key:\"onBlur\",value:function(e){\"function\"==typeof this.props.onBlur&&this.props.onBlur(e)}}]),t}(p.default.PureComponent);t.default=b,b.propTypes={mask:h.default.oneOfType([h.default.array,h.default.func,h.default.bool,h.default.shape({mask:h.default.oneOfType([h.default.array,h.default.func]),pipe:h.default.func})]).isRequired,guide:h.default.bool,value:h.default.oneOfType([h.default.string,h.default.number]),pipe:h.default.func,placeholderChar:h.default.string,keepCharPositions:h.default.bool,showMask:h.default.bool},b.defaultProps={render:function(e,t){return p.default.createElement(\"input\",s({ref:e},t))}}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.placeholderChar=\"_\",t.strFunction=\"function\"},function(e,t,r){\"use strict\";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.placeholderChar;if(!o(e))throw new Error(\"Text-mask:convertMaskToPlaceholder; The mask property must be an array.\");if(e.indexOf(t)!==-1)throw new Error(\"Placeholder character must not be used as part of the mask. Please specify a character that is not present in your mask as your placeholder character.\\n\\n\"+(\"The placeholder character that was received is: \"+JSON.stringify(t)+\"\\n\\n\")+(\"The mask that was received is: \"+JSON.stringify(e)));return e.map(function(e){return e instanceof RegExp?t:e}).join(\"\")}function o(e){return Array.isArray&&Array.isArray(e)||e instanceof Array}function i(e){return\"string\"==typeof e||e instanceof String}function a(e){return\"number\"==typeof e&&void 0===e.length&&!isNaN(e)}function u(e){return\"undefined\"==typeof e||null===e}function s(e){for(var t=[],r=void 0;r=e.indexOf(c),r!==-1;)t.push(r),e.splice(r,1);return{maskWithoutCaretTraps:e,indexes:t}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.convertMaskToPlaceholder=n,t.isArray=o,t.isString=i,t.isNumber=a,t.isNil=u,t.processCaretTraps=s;var l=r(1),f=[],c=\"[]\"},function(e,t,r){\"use strict\";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(0,i.isArray)(t)){if((\"undefined\"==typeof t?\"undefined\":o(t))!==a.strFunction)throw new Error(\"Text-mask:conformToMask; The mask property must be an array.\");t=t(e,r),t=(0,i.processCaretTraps)(t).maskWithoutCaretTraps}var n=r.guide,l=void 0===n||n,f=r.previousConformedValue,c=void 0===f?s:f,p=r.placeholderChar,d=void 0===p?a.placeholderChar:p,h=r.placeholder,v=void 0===h?(0,i.convertMaskToPlaceholder)(t,d):h,y=r.currentCaretPosition,m=r.keepCharPositions,b=l===!1&&void 0!==c,g=e.length,k=c.length,C=v.length,O=t.length,T=g-k,P=T>0,x=y+(P?-T:0),w=x+Math.abs(T);if(m===!0&&!P){for(var S=s,_=x;_<w;_++)v[_]===d&&(S+=d);e=e.slice(0,x)+S+e.slice(x,g)}for(var M=e.split(s).map(function(e,t){return{char:e,isNew:t>=x&&t<w}}),j=g-1;j>=0;j--){var E=M[j].char;if(E!==d){var R=j>=x&&k===O;E===v[R?j-T:j]&&M.splice(j,1)}}var V=s,N=!1;e:for(var A=0;A<C;A++){var B=v[A];if(B===d){if(M.length>0)for(;M.length>0;){var I=M.shift(),F=I.char,q=I.isNew;if(F===d&&b!==!0){V+=d;continue e}if(t[A].test(F)){if(m===!0&&q!==!1&&c!==s&&l!==!1&&P){for(var D=M.length,L=null,W=0;W<D;W++){var J=M[W];if(J.char!==d&&J.isNew===!1)break;if(J.char===d){L=W;break}}null!==L?(V+=F,M.splice(L,1)):A--}else V+=F;continue e}N=!0}b===!1&&(V+=v.substr(A,C));break}V+=B}if(b&&P===!1){for(var U=null,H=0;H<V.length;H++)v[H]===d&&(U=H);V=null!==U?V.substr(0,U+1):s}return{conformedValue:V,meta:{someCharsRejected:N}}}Object.defineProperty(t,\"__esModule\",{value:!0});var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=n;var i=r(2),a=r(1),u=[],s=\"\"},function(e,t){\"use strict\";function r(e){var t=e.previousConformedValue,r=void 0===t?o:t,i=e.previousPlaceholder,a=void 0===i?o:i,u=e.currentCaretPosition,s=void 0===u?0:u,l=e.conformedValue,f=e.rawValue,c=e.placeholderChar,p=e.placeholder,d=e.indexesOfPipedChars,h=void 0===d?n:d,v=e.caretTrapIndexes,y=void 0===v?n:v;if(0===s||!f.length)return 0;var m=f.length,b=r.length,g=p.length,k=l.length,C=m-b,O=C>0,T=0===b,P=C>1&&!O&&!T;if(P)return s;var x=O&&(r===l||l===p),w=0,S=void 0,_=void 0;if(x)w=s-C;else{var M=l.toLowerCase(),j=f.toLowerCase(),E=j.substr(0,s).split(o),R=E.filter(function(e){return M.indexOf(e)!==-1});_=R[R.length-1];var V=a.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,N=p.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,A=N!==V,B=void 0!==a[R.length-1]&&void 0!==p[R.length-2]&&a[R.length-1]!==c&&a[R.length-1]!==p[R.length-1]&&a[R.length-1]===p[R.length-2];!O&&(A||B)&&V>0&&p.indexOf(_)>-1&&void 0!==f[s]&&(S=!0,_=f[s]);for(var I=h.map(function(e){return M[e]}),F=I.filter(function(e){return e===_}).length,q=R.filter(function(e){return e===_}).length,D=p.substr(0,p.indexOf(c)).split(o).filter(function(e,t){return e===_&&f[t]!==e}).length,L=D+q+F+(S?1:0),W=0,J=0;J<k;J++){var U=M[J];if(w=J+1,U===_&&W++,W>=L)break}}if(O){for(var H=w,Y=w;Y<=g;Y++)if(p[Y]===c&&(H=Y),p[Y]===c||y.indexOf(Y)!==-1||Y===g)return H}else if(S){for(var z=w-1;z>=0;z--)if(l[z]===_||y.indexOf(z)!==-1||0===z)return z}else for(var G=w;G>=0;G--)if(p[G-1]===c||y.indexOf(G)!==-1||0===G)return G}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=r;var n=[],o=\"\"},function(e,t,r){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t={previousConformedValue:void 0,previousPlaceholder:void 0};return{state:t,update:function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=n.inputElement,l=n.mask,c=n.guide,y=n.pipe,b=n.placeholderChar,g=void 0===b?h.placeholderChar:b,k=n.keepCharPositions,C=void 0!==k&&k,O=n.showMask,T=void 0!==O&&O;if(\"undefined\"==typeof r&&(r=o.value),r!==t.previousConformedValue){(\"undefined\"==typeof l?\"undefined\":s(l))===m&&void 0!==l.pipe&&void 0!==l.mask&&(y=l.pipe,l=l.mask);var P=void 0,x=void 0;if(l instanceof Array&&(P=(0,d.convertMaskToPlaceholder)(l,g)),l!==!1){var w=a(r),S=o.selectionEnd,_=t.previousConformedValue,M=t.previousPlaceholder,j=void 0;if((\"undefined\"==typeof l?\"undefined\":s(l))===h.strFunction){if(x=l(w,{currentCaretPosition:S,previousConformedValue:_,placeholderChar:g}),x===!1)return;var E=(0,d.processCaretTraps)(x),R=E.maskWithoutCaretTraps,V=E.indexes;x=R,j=V,P=(0,d.convertMaskToPlaceholder)(x,g)}else x=l;var N={previousConformedValue:_,guide:c,placeholderChar:g,pipe:y,placeholder:P,currentCaretPosition:S,keepCharPositions:C},A=(0,p.default)(w,x,N),B=A.conformedValue,I=(\"undefined\"==typeof y?\"undefined\":s(y))===h.strFunction,F={};I&&(F=y(B,u({rawValue:w},N)),F===!1?F={value:_,rejected:!0}:(0,d.isString)(F)&&(F={value:F}));var q=I?F.value:B,D=(0,f.default)({previousConformedValue:_,previousPlaceholder:M,conformedValue:q,placeholder:P,rawValue:w,currentCaretPosition:S,placeholderChar:g,indexesOfPipedChars:F.indexesOfPipedChars,caretTrapIndexes:j}),L=q===P&&0===D,W=T?P:v,J=L?W:q;t.previousConformedValue=J,t.previousPlaceholder=P,o.value!==J&&(o.value=J,i(o,D))}}}}}function i(e,t){document.activeElement===e&&(b?g(function(){return e.setSelectionRange(t,t,y)},0):e.setSelectionRange(t,t,y))}function a(e){if((0,d.isString)(e))return e;if((0,d.isNumber)(e))return String(e);if(void 0===e||null===e)return v;throw new Error(\"The 'value' provided to Text Mask needs to be a string or a number. The value received was:\\n\\n \"+JSON.stringify(e))}Object.defineProperty(t,\"__esModule\",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=o;var l=r(4),f=n(l),c=r(3),p=n(c),d=r(2),h=r(1),v=\"\",y=\"none\",m=\"object\",b=\"undefined\"!=typeof navigator&&/Android/i.test(navigator.userAgent),g=\"undefined\"!=typeof requestAnimationFrame?requestAnimationFrame:setTimeout},function(e,t){\"use strict\";function r(e){return function(){return e}}var n=function(){};n.thatReturns=r,n.thatReturnsFalse=r(!1),n.thatReturnsTrue=r(!0),n.thatReturnsNull=r(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},function(e,t,r){\"use strict\";function n(e,t,r,n,i,a,u,s){if(o(t),!e){var l;if(void 0===t)l=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var f=[r,n,i,a,u,s],c=0;l=new Error(t.replace(/%s/g,function(){return f[c++]})),l.name=\"Invariant Violation\"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=n},function(e,t,r){\"use strict\";var n=r(6),o=r(7),i=r(10);e.exports=function(){function e(e,t,r,n,a,u){u!==i&&o(!1,\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\")}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return r.checkPropTypes=n,r.PropTypes=r,r}},function(e,t,r){\"use strict\";\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e.exports=r(8)()},function(e,t){\"use strict\";var r=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";e.exports=r},function(t,r){t.exports=e}])});","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.emailMask=t():e.emailMask=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var u=n[r]={exports:{},id:r,loaded:!1};return e[r].call(u.exports,u,u.exports,t),u.loaded=!0,u.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){e.exports=n(3)},,,function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function u(e,t){e=e.replace(y,h);var n=t.placeholderChar,r=t.currentCaretPosition,u=e.indexOf(x),s=e.lastIndexOf(d),f=s<u?-1:s,p=o(e,u+1,x),g=o(e,f-1,d),v=c(e,u,n),m=i(e,u,f,n),O=a(e,f,n,r);v=l(v),m=l(m),O=l(O,!0);var b=v.concat(p).concat(m).concat(g).concat(O);return b}function o(e,t,n){var r=[];return e[t]===n?r.push(n):r.push(g,n),r.push(g),r}function c(e,t){return t===-1?e:e.slice(0,t)}function i(e,t,n,r){var u=h;return t!==-1&&(u=n===-1?e.slice(t+1,e.length):e.slice(t+1,n)),u=u.replace(new RegExp(\"[\\\\s\"+r+\"]\",m),h),u===x?p:u.length<1?v:u[u.length-1]===d?u.slice(0,u.length-1):u}function a(e,t,n,r){var u=h;return t!==-1&&(u=e.slice(t+1,e.length)),u=u.replace(new RegExp(\"[\\\\s\"+n+\".]\",m),h),0===u.length?e[t-1]===d&&r!==e.length?p:h:u}function l(e,t){return e.split(h).map(function(e){return e===v?e:t?b:O})}Object.defineProperty(t,\"__esModule\",{value:!0});var s=n(4),f=r(s),p=\"*\",d=\".\",h=\"\",x=\"@\",g=\"[]\",v=\" \",m=\"g\",O=/[^\\s]/,b=/[^.\\s]/,y=/\\s/g;t.default={mask:u,pipe:f.default}},function(e,t){\"use strict\";function n(e,t){var n=t.currentCaretPosition,o=t.rawValue,p=t.previousConformedValue,d=t.placeholderChar,h=e;h=r(h);var x=h.indexOf(i),g=null===o.match(new RegExp(\"[^@\\\\s.\"+d+\"]\"));if(g)return c;if(h.indexOf(l)!==-1||x!==-1&&n!==x+1||o.indexOf(u)===-1&&p!==c&&o.indexOf(a)!==-1)return!1;var v=h.indexOf(u),m=h.slice(v+1,h.length);return(m.match(f)||s).length>1&&h.substr(-1)===a&&n!==o.length&&(h=h.slice(0,h.length-1)),h}function r(e){var t=0;return e.replace(o,function(){return t++,1===t?u:c})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=n;var u=\"@\",o=/@/g,c=\"\",i=\"@.\",a=\".\",l=\"..\",s=[],f=/\\./g}])});",null,null,null,null,null,null,"export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","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 if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 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 for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","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\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","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';\nimport useMemo from './hooks/useMemo';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * 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 var refList = refs.filter(function (ref) {\n return ref;\n });\n\n if (refList.length <= 1) {\n return refList[0];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\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 ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\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","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\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\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_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\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 || type.$$typeof === REACT_BLOCK_TYPE);\n}\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; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('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.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.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;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n\n return function () {\n var _containerRef$current, _containerRef$current2;\n\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","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}","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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\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 _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}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\n\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n\n setValue(updater);\n }\n\n return [value, safeSetState];\n}","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useNextFrame from './useNextFrame';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `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 // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\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 } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _motionChildren = motionChildren,\n originNodeRef = _motionChildren.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * 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 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element instanceof HTMLElement && element.offsetParent) {\n return true;\n }\n\n if (element instanceof SVGGraphicsElement && element.getBBox) {\n var _element$getBBox = element.getBBox(),\n width = _element$getBBox.width,\n height = _element$getBBox.height;\n\n if (width || height) {\n return true;\n }\n }\n\n if (element instanceof HTMLElement && element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n\n if (_width || _height) {\n return true;\n }\n }\n\n return false;\n});","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\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\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top); // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\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","/**\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 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 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 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 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 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","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","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\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","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","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var 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 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 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 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","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 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","/**\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 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 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","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 ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var 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","/**\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 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","/** 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 * 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 * 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 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","/**\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 * 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 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 root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\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 * 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 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","/**\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","/**\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","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","/**\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 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 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 * 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 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","/** 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","/** 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 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","/**\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 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","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","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","/** 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","/**\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 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","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 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 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 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 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 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","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 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 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","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 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 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","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isEqual from 'lodash/isEqual';\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n // We only align when element is visible\n if (element && isVisible(element)) {\n result = alignElement(source, element, latestAlign);\n } else if (point) {\n result = alignPoint(source, point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import * as React from 'react';\nimport canUseDom from '../Dom/canUseDom';\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\n\nvar useLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nexport default useLayoutEffect;\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!firstMountRef.current) {\n return callback();\n }\n }, deps); // We tell react that first mount has passed\n\n useLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\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 if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(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 && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(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 (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 2) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.portalContainer = void 0;\n _this.attachId = void 0;\n _this.clickOutsideHandler = void 0;\n _this.touchOutsideHandler = void 0;\n _this.contextMenuOutsideHandler1 = void 0;\n _this.contextMenuOutsideHandler2 = void 0;\n _this.mouseDownTimeout = void 0;\n _this.focusTime = void 0;\n _this.preClickTime = void 0;\n _this.preTouchTime = void 0;\n _this.delayTimer = void 0;\n _this.hasPopupMouseDown = void 0;\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n _this.triggerContextValue = {\n onPopupMouseDown: _this.onPopupMouseDown\n };\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom'; // Let compiler not to search module usage\n\nvar fullClone = _objectSpread({}, ReactDOM);\n\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\n\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {// Do nothing;\n}\n\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\n\nvar MARK = '__rc_react_root__';\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\n\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n\n legacyRender(node, container);\n} // ========================= Unmount ==========================\n\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\n\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\n\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\n\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\", modernUnmount(container));\n\n case 2:\n legacyUnmount(container);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}",null,"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\n\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n\n var _super = _createSuper(Notice);\n\n function Notice() {\n var _this;\n\n _classCallCheck(this, Notice);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n\n _this.clearCloseTimer();\n\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n\n if (onClose) {\n onClose(noticeKey);\n }\n };\n\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n\n return _this;\n }\n\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark || // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n\n return node;\n }\n }]);\n\n return Notice;\n}(Component);\n\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};\nexport { Notice as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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\";\nvar _excluded = [\"getContainer\"];\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\n\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n\n var _super = _createSuper(Notification);\n\n function Notification() {\n var _this;\n\n _classCallCheck(this, Notification);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n\n _this.add = function (originNotice, holderCallback) {\n var key = originNotice.key || getUuid();\n\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n\n var maxCount = _this.props.maxCount;\n\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid(); // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n\n return {\n notices: updatedNotices\n };\n });\n };\n\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n\n _this.noticePropsMap = {};\n return _this;\n }\n\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n\n _this2.remove(noticeKey);\n\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n }); // Give to motion\n\n\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style,\n visible = _ref5.visible;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n\n if (div) {\n _this2.hookRefs.set(key, div);\n\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n visible: visible\n }));\n }));\n }\n }]);\n\n return Notification;\n}(Component);\n\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, _excluded);\n\n var div = document.createElement('div');\n\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n\n var called = false;\n\n function ref(notification) {\n if (called) {\n return;\n }\n\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n unmount(div);\n\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n } // Only used for test case usage\n\n\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n\n render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\n\nexport default Notification;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n\n var cloneList = _toConsumableArray(originElements);\n\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n\n firstMount = false;\n });\n }\n\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\r\n ? isCheckBoxInput(event.target)\r\n ? event.target.checked\r\n : event.target.value\r\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n }\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n FOCUS_OUT: 'focusout',\r\n CHANGE: 'change',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nconst HookFormContext = React.createContext(null);\r\n/**\r\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @returns return all useForm methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * <FormProvider {...methods} >\r\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\r\n * <NestedInput />\r\n * <input type=\"submit\" />\r\n * </form>\r\n * </FormProvider>\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return <input {...register(\"test\")} />;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * <FormProvider {...methods} >\r\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\r\n * <NestedInput />\r\n * <input type=\"submit\" />\r\n * </form>\r\n * </FormProvider>\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return <input {...register(\"test\")} />;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => {\r\n const { children, ...data } = props;\r\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\r\n};\n\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\r\n const result = {};\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\r\n const { name, ...formState } = formStateData;\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const tearDown = (subscription) => {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n };\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.callback,\r\n });\r\n return () => tearDown(subscription);\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(onSubmit)}>\r\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\r\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n const _mounted = React.useRef(true);\r\n _name.current = name;\r\n const callback = React.useCallback((value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current) &&\r\n updateFormState({\r\n ...control._formState,\r\n ...value,\r\n }), [control, exact]);\r\n useSubscribe({\r\n disabled,\r\n callback,\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => {\r\n _mounted.current = true;\r\n return () => {\r\n _mounted.current = false;\r\n };\r\n }, []);\r\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal) => {\r\n const isArray = Array.isArray(names);\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names);\r\n }\r\n if (isArray) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\r\n get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n const callback = React.useCallback((formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n const fieldValues = generateWatchOutput(_name.current, control._names, formState.values || control._formValues);\r\n updateValue(isUndefined(_name.current) ||\r\n (isObject(fieldValues) && !objectHasFunction(fieldValues))\r\n ? { ...fieldValues }\r\n : Array.isArray(fieldValues)\r\n ? [...fieldValues]\r\n : isUndefined(fieldValues)\r\n ? defaultValue\r\n : fieldValues);\r\n }\r\n }, [control, exact, defaultValue]);\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.watch,\r\n callback,\r\n });\r\n const [value, updateValue] = React.useState(isUndefined(defaultValue)\r\n ? control._getWatch(name)\r\n : defaultValue);\r\n React.useEffect(() => {\r\n control._removeUnmounted();\r\n });\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n * <div>\r\n * <input {...field} placeholder={props.name} />\r\n * <p>{fieldState.isTouched && \"Touched\"}</p>\r\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\r\n * </div>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, {\r\n ...props.rules,\r\n value,\r\n }));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._stateFlags.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => {\r\n _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n });\r\n }, [name]),\r\n onBlur: React.useCallback(() => {\r\n _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n });\r\n }, [name, control]),\r\n ref: React.useCallback((elm) => {\r\n const field = get(control._fields, name);\r\n if (elm && field && elm.focus) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n select: () => elm.select(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n }, [name, control._fields]),\r\n },\r\n formState,\r\n fieldState: Object.defineProperties({}, {\r\n invalid: {\r\n get: () => !!get(formState.errors, name),\r\n },\r\n isDirty: {\r\n get: () => !!get(formState.dirtyFields, name),\r\n },\r\n isTouched: {\r\n get: () => !!get(formState.touchedFields, name),\r\n },\r\n error: {\r\n get: () => get(formState.errors, name),\r\n },\r\n }),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm<FormValues>({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n * <form>\r\n * <Controller\r\n * control={control}\r\n * name=\"test\"\r\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\r\n * <>\r\n * <input\r\n * onChange={onChange} // send value to hook form\r\n * onBlur={onBlur} // notify when input is touched\r\n * value={value} // return updated value\r\n * ref={ref} // set ref for focus management\r\n * />\r\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\r\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\r\n * </>\r\n * )}\r\n * />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? {\r\n ...errors[name],\r\n types: {\r\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\r\n [type]: message || true,\r\n },\r\n }\r\n : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const { _f, ...currentField } = field;\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\r\n break;\r\n }\r\n else if (_f.refs) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(currentField)) {\r\n focusFieldBy(currentField, callback);\r\n }\r\n }\r\n }\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nvar updateFieldArrayRootError = (errors, error, name) => {\r\n const fieldArrayErrors = compact(get(errors, name));\r\n set(fieldArrayErrors, 'root', error[name]);\r\n set(errors, name, fieldArrayErrors);\r\n return errors;\r\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isMessage = (value) => isString(value) || React.isValidElement(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\r\n inputRef.reportValidity();\r\n }\r\n };\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = {\r\n type: exceedMax ? maxType : minType,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\r\n };\r\n };\r\n if (isFieldArray\r\n ? !Array.isArray(inputValue) || !inputValue.length\r\n : required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.required,\r\n message,\r\n ref: inputRef,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber || +inputValue;\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(inputValue);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) &&\r\n !isEmpty &&\r\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.pattern,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = {\r\n ...validateError,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const key in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\r\n if (validateError) {\r\n validationResult = {\r\n ...validateError,\r\n ...appendErrorsCurry(key, validateError.message),\r\n };\r\n setCustomValidity(validateError.message);\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = {\r\n ref: inputRef,\r\n ...validationResult,\r\n };\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\r\n (isArray || isObject(data))) {\r\n copy = isArray ? [] : {};\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n copy = data;\r\n break;\r\n }\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nvar getValidationModes = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\r\n}\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction isEmptyArray(obj) {\r\n for (const key in obj) {\r\n if (!isUndefined(obj[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) && isEmptyArray(objectRef)))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(data => console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\r\n * ))}\r\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\r\n * append\r\n * </button>\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n props.rules &&\r\n control.register(name, props.rules);\r\n const callback = React.useCallback(({ values, name: fieldArrayName, }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current, []);\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }, []);\r\n useSubscribe({\r\n callback,\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._stateFlags.action = false;\r\n isWatched(name, control._names) && control._subjects.state.next({});\r\n if (_actioned.current) {\r\n if (control._options.resolver) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n const existingError = get(control._formState.errors, name);\r\n if (existingError ? !error && existingError.type : error && error.type) {\r\n error\r\n ? set(control._formState.errors, name, error)\r\n : unset(control._formState.errors, name);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n const field = get(control._fields, name);\r\n const validationModeBeforeSubmit = getValidationModes(control._options.mode);\r\n if ((!validationModeBeforeSubmit.isOnSubmit ||\r\n control._formState.isSubmitted) &&\r\n field &&\r\n field._f) {\r\n validateField(field, get(control._formValues, name), control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\r\n control._subjects.state.next({\r\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\r\n }));\r\n }\r\n }\r\n }\r\n control._subjects.watch.next({\r\n name,\r\n values: control._formValues,\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => key.startsWith(control._names.focus));\r\n control._names.focus = '';\r\n control._proxyFormState.isValid && control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => ({\r\n ...field,\r\n [keyName]: ids.current[index] || generateId(),\r\n })), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar isHTMLElement = (value) => {\r\n const owner = value ? value.ownerDocument : 0;\r\n const ElementClass = owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement;\r\n return value instanceof ElementClass;\r\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : { ...markFieldsDirty(data[key]) };\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === '' || isNullOrUndefined(value)\r\n ? NaN\r\n : +value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? undefined\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}) {\r\n let _options = {\r\n ...defaultOptions,\r\n ...props,\r\n };\r\n let _formState = {\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = cloneObject(_options.defaultValues) || {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _stateFlags = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n let validateFields = {};\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n watch: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback) => (wait) => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(callback, wait);\r\n };\r\n const _updateValid = async (shouldSkipRender) => {\r\n let isValid = false;\r\n if (_proxyFormState.isValid) {\r\n isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuiltInValidation(_fields, true);\r\n if (!shouldSkipRender && isValid !== _formState.isValid) {\r\n _formState.isValid = isValid;\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _stateFlags.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (_proxyFormState.errors &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => {\r\n set(_formState.errors, name, error);\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _stateFlags.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let isFieldDirty = false;\r\n const output = {\r\n name,\r\n };\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (_proxyFormState.isDirty) {\r\n const isPreviousFormDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\r\n }\r\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\r\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\r\n }\r\n if (isBlurEvent && !isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n isFieldDirty && shouldRender && _subjects.state.next(output);\r\n return isFieldDirty ? output : {};\r\n };\r\n const shouldRenderByError = async (name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback = debounce(() => updateErrors(name, error));\r\n delayErrorCallback(props.delayError);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n delayErrorCallback = null;\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) {\r\n const updatedFormState = {\r\n ...fieldState,\r\n ...(shouldUpdateValid ? { isValid } : {}),\r\n errors: _formState.errors,\r\n name,\r\n };\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n _subjects.state.next(updatedFormState);\r\n }\r\n validateFields[name]--;\r\n if (_proxyFormState.isValidating &&\r\n !Object.values(validateFields).some((v) => v)) {\r\n _subjects.state.next({\r\n isValidating: false,\r\n });\r\n validateFields = {};\r\n }\r\n };\r\n const _executeSchema = async (name) => _options.resolver\r\n ? await _options.resolver({ ..._formValues }, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation))\r\n : {};\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const { _f, ...fieldValue } = field;\r\n if (_f) {\r\n const isFieldArrayRoot = _names.array.has(_f.name);\r\n const fieldError = await validateField(field, get(_formValues, _f.name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation, isFieldArrayRoot);\r\n if (fieldError[_f.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n !shouldOnlyCheckValid &&\r\n (get(fieldError, _f.name)\r\n ? isFieldArrayRoot\r\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\r\n : set(_formState.errors, _f.name, fieldError[_f.name])\r\n : unset(_formState.errors, _f.name));\r\n }\r\n fieldValue &&\r\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => {\r\n const fieldValues = {\r\n ...(_stateFlags.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue),\r\n };\r\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\r\n };\r\n const _getFieldArray = (name) => compact(get(_stateFlags.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((selectRef) => (selectRef.selected = fieldValue.includes(selectRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => !checkboxRef.disabled &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.watch.next({\r\n name,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: _formValues,\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: _formState.dirtyFields,\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({});\r\n _subjects.watch.next({\r\n name,\r\n });\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = target.type\r\n ? getFieldValue(field._f)\r\n : getEventValue(event);\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n delayErrorCallback && delayErrorCallback(0);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.watch.next({\r\n name,\r\n type: event.type,\r\n });\r\n if (shouldSkipValidation) {\r\n return (shouldRender &&\r\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({});\r\n validateFields[name] = validateFields[name] ? +1 : 1;\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, get(_formValues, name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n isValid = await _updateValid(true);\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuiltInValidation(_fields);\r\n }\r\n _subjects.state.next({\r\n ...(!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name }),\r\n ...(_options.resolver ? { isValid } : {}),\r\n errors: _formState.errors,\r\n isValidating: false,\r\n });\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = {\r\n ..._defaultValues,\r\n ...(_stateFlags.mount ? _formValues : {}),\r\n };\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name\r\n ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))\r\n : (_formState.errors = {});\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, {\r\n ...error,\r\n ref,\r\n });\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.watch.subscribe({\r\n next: (info) => name(_getWatch(undefined, defaultValue), info),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.watch.next({});\r\n _subjects.state.next({\r\n ..._formState,\r\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\r\n });\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n _f: {\r\n ...(field && field._f ? field._f : { ref: { name } }),\r\n name,\r\n mount: true,\r\n ...options,\r\n },\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return {\r\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\r\n ...(_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {}),\r\n name,\r\n onChange,\r\n onBlur: onChange,\r\n ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: {\r\n ...field._f,\r\n ...(radioOrCheckbox\r\n ? {\r\n refs: [\r\n ...refs.filter(live),\r\n fieldRef,\r\n ...(!!Array.isArray(get(_defaultValues, name))\r\n ? [{}]\r\n : []),\r\n ],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef }),\r\n },\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\r\n _names.unMount.add(name);\r\n }\r\n },\r\n };\r\n };\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let hasNoPromiseError = true;\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuiltInValidation(_fields);\r\n }\r\n if (isEmptyObject(_formState.errors)) {\r\n _subjects.state.next({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid({ ..._formState.errors }, e);\r\n }\r\n _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), _names.mount);\r\n }\r\n }\r\n catch (err) {\r\n hasNoPromiseError = false;\r\n throw err;\r\n }\r\n finally {\r\n _formState.isSubmitted = true;\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n }\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next({ ..._formState });\r\n }\r\n };\r\n const reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (keepStateOptions.keepDirtyValues) {\r\n for (const fieldName of _names.mount) {\r\n get(_formState.dirtyFields, fieldName)\r\n ? set(values, fieldName, get(_formValues, fieldName))\r\n : setValue(fieldName, get(values, fieldName));\r\n }\r\n }\r\n else {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n try {\r\n if (isHTMLElement(fieldReference)) {\r\n fieldReference.closest('form').reset();\r\n break;\r\n }\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n _fields = {};\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _subjects.array.next({\r\n values,\r\n });\r\n _subjects.watch.next({\r\n values,\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n _stateFlags.mount =\r\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _stateFlags.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.isDirty\r\n : !!(keepStateOptions.keepDefaultValues &&\r\n !deepEqual(formValues, _defaultValues)),\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.dirtyFields\r\n : keepStateOptions.keepDefaultValues && formValues\r\n ? getDirtyFields(_defaultValues, formValues)\r\n : {},\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors\r\n ? _formState.errors\r\n : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name)._f;\r\n const fieldRef = field.refs ? field.refs[0] : field.ref;\r\n fieldRef.focus();\r\n options.shouldSelect && fieldRef.select();\r\n };\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _stateFlags() {\r\n return _stateFlags;\r\n },\r\n set _stateFlags(value) {\r\n _stateFlags = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = {\r\n ..._options,\r\n ...value,\r\n };\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to manage the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(onSubmit)}>\r\n * <input defaultValue=\"test\" {...register(\"example\")} />\r\n * <input {...register(\"exampleRequired\", { required: true })} />\r\n * {errors.exampleRequired && <span>This field is required</span>}\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n });\r\n if (_formControl.current) {\r\n _formControl.current.control._options = props;\r\n }\r\n else {\r\n _formControl.current = {\r\n ...createFormControl(props),\r\n formState,\r\n };\r\n }\r\n const control = _formControl.current.control;\r\n const callback = React.useCallback((value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\r\n control._formState = {\r\n ...control._formState,\r\n ...value,\r\n };\r\n updateFormState({ ...control._formState });\r\n }\r\n }, [control]);\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n callback,\r\n });\r\n React.useEffect(() => {\r\n if (!control._stateFlags.mount) {\r\n control._proxyFormState.isValid && control._updateValid();\r\n control._stateFlags.mount = true;\r\n }\r\n if (control._stateFlags.watch) {\r\n control._stateFlags.watch = false;\r\n control._subjects.state.next({});\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from './isVisible';\n\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement = // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) || // Editable element\n node.isContentEditable || // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href'); // Get tabIndex\n\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr); // Parse as number if validate\n\n var tabIndex = null;\n\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n } // Block focusable if disabled\n\n\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n\n return false;\n}\n\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n\n return res;\n}\nvar lastFocusElement = null;\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n /* eslint-disable no-empty */\n } catch (e) {// empty\n }\n /* eslint-enable no-empty */\n\n }\n}\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","ar","l","Array","slice","concat","__makeTemplateObject","cooked","raw","defineProperty","TouchableOpacity","styled","div","templateObject_2","_a","disabled","_b","activeOpacity","withoutOpacityEffect","css","templateObject_1","getSizeStyle","size","maxWidth","maxHeight","minWidth","minHeight","changeColorTint","color","percent","rgb","parseInt","substring","isTint","map","c","difference","Math","round","r","b","getTintColor","getShadeColor","defaultTheme","colors","pink","pinkTint","pinkShade","orange","orangeTint","orangeShade","purple","purpleTint","purpleShade","indigo","indigoTint1","indigoTint2","gray1","gray2","gray3","gray4","gray5","green","greenTint","greenShade","red","redTint","redShade","yellow","yellowTint","yellowShade","blue","blueTint","blueShade","primary","primaryTint","primaryShade","secondary","secondaryTint","secondaryShade","black","white","background","fonts","XL","L","M","S","XS","sizes","devices","xs","sm","md","lg","xl","toastStyles","GlobalStyle","theme","deepmerge","createTheme","palette","mode","typography","fontFamily","shape","borderRadius","extendJoyTheme","display","code","radius","ZealThemeProvider","props","_jsx","StyledEngineProvider","injectFirst","children","EmotionThemeProvider","_jsxs","MuiThemeProvider","CssBaseline","Global","styles","useMediaQuery","breakpointSize","breakpoint","breakpoints","nextBreakpoint","query","keys","getMatches","window","matchMedia","matches","useState","setMatches","handleChange","useEffect","addEventListener","removeEventListener","Bookmark","fill","_c","_d","width","height","viewBox","xmlns","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","CaretDown","style","CaretUp","CaretLeft","CaretRight","Check","Info","pointerEvents","Filter","Close","View","Hide","InfoBoxIcon","opacity","Minus","Bell","Warning","Mobile","Mail","Edit","Save","Menu","Play","Search","ArrowRight","availableIcons","Icon","name","useTheme","FormStepContext","createContext","steps","currentStep","canGoToNextStep","canGoToPrevStep","goToNextStep","goToPrevStep","reset","setStep","setInitSteps","ButtonActionsContext","actionContent","undefined","setActionContent","isModalVisible","isDrawerVisible","setDrawerVisible","setActivePopUpById","onCloseModal","useButtonActionsContext","useContext","MlrRichTextViewerContext","isMLRReview","annotationsList","links","tags","showAnnotations","useMlrRichTextViewerContext","OrganismContext","items","groupStepItemsByStepContainer","Map","dateFields","setDateFields","formId","submitHandler","validations","editable","isPreview","isFormInEditMode","organismMetadata","isConfigurationMode","onConfigurationItemClicked","selectedConfigurationItemId","useOrganismContext","StateContext","stateConfig","stateHandler","useStateContext","AccountButtonContext","userInitials","logOutHandler","goToAccountInfo","username","useStateModifierHandler","id","isTrigger","actionType","currentState","updateKey","click","start","complete","close","updates","visible","console","log","paramKeys","exports","loaded","m","__esModule","default","enumerable","get","o","u","minYear","maxYear","a","split","sort","dd","mm","yy","yyyy","HH","MM","SS","forEach","toString","substr","some","replace","join","indexesOfPipedChars","h","D","lastIndexOf","$","I","N","O","match","RegExp","V","R","x","C","prefix","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","j","decimalSymbol","w","decimalLimit","H","requireDecimal","k","allowNegative","E","allowLeadingZeroes","A","integerLimit","instanceOf","test","constructor","placeholderChar","currentCaretPosition","mask","pipe","rawValue","previousConformedValue","phoneNumberValidation","numberValidation","emailValidation","textValidation","monthDayYearDateValidation","dayMonthYearDateValidation","monthYearDateValidation","yearMonthDayDateValidation","usZipCode","usernameValidation","getInputValidation","type","message","postCodeMask","yearMonthDayDateMask","monthDayYearDateMask","dayMonthYearDateMask","monthYearDateMask","phoneNumberMask","integerMask","createNumberMask","numericalMask","getParameterByName","url","decodeURIComponent","updateSearchParams","currentParams","internalLink","webpageId","applicationId","newSearchParams","URLSearchParams","has","set","navigateToExternalLink","externalLink","externalURL","open","checkIsInternalLink","link","addInternalParamsToCurrentLink","URL","location","href","searchParams","search","getHref","parseDescendantContent","string","parsedValue","JSON","parse","error","richTextDefaultValue","matchSlateAndStateObject","slateValue","item","isArray","child","variable","_e","dataModelField","_f","defaultValue","dataModelFieldId","entitySubtypeId","dataModelFieldValueFromStateObject","text","isStateConfigPresent","Boolean","isObject","isPlainObject","ctor","prot","process","env","NODE_ENV","Y","Error","Q","getPrototypeOf","Function","Z","nn","delete","add","X","q","Set","rn","writable","configurable","create","clear","freeze","isFrozen","tn","U","F","z","getOwnPropertyDescriptor","T","en","on","Proxy","revocable","revoke","proxy","J","K","G","W","B","Reflect","for","ownKeys","getOwnPropertyNames","getOwnPropertyDescriptors","deleteProperty","setPrototypeOf","isNaN","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","path","an","fn","bind","ln","dn","_defineProperty","obj","key","DIRTY_PATHS","WeakMap","DIRTY_PATH_KEYS","FLUSHING","NORMALIZING","PATH_REFS","POINT_REFS","RANGE_REFS","ownKeys$9","object","enumerableOnly","symbols","filter","sym","_objectSpread$9","target","source","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","CodepointType","getCharacterDistance","str","isRTL","isLTR","codepoints","codepointsIteratorRTL","left","None","right","distance","gb12Or13","char","codePointAt","getCodepointType","intersects","ZWJ","ExtPict","endsWithEmojiZWJ","RI","endsWithOddNumberOfRIs","isBoundaryPair","SPACE","PUNCTUATION","CHAMELEON","splitByCharacterDistance","dist","at","isWordCharacter","remaining","charDist","nextChar","nextRemaining","end","char1","charAt","isLowSurrogate","charCodeAt","char2","isHighSurrogate","charCode","reExtend","rePrepend","reSpacingMark","reL","reV","reT","reLV","reLVT","reExtPict","Any","Extend","Prepend","SpacingMark","LV","LVT","NonBoundaryPairs","findIndex","endingEmojiZWJ","endingRIs","isElement","Node","isNodeList","Editor","isEditor","Element","isAncestor","isElementList","every","val","isElementProps","isElementType","elementVal","elementKey","element","_excluded$4","_excluded2$3","ownKeys$8","_objectSpread$8","IS_EDITOR_CACHE","above","editor","options","voids","selection","reverse","levels","Text","isText","Range","isRange","Path","anchor","focus","equals","addMark","after","range","point","edge","positions","before","deleteBackward","unit","deleteForward","deleteFragment","direction","edges","first","node","fragment","hasBlocks","isBlock","hasInlines","isInline","hasTexts","insertBreak","insertSoftBreak","insertFragment","insertNode","insertText","cachedIsEditor","isVoid","normalizeNode","onChange","removeMark","getDirtyPaths","marks","Operation","isOperationList","operations","isEnd","Point","isEdge","isStart","isEmpty","isNormalizing","offset","last","leaf","isExpanded","nodes","_node","prev","previous","block","prevNode","prevPath","blockPath","pointAfterLocation","span","isPath","parent","includes","universal","Span","isSpan","hit","nodeEntries","pass","_ref","isLower","compare","emit","normalize","force","popDirtyPath","getDirtyPathKeys","allPaths","_ref2","allPathKeys","withoutNormalizing","dirtyPath","entry","max","_dirtyPath","_entry","parentPath","depth","firstPath","lastPath","common","isPoint","hasPath","pathRef","affinity","ref","current","unref","pathRefs","refs","pointRef","pointRefs","isNewBlock","blockText","leafTextRemaining","leafTextOffset","isFirst","calcDistance","started","getWordDistance","pointBeforeLocation","rangeRef","rangeRefs","setNormalizing","unhangRange","isCollapsed","endBlock","skip","isBefore","void","_excluded$3","_excluded2$2","IS_NODE_LIST_CACHE","ancestor","root","Scrubber","stringify","ancestors","index","childPath","another","descendant","descendants","elements","extractProps","newRoot","splice","_leaf","isNode","cachedResult","isTextProps","visited","isAfter","newPath","nextIndex","texts","ownKeys$7","_objectSpread$7","isNodeOperation","isOperation","endsWith","position","properties","newProperties","isSelectionOperation","isTextOperation","inverse","isSibling","inversePath","transform","inverseNewPath","_properties","_newProperties","paths","av","min","endsAfter","as","bs","bv","endsAt","endsBefore","hasPrevious","isChild","isCommon","isDescendant","isParent","list","operationCanTransformPath","operation","relative","_op","_op2","_op3","_position","_op4","onp","copy","PathRef","ownKeys$6","_objectSpread$6","PointRef","_excluded$2","ownKeys$5","isBackward","rs","re","ts","te","isAfterStart","isBeforeEnd","intersection","rest","s1","e1","s2","e2","_objectSpread$5","isForward","points","affinityAnchor","affinityFocus","RangeRef","_scrubber","setScrubber","scrubber","isDeepEqual","_key","_excluded$1","_excluded2$1","ownKeys$4","_objectSpread$4","loose","omitText","isTextList","decorations","leaves","dec","leafEnd","decorationStart","decorationEnd","leafStart","middle","off","_off","ownKeys$3","_objectSpread$3","GeneralTransforms","_path","_point","_path2","_node2","_parent","_index","_point2","_key2","_path3","_node3","_parent2","_index2","truePath","newParent","newIndex","_point3","_key3","_path4","_index3","_point4","_key4","_prev","preferNext","_path5","_offset","_text","_node4","_before","_after","_point5","_key5","_path6","_node5","_key6","_key7","_key8","_value","_path7","newNode","_node6","_parent4","_index4","_before2","_after2","_before3","_after3","_point6","_key9","applyToDraft","isDraft","_excluded","_excluded2","ownKeys$2","_objectSpread$2","NodeTransforms","insertNodes","hanging","select","Transforms","_matchPath","isAtEnd","splitNodes","liftNodes","matchPath","parentNodeEntry","toPath","moveNodes","removeNodes","_toPath","splitPath","_toPath2","mergeNodes","commonPath","isPreviousSibling","emptyAncestor","hasSingleChildNest","emptyRef","toRef","targets","_ref3","depths","_ref4","setNodes","merge","splitMode","endAtEndOfNode","always","startAtStartOfNode","prop","nodeProp","hasChanges","deleteRange","afterRef","beforeRef","highest","voidMatch","voidNode","voidPath","afterPath","highestPath","lowestPath","_afterRef","unsetNodes","unwrapNodes","_ref5","_loop","wrapNodes","roots","rootPath","_ret","commonNodeEntry","commonNode","wrapperPath","wrapper","ownKeys$1","_objectSpread$1","SelectionTransforms","collapse","deselect","move","opts","setSelection","setPoint","oldProps","newProps","TextTransforms","furthestVoid","_end","endOfDoc","startBlock","isAcrossBlocks","isSingleText","startVoid","endVoid","startRef","endRef","removedText","startUnref","endUnref","inlineElementMatch","_inlinePath","blockMatch","isBlockStart","isBlockEnd","isBlockEmpty","mergeStart","mergeEnd","matcher","starts","middles","ends","starting","inlineMatch","inlinePath","isInlineStart","isInlineEnd","middleRef","_end2","startPoint","endPoint","_objectSpread","direction_1","String","rtl","ltr","LTR","isObject_1","_freeGlobal","global","freeGlobal","require$$0","freeSelf","self","_root","now_1","Date","now","reWhitespace","_trimmedEndIndex","trimmedEndIndex","reTrimStart","_baseTrim","_Symbol","objectProto","nativeObjectToString","symToStringTag","toStringTag","_getRawTag","isOwn","tag","unmasked","getRawTag","require$$1","objectToString","_baseGetTag","isObjectLike_1","baseGetTag","isObjectLike","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","valueOf","isBinary","nativeMax","nativeMin","debounce_1","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","debounce","throttle_1","nodeType","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","compute","scrollMode","inline","boundary","skipOverflowHiddenElements","document","scrollingElement","documentElement","parentElement","visualViewport","innerWidth","innerHeight","scrollX","pageXOffset","scrollY","pageYOffset","getBoundingClientRect","top","bottom","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","offsetWidth","offsetHeight","scrollLeft","scrollTop","el","isOptionsObject","scrollIntoView","isTargetAttached","isConnected","contains","behavior","computeOptions","getOptions","actions","canSmoothScroll","scroll","defaultBehavior","lib","IS_MAC","navigator","platform","MODIFIERS","alt","control","meta","shift","ALIASES","break","cmd","command","ctl","ctrl","del","down","esc","ins","mod","opt","option","space","spacebar","up","win","windows","CODES","backspace","tab","enter","pause","capslock","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","insert","numlock","scrolllock","isHotkey","hotkey","event","array","parseHotkey","check","compareHotkey","byKey","ret","values","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","optional","toKeyName","modifier","which","toKeyCode","err","expected","actual","toLowerCase","toUpperCase","isCodeHotkey","isKeyHotkey_1","isKeyHotkey","Key","NODE_TO_INDEX","NODE_TO_PARENT","EDITOR_TO_WINDOW","EDITOR_TO_ELEMENT","EDITOR_TO_PLACEHOLDER_ELEMENT","ELEMENT_TO_NODE","NODE_TO_ELEMENT","NODE_TO_KEY","EDITOR_TO_KEY_TO_ELEMENT","IS_READ_ONLY","IS_FOCUSED","IS_COMPOSING","EDITOR_TO_USER_SELECTION","EDITOR_TO_ON_CHANGE","EDITOR_TO_SCHEDULE_FLUSH","EDITOR_TO_PENDING_INSERTION_MARKS","EDITOR_TO_USER_MARKS","EDITOR_TO_PENDING_DIFFS","EDITOR_TO_PENDING_ACTION","EDITOR_TO_PENDING_SELECTION","EDITOR_TO_FORCE_RENDER","PLACEHOLDER_SYMBOL","MARK_PLACEHOLDER_SYMBOL","DOMText","globalThis","getDefaultView","isDOMElement","isDOMNode","isDOMSelection","anchorNode","Selection","isDOMText","getEditableChildAndIndex","childNodes","triedForward","triedBackward","getAttribute","getEditableChild","getPlainText","domNode","nodeValue","childNode","getPropertyValue","tagName","catchSlateFragment","isTrackedMutation","mutation","batch","ReactEditor","getWindow","hasDOMNode","parentMutation","find","addedNodes","removedNodes","IS_REACT_VERSION_17_OR_ABOVE","React","version","IS_IOS","userAgent","MSStream","IS_APPLE","IS_ANDROID","IS_FIREFOX","IS_SAFARI","IS_EDGE_LEGACY","IS_CHROME","IS_CHROME_LEGACY","IS_FIREFOX_LEGACY","IS_QQBROWSER","IS_UC_MOBILE","IS_WECHATBROWSER","CAN_USE_DOM","createElement","HAS_BEFORE_INPUT_SUPPORT","InputEvent","getTargetRanges","isComposing","findKey","findPath","unshift","findDocumentOrShadowRoot","toDOMNode","getRootNode","Document","ShadowRoot","getSelection","isFocused","isReadOnly","blur","activeElement","preventScroll","domSelection","rangeCount","removeAllRanges","targetEl","editorEl","closest","isContentEditable","insertData","data","insertFragmentData","insertTextData","setFragmentData","originEvent","KEY_TO_ELEMENT","toDOMPoint","domPoint","querySelectorAll","textContent","attr","nextText","hasAttribute","_nextText$textContent","domText","startsWith","toDOMRange","domAnchor","domFocus","domRange","createRange","startNode","startOffset","endNode","endOffset","isStartAtZeroWidth","isEndAtZeroWidth","setStart","setEnd","toSlateNode","domEl","findEventRange","nativeEvent","clientX","clientY","rect","isPrev","caretRangeFromPoint","caretPositionFromPoint","offsetNode","toSlateRange","exactMatch","suppressThrow","toSlatePoint","nearestNode","nearestOffset","isLast","normalizeDOMPoint","parentNode","textNode","_domNode$textContent","_domNode$textContent2","potentialVoidNode","leafNode","contents","cloneContents","textContext","removeChild","leafNodes","_slateNode","querySelector","slateNode","anchorOffset","focusNode","focusOffset","startContainer","shadowRoot","endContainer","collapsed","hasRange","androidScheduleFlush","_EDITOR_TO_SCHEDULE_F","androidPendingDiffs","useIsomorphicLayoutEffect","useLayoutEffect","shallowCompare","obj1","obj2","isDecoratorRangeListEqual","rangeOwnProps","otherOwnProps","useSlateStatic","isMarkPlaceholder","ZeroWidthString","TextString","isTrailing","isLineBreak","useRef","getTextContent","textWithTrailing","attributes","EditorContext","Leaf","renderPlaceholder","renderLeaf","DefaultLeaf","placeholderRef","placeholderEl","placeholderProps","placeholder","userSelect","textDecoration","contentEditable","Fragment","MemoizedLeaf","memo","Text$1","MemoizedText","renderElement","DefaultElement","readOnly","useReadOnly","useCallback","useChildren","dir","getDirection","Tag","outline","MemoizedElement","DecorateContext","SelectedContext","decorate","isLeafBlock","Element$1","sel","ds","Provider","ReadOnlyContext","SlateContext","HOTKEYS","bold","compose","moveBackward","moveForward","moveWordBackward","moveWordForward","extendBackward","extendForward","italic","splitBlock","undo","APPLE_HOTKEYS","moveLineBackward","moveLineForward","deleteLineBackward","deleteLineForward","deleteWordBackward","deleteWordForward","extendLineBackward","extendLineForward","redo","transposeCharacter","WINDOWS_HOTKEYS","generic","apple","isGeneric","isApple","isWindows","Hotkeys","isBold","isCompose","isMoveBackward","isMoveForward","isDeleteBackward","isDeleteForward","isDeleteLineBackward","isDeleteLineForward","isDeleteWordBackward","isDeleteWordForward","isExtendBackward","isExtendForward","isExtendLineBackward","isExtendLineForward","isItalic","isMoveLineBackward","isMoveLineForward","isMoveWordBackward","isMoveWordForward","isRedo","isSoftBreak","isSplitBlock","isTransposeCharacter","isUndo","MUTATION_OBSERVER_CONFIG$1","subtree","childList","characterData","characterDataOldValue","RestoreDOMComponent","Component","super","context","manager","mutationObserver","observe","_this$mutationObserve","componentDidMount","receivedUserInput","bufferedMutations","registerMutations","mutations","trackedMutations","restoreDOM","insertBefore","nextSibling","oldValue","createRestoreDomManager","MutationObserver","getSnapshotBeforeUpdate","_this$mutationObserve2","_this$mutationObserve3","_this$manager2","_this$manager","pendingMutations","takeRecords","disconnect","componentDidUpdate","_this$manager3","componentWillUnmount","_this$mutationObserve4","render","contextType","RestoreDOM","verifyDiffState","textDiff","diff","nextPath","nextNode","normalizeStringDiff","targetText","prefixLength","longestCommonPrefixLength","suffixLength","longestCommonSuffixLength","normalized","mergeStringDiffs","overlap","applied","_len","diffs","reduce","applyStringDiff","sliceEnd","targetRange","normalizePoint","parentBlock","normalizeRange","transformPendingPoint","pendingDiffs","_anchor","_transformed","transformed","transformPendingRange","createAndroidInputManager","scheduleOnDOMSelectionChange","onDOMSelectionChange","flushing","compositionEndTimeoutId","flushTimeoutId","actionTimeoutId","idCounter","insertPositionHint","applyPendingSelection","pendingSelection","_EDITOR_TO_PENDING_DI","hasPendingDiffs","hasPendingAction","selectionRef","scheduleSelectionChange","_EDITOR_TO_PENDING_DI2","_EDITOR_TO_PENDING_DI3","pendingMarks","action","_targetRange","run","performAction","userMarks","updatePlaceholderVisibility","forceHide","placeholderElement","removeProperty","storeDiff","_EDITOR_TO_PENDING_DI4","idx","change","merged","scheduleAction","_EDITOR_TO_PENDING_DI5","scheduleFlush","hasPendingChanges","isFlushing","handleUserSelect","pathChanged","parentPathChanged","handleCompositionEnd","_event","handleCompositionStart","handleDOMBeforeInput","_targetRange2","inputType","dataTransfer","nativeTargetRange","_start","targetNode","_nativeTargetRange","_start2","hintPosition","handleKeyDown","handleDomMutations","_EDITOR_TO_FORCE_REND","handleInput","MUTATION_OBSERVER_CONFIG","useAndroidInputManager","isMountedRef","isMounted","inputManager","callback","useMutationObserver","Children","Editable","autoFocus","defaultDecorate","onDOMBeforeInput","propsOnDOMBeforeInput","DefaultPlaceholder","scrollSelectionIntoView","defaultScrollSelectionIntoView","useSlate","setIsComposing","deferredOperations","onUserInput","animationFrameIdRef","cancelAnimationFrame","requestAnimationFrame","useTrackUserInput","forceRender","useReducer","state","useMemo","isDraggingInternally","isUpdatingSelection","latestElement","hasMarkPlaceholder","throttle","androidInputManager","anchorNodeSelectable","hasEditableTarget","isTargetInsideNonReadonlyVoid","focusNodeSelectable","setDomSelection","forceChange","hasDomSelection","editorElement","hasDomSelectionInEditor","slateRange","_anchorNode$parentEle","newDomRange","setBaseAndExtent","ensureSelection","timeoutId","animationFrameId","ensureDomSelection","isDOMEventHandled","_EDITOR_TO_USER_SELEC","isCompositionChange","native","_node$parentElement","_window$getComputedSt","_lastText$textContent","lastText","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","whiteSpace","preventDefault","toRestore","unset","fromEntries","mark","role","spellCheck","autoCorrect","autoCapitalize","zindex","suppressContentEditableWarning","wordWrap","onBeforeInput","isEventHandled","_text2","onInput","onBlur","relatedTarget","onClick","hasTarget","detail","_block$","_range","onCompositionEnd","placeholderMarks","onCompositionUpdate","onCompositionStart","onCopy","clipboardData","onCut","onDragOver","onDragStart","onDrop","draggedRange","onDragEnd","onFocus","onKeyDown","maybeHistoryEditor","_maybeHistoryEditor","currentNode","onPaste","getData","types","isPlainTextOnlyPaste","leafEl","handler","shouldTreatEventAsHandled","isDefaultPrevented","isPropagationStopped","defaultPrevented","FocusedContext","SlateSelectorContext","Slate","unmountRef","setContext","selectorContext","handleSelectorChange","eventListeners","slateRef","listener","getSlate","getSelectorContext","onContextChange","prevContext","setIsFocused","doRectsIntersect","compareRect","areRangesSameLine","range1","range2","rect1","rect2","withReact","parentBlockEntry","parentBlockPath","parentElementRange","currentLineRange","parentRange","parentRangeBoundary","floor","findCurrentLineRange","transformTextDiff","pendingAction","attach","trim","cloneRange","setEndAfter","zw","isNewline","appendChild","getFragment","encoded","btoa","encodeURIComponent","setAttribute","setData","innerHTML","htmlData","getSlateFragmentAttribute","decoded","atob","parsed","lines","line","ReactDOM","unstable_batchedUpdates","EditorElement","NumberedList","BulletedList","ol","ul","_j","annotationTagIndex","Stack","component","alignItems","gap","MATRIX_MESSAGE_ELEMENT_ID","MATRIX_MESSAGE_DATA_ID","backgroundColor","Circle","fontWeight","strikethrough","fontStyle","underline","_g","VariableWrapper","_h","_Fragment","communicationLink","_k","url_1","isInternalLink","annotationLinkIndex","annotationLink","marginBottom","COMMUNICATION_LINK_ELEMENT_ID","COMMUNICATION_LINK_DATA_URL","COMMUNICATION_LINK_DATA_TEXT","RichTextViewer","font","textStyles","numberOfLines","extraTextProps","RenderElementWrapperComponent","renderElementWrapperProps","htmlElementId","moleculeId","onStateHandle","markableVoid","dirtyPaths","dirtyPathKeys","oldDirtyPaths","oldDirtyPathKeys","newDirtyPaths","expandedSelection","markAcceptingVoidSelected","selectedNode","selectedPath","shouldHaveInlines","_child","oldAncestors","newAncestors","_ancestor","_p","resultPath","createEditor","RenderElementWrapper","TextWrapper","Wrapper","variant","Spacer","layout","seoTag","textProps","StyledText","templateObject_3","textAlign","behaveAs","getNumberOfLinesStyles","ErrorText","backgroundColorMap","selected","borderColorMap","iconColorMap","textColorMap","Checkbox","isError","isEditMode","isSelected","isRichText","notInteractable","internalConfig","isHovered","setHovered","checkboxState","selectedCheckboxBackgroundColor","selectedCheckboxIconColor","wrapperStyles","textPadding","buttonPadding","checkboxIconColor","checkboxIconWrapperColor","checkboxTextStyles","checkboxWrapperStyles","getCheckboxStyles","$styles","notInteractableCheckboxStyles","onMouseEnter","onMouseLeave","Box","CheckIcon","templateObject_5","descendantToPlainText","SelectContainer","hasError","isOpen","DropdownMenu","DropdownMenuItem","$selected","getSelectStyles","isSelectedOption","horizontalPadding","verticalPadding","selectedTextColor","selectedTextFontSize","placeholderTextColor","placeholderTextFontSize","templateObject_4","Select","optionsPresentation","selectInternalConfig","setOpen","selectedValue","setSelectedValue","selectedOption","isOptionSelected","tabIndex","hasValue","className","stopPropagation","onSelect","ReferenceError","__proto__","conformToMask","setRef","inputElement","textMaskInputElement","update","initTextMask","guide","showMask","isNil","keepCharPositions","PureComponent","propTypes","oneOfType","bool","isRequired","number","defaultProps","strFunction","maskWithoutCaretTraps","indexes","convertMaskToPlaceholder","isString","isNumber","processCaretTraps","abs","isNew","conformedValue","someCharsRejected","previousPlaceholder","caretTrapIndexes","selectionEnd","setSelectionRange","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","framesToPop","symbol","any","arrayOf","objectOf","oneOf","exact","checkPropTypes","PropTypes","dateYearsLimitation","onIconClick","onPress","Input","leftIcon","rightIcon","config","setFocused","inputRef","specificInputProps","inputMode","getSpecificInputProps","maskInputProps","maskPlaceholder","createAutoCorrectedDatePipe","emailMask","getMaskInputProps","iconColor","getInputIconColor","textColor","textFontSize","inputStyles","LeftIconWrapper","FormControl","InputLabel","htmlFor","TextInput","autoComplete","RightIconWrapper","borderColor","borderWidth","MaskedInput","templateObject_6","placeholderColor","disabledBackgroundColor","InputIconWrapper","templateObject_7","templateObject_8","templateObject_9","spin","keyframes","Spinner","RegularImage","img","cornerRadius","BackgroundImage","BaseTextButton","attrs","TextButton","colorTheme","$variant","activeBgColor","customStyles","baseTextColor","hoverTextColor","activeTextColor","visitedTextColor","alpha","statusIconMapper","DEFAULT","ERROR","SUCCESS","ValidationTag","status","useValidationTagColors","_extends","_typeof","_toPropertyKey","arg","input","hint","prim","toPrimitive","res","Number","toPropertyKey","_objectSpread2","objectWithoutPropertiesLoose","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_assertThisInitialized","_setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","isNativeReflectConstruct","Super","NewTarget","possibleConstructorReturn","raf","caf","num","handle","rafUUID","rafIds","cleanup","wrapperRaf","times","callRef","leftTimes","realId","findDOMNode","HTMLElement","fillRef","composeRef","refList","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","addEventListenerWrap","eventType","cb","remove","canUseDom","module","$$typeof","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","ForwardRef","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","forwardRef","didUpdate","getContainer","parentRef","containerRef","useImperativeHandle","initRef","_containerRef$current","_containerRef$current2","createPortal","hasOwn","classNames","classes","argType","inner","isPointsEq","a1","a2","isAlignPoint","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_slicedToArray","arrayWithHoles","_i","_s","_x","_r","_arr","_n","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","makePrefixMap","styleProp","eventName","prefixes","domSupport","vendorPrefixes","canUseDOM","animationend","transitionend","animation","transition","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","useSafeState","destroyRef","_React$useState2","setValue","updater","ignoreDestroy","STEP_QUEUE","isActive","useStepQueue","_useState2","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","delay","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","nextStep","info","doNext","useStatus","supportMotion","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState4","setStatus","_useState6","setStyle","mountedRef","deadlineRef","getDomElement","activeRef","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue2","newStep","onPrepare","_eventHandlers$step","startStep","active","nextStatus","firstMountChangeRef","mergedStyle","DomWrapper","_React$Component","_super","CSSMotion","transitionSupport","isSupportTransition","motionName","_props$visible","_props$removeOnLeave","removeOnLeave","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","mergedProps","_classNames","statusSuffix","isValidElement","cloneElement","displayName","genCSSMotion","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","CSSMotionList","OriginCSSMotion","_this","keyEntities","removeKey","nextKeyEntities","entity","setState","_this2","_this$props","_onVisibleChanged","onAllRemoved","restProps","motionProps","changedVisible","parsedKeyObjects","prevEntity","genCSSMotionList","getMotion","prefixCls","motion","Mask","zIndex","maskMotion","maskAnimation","maskTransitionName","vendorPrefix","isVisible","offsetParent","SVGGraphicsElement","getBBox","_element$getBBox","_element$getBoundingC","_width","_height","jsCssMap","Webkit","Moz","ms","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","setTransform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","getScroll","method","getScrollLeft","getScrollTop","getOffset","pos","box","doc","docElem","clientLeft","clientTop","getClientPosition","parentWindow","isWindow","getDocument","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","_dir","setTransform$1","originalXY","matrix","parseFloat","getTransformXY","resultXY","xy","match2d","setTransformXY","each","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","swap","getPBMWidth","cssProp","domUtils","getParent","host","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","mix","includeMargin","utils","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","setOffset","clone","overflow","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","nodeName","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","originalPosition","documentWidth","documentHeight","bodyStyle","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","align","getElFuturePos","elRegion","refNodeRegion","targetOffset","p1","p2","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","_listCacheClear","__data__","eq_1","eq","_assocIndexOf","assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheSet","listCacheClear","listCacheDelete","listCacheGet","require$$2","listCacheHas","listCacheSet","require$$4","ListCache","entries","_ListCache","_stackClear","_stackDelete","_stackGet","_stackHas","uid","isFunction_1","coreJsData","maskSrcKey","exec","IE_PROTO","_isMasked","funcToString","_toSource","isFunction","isMasked","toSource","require$$3","reIsHostCtor","funcProto","reIsNative","baseIsNative","getValue","_getNative","_Map","_nativeCreate","nativeCreate","_hashClear","_hashDelete","_hashGet","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","isKeyable","_getMapData","getMapData","mapCacheClear","hash","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","_MapCache","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","_Stack","setCacheAdd","setCacheHas","SetCache","_arraySome","predicate","arraySome","cacheHas","cache","_equalArrays","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_mapToArray","_setToArray","Uint8Array","equalArrays","mapToArray","setToArray","require$$5","symbolProto","symbolValueOf","_equalByTag","byteLength","byteOffset","buffer","convert","stacked","_arrayPush","isArray_1","arrayPush","_baseGetAllKeys","keysFunc","symbolsFunc","_arrayFilter","resIndex","arrayFilter","stubArray","nativeGetSymbols","_getSymbols","_baseTimes","iteratee","baseIsArguments","isArguments_1","stubFalse_1","stubFalse","freeExports","freeModule","Buffer","isBuffer","reIsUint","_isIndex","isLength_1","isLength","typedArrayTags","_baseIsTypedArray","_baseUnary","freeProcess","nodeUtil","require","binding","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","isTypedArray_1","baseTimes","isArguments","isIndex","_arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_isPrototype","Ctor","nativeKeys","overArg","isPrototype","arrayLikeKeys","baseKeys","isArrayLike","baseGetAllKeys","getSymbols","getAllKeys","_equalObjects","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","DataView","require$$6","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","ctorString","equalByTag","equalObjects","require$$7","objectTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqual","baseIsEqual","isEqual_1","MapShim","getIndex","class_1","__entries__","ctx","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","timeoutCallback","timeStamp","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","monitorResize","prevWidth","prevHeight","resizeObserver","_target$getBoundingCl","fixedWidth","fixedHeight","getPoint","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","only","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","trigger","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","tgtPoint","pageX","pageY","pointInView","alignPoint","container","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","isEqual","winResizeRef","forceAlign","RcAlign","_regeneratorRuntime","Op","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","awrap","async","iter","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","StatusQueue","PopupInner","stretch","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseDown","onTouchStart","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","setInternalStatus","rafRef","cancelRaf","_callee","_context","useVisibleStatus","_useVisibleStatus2","goNextStatus","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","count","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","agent","vendor","opera","isMobile","popupNode","TriggerContext","noop","returnEmptyString","returnDocument","ALL_HANDLERS","Trigger","PortalComponent","_popupVisible","popupRef","createRef","triggerRef","portalContainer","attachId","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","mouseDownTimeout","focusTime","preClickTime","preTouchTime","delayTimer","hasPopupMouseDown","mouseEnterDelay","fireEvents","delaySetPopupVisible","onMouseMove","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","isFocusToShow","focusDelay","isBlurToHide","blurDelay","onContextMenu","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","popupVisible","onPopupMouseDown","_this$context","onDocumentClick","maskClosable","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","getPopupClassNameFromAlign","popupPlacement","builtinPlacements","placements","placement","getAlignPopupClassName","getComponent","_this$props2","onPopupAlign","popupAnimation","popupTransitionName","popup","onPopupClick","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","mountNode","_this$props3","getPopupContainer","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","triggerContextValue","defaultPopupVisible","currentDocument","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","getAlignFromPlacement","onPopupVisibleChange","delayS","childPros","_this$props4","showAction","_this$props5","_this$props6","hideAction","_this$props7","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","newChildProps","createTwoChains","childrenClassName","portal","prevState","newState","generateTrigger","autoAdjustOverflow","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","showArrow","arrowContent","overlayInnerStyle","createRoot","Tooltip$2","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlay","domRef","extraProps","destroyTooltip","keepParent","StyleWrapper","Tooltip","tooltipRef","TooltipComponent","fullClone","reactRender","unmountComponentAtNode","toggleWarning","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","unmount","legacyUnmount","_unmount","_callee2","_context2","Notice","_Component","closeTimer","clearCloseTimer","onClose","noticeKey","startCloseTimer","duration","prevProps","updateMark","restartCloseTimer","closable","closeIcon","holder","componentClass","dataOrAriaAttributeProps","acc","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","seed","getUuid","Notification","notices","hookRefs","originNotice","holderCallback","notice","maxCount","previousState","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","noticeProps","_notice$onClose","content","_this2$noticePropsMap","newInstance","_ref6","called","notification","removeNotice","destroy","_x2","useNotification","notificationInstance","createdRef","setElements","firstMount","noticeEle","originElements","ele","cloneList","TEST_RENDER","ContentText","ToastContentContainer","IconWrapper","ToastContent","icon","iconSize","getToastConstantsByType","toast","HorizontalButtons","buttonOptions","selectedButtonId","HorizontalButtonsWrapper","ButtonItem","activeBackgroundColor","Avatar","withShadow","initials","iconName","imageUrl","avatarSize","contentJSX","AvatarText","AvatarImage","src","clickable","Label","templateObject_10","HorizontalPadding","padding","VerticalPadding","Divider","weight","marginHorizontal","marginVertical","getRadioOptionStyles","selectedRadioOptionBackgroundColor","selectedRadioOptionIndicatorColor","radioGroupWrapperStyles","buttonOptionSpacing","radioIconWrapperStyles","radioLabelWrapperStyles","groupWrapperStyles","RadioLabelWrapper","FormControlLabel","$isError","RadioIconWrapper","Radio","$disabled","$isEditMode","RadioOption","disableRipple","RadioButtons","isRow","RadioGroupWrapper","row","$isRow","RadioGroup","circleColor","fontColor","CirclesWrapper","CircularIndicator","activeColor","inactiveColor","CircularIndicatorStyledComponent","IconButton","getSelectionIndicatorColor","selectedTabIndicatorColor","isActiveTab","tabTheme","TabText","textSize","defaultTabTextColor","tabPadding","tabFont","internalTextColor","TabContainer","selectedTabTextColor","internalSelectedTextColor","CaretIconWrapper","getColorForCaretDownIcon","compareToSizes","isInViewport","getConfigurationWrapperStyle","excludeScrollBehaviourList","ContainerWrapper","containerProps","metadata","border","paddingTop","_l","paddingBottom","_m","paddingLeft","_o","paddingRight","scrollBehaviour","borderSize","borderVal","_q","justifyContent","repeater","childrenAmount","paddingValue","side","getPadding","getScrollBehaviour","TextMolecule","fontVariant","lineHeight","letterSpacing","configurationItemInfo","restOfTextProps","textJSX","ruleLabelMapper","OPTIONAL","REQUIRED","FieldLabels","isTooltipVisible","ruleLabel","tooltipText","labelInternalConfig","ruleLabelInternalConfig","tooltipInternalConfig","labelColor","labelFontSize","fontSize","labelFontVariant","labelFontWeight","labelPadding","labelOverrideStyles","labelStyles","internalColor","ruleLabelFontSize","optionalTextColor","ruleLabelPadding","requiredTextColor","ruleLabelOverrideStyles","ruleLabelStyles","ruleLabelConfig","internalRuleColor","ruleLabelColor","tooltipBg","tooltipTextColor","tooltipTextSize","toolTipFontVariant","tooltipFontWeight","tooltipPadding","tooltipOverrideStyles","tooltipOverrideWrapperStyles","tooltipIconColor","tooltipStyles","tooltipWrapperStyles","getTooltipStyles","LabelWrapper","TooltipIconWrapper","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","checked","isNameInFieldArray","names","getNodeParentName","compact","isUndefined","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","FormProvider","getProxyFormState","formState","_proxyFormState","localProxyFormState","isRoot","isEmptyObject","shouldRenderFormState","formStateData","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","useSubscribe","_props","subscription","subject","subscribe","unsubscribe","tearDown","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","objectHasFunction","useController","methods","shouldUnregister","isArrayField","_name","fieldValues","_formValues","updateValue","_subjects","_getWatch","_removeUnmounted","useWatch","_defaultValues","updateFormState","_formState","_localProxyFormState","isDirty","dirtyFields","touchedFields","isValidating","isValid","errors","_mounted","useFormState","_registerProps","register","rules","updateMounted","field","_fields","mount","_shouldUnregisterField","_options","_stateFlags","unregister","elm","setCustomValidity","reportValidity","fieldState","invalid","isTouched","Controller","appendErrors","validateAllFieldCriteria","isKey","stringToPath","tempPath","lastIndex","newValue","focusFieldBy","fields","fieldsNames","currentField","isWatched","isBlurEvent","watchName","updateFieldArrayRootError","fieldArrayErrors","isBoolean","isFileInput","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","inputValue","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","pattern","validate","valueAsNumber","isRadio","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","isWeb","cloneObject","Blob","FileList","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isEmptyArray","updatePath","childObject","baseGet","previousObjRef","objectRef","currentPaths","currentPathsLength","createSubject","_observers","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","val2","isHTMLElement","owner","isMultipleSelect","live","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","defaultValues","getFieldValueAs","setValueAs","NaN","getFieldValue","files","selectedOptions","getRuleValue","rule","schemaErrorLookup","foundError","defaultOptions","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","isSubmitted","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","validateFields","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldSkipRender","resolver","_executeSchema","executeBuiltInValidation","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","isFieldDirty","output","isPreviousFieldTouched","isPreviousFormDirty","_getDirty","isPreviousFieldDirty","shouldRenderByError","previousFieldError","shouldUpdateValid","delayError","updateErrors","updatedFormState","getResolverOptions","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","selectRef","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","fieldKey","cloneValue","shouldSkipValidation","deps","skipValidation","watched","previousErrorLookupResult","errorLookupResult","fieldNames","executeSchemaAndUpdateState","all","shouldFocus","getFieldState","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","fieldRef","radioOrCheckbox","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","handleSubmit","onValid","onInvalid","persist","hasNoPromiseError","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepDirtyValues","keepSubmitCount","keepIsSubmitted","keepErrors","resetField","clearErrors","inputName","setError","setFocus","shouldSelect","useCheckCondition","formData","form","criteriaList","segmentationType","evaluateCriteria","getEvaluateCriteriaFunction","criteria","dataFieldId","subtypeId","getDataFieldValue","dataValue","operator","connectedCriteria","connectedTo","previousCriteria","toDateFormatValue","formatValue","year","month","day","useSetFormData","setFormData","defaultValueProp","dataFieldSubtypeId","dataFieldFormatValue","format","stateFormData","prevData","updatedData","subtypeValue","dataFieldName","useFormOrganismItem","activeChildrenIds","copyItem","setCopyItem","activeItems","foundItem","childItem","formStepProps","order","updateItemConfig","dateInputTypes","InputField","inputProps","labelsProps","conditionConfig","isPassword","isHidden","setHidden","isErrorState","shouldRenderField","dateType","errorMessage","getFieldPlaceholder","title","getInitialValuesFromFields","isFormValid","getFieldsFromFieldSections","sections","section","FieldMapper","spacer","fieldJSX","tooltip","SelectField","selectProps","checkboxLabel","CheckboxField","checkboxProps","CheckboxFieldWrapper","CheckboxGroupWrapper","$spacing","checkboxesProps","selectedIds","CheckboxGroup","checkboxGroupWrapperStyles","checkedList","setCheckedList","restInternalProps","handleCheckboxChange","itemId","prevList","updatedList","getValidationStatus","validationState","CustomValidation","RulesWrapper","InfoText","activeStyles","hoverStyles","SelectableInfoCardStyled","GroupWrapper","spacing","BaseSelectable","infoText","SelectableCardGroup","cards","initialValue","changeHandler","card","sizings","DRAWER_BORDER_RADIUS","placementStyles","borderBottomLeftRadius","borderBottomRightRadius","borderTopRightRadius","borderTopLeftRadius","BaseDrawer","DrawerComponent","heightValue","widthValue","boxShadow","Drawer","closeIconColor","withCloseIcon","topCenter","bottomCenter","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","focusable","includePositive","isFocusableElement","tabIndexAttr","tabIndexNum","useAccessibility","setTriggerVisible","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_triggerRef$current$t3","focusMenu","_triggerRef$current2","_triggerRef$current2$","_triggerRef$current2$2","_triggerRef$current2$3","getFocusNodeList","firstElement","focusResult","Dropdown","_props$arrow","arrow","_props$placements","Placements","otherProps","triggerVisible","openClassName","childrenProps","childClassName","getMenuElement","overlayElement","triggerHideAction","minOverlayWidthMatchTrigger","getMinOverlayWidthMatchTrigger","newVisible","onVisibleChangeProp","onOverlayClick","Dropdown$1","MenuItem","activeKey","menuTheme","itemColor","activeItemColor","parentHandleClick","divider","itemOnClick","hasNestedOptions","menuItemColor","MenuItems","onItemPress","flexDirection","OptionsWrapper","AvatarDropdown","avatarProps","menuConfig","menuJSX","ConfigWrapper","TabsWrapper","$vertical","TabSlider","TabWrapper","MenuNavigation","customIconType","menuIconColor","TabGroup","tabs","vertical","activeTabKey","tabKey","onTabChange","wide","tabSpacing","activeTab","setActiveTab","tabsUnderlineWidth","setTabsUnderlineWidth","tabsUnderlineLeft","setTabsUnderlineLeft","tabsRef","setTabsPosition","currentTab","offsetLeft","useTabAnimation","wideContainerProps","containerStyle","wideContainerStyles","compactContainerProps","handleTabChange","Tab","FieldSection","spacerHeight","EmphasizedText","invertColors","RadioButtonField","radioButtonsProps","Alert","logo","description","containerStyles","FullWidthWrapper","InfoWrapper","LogoImage","CloseButton","fullWidth","Link","textProp","renderElementWrapperComponent","onExternalLink","LinkJoy","StepperWrapper","orientation","li","StepWrapper","VerticalWrapper","isLastChild","CustomStep","templateObject_12","isComplete","isProgress","templateObject_11","ConnectionLine","templateObject_16","templateObject_15","templateObject_13","templateObject_14","Step","stepsNumber","isInactive","ml","Stepper","isOnClickDisabled","stepLink","mt","pdfjs","GlobalWorkerOptions","workerSrc","PdfDocument","customDocumentStyles","total","setTotal","pageNumber","setPageNumber","renderedPageNumber","setRenderedPageNumber","pageWidth","pageHeight","isLoading","PdfViewerWrapper","file","renderMode","onLoadSuccess","numPages","loading","CircularProgress","Page","renderTextLayer","onRenderSuccess","PaginationWrapper","disable","PageInput","enteredNumber","CustomDivider","pageNumberColor","wrapperBackgroundColor","paginationArrowColor","disabledPaginationArrowColor","TextField","FeedContentHeader","templateType","HorizontalButtonsField","horizontalButtonsProps","setSelectedButtonId","BottomNavBarItem","IconComponent","onNavigate","BottomNavBarItemWrapper","Video","template","autoplay","enableCoverImage","coverImageSrc","video","autoPlay","isPlaying","setPlaying","muted","play","videoStyles","VideoWrapper","poster","onEnded","Overlay","MlrRichTextViewerProvider","groupedStepItems","currentFormStepId","OrganismContextProvider","initItems","organismId","onConfigurationItemHandler","itemInfo","contextValues","useStateListenerValue","stateListenerId","isAction","isStateVisible","isStateDisabled","stateValue","useStep","maxStep","setCurrentStep","useRequiredConsentsAcceptedValues","consents","consent","consentCaptureProps","acceptValue","FormStepContextProvider","initialStepsCount","groupedStepItemsByStepContainer","initSteps","allStepContainers","organismItem","fillTheStepContainers","flat","getFormStepContainers","checkContainerCondition","iStep","checkIfICanGoToNextStep","nextStepContainer","shouldRenderNextStep","nextContainer","handleGoNextStep","nextStepContainerItem","handleGoToPreviousStep","prevStep","prevStepContainerItem","ignore","FormContainer","_formControl","useForm","parsedDateValue","FormStepContainer","formStepStyles","popUpId","popupPayload","stepOrder","stepItems","OrganismItem","hasOwnButton","isFormInsidePopUp","Button","Container","compactContainerStyles","isMobileProp","mergedContainerProps","triggerProps","containersMap","slider","Carousel","formProps","form_step","itemStateConfig","elementId","setElementId","isInView","setIsInView","setScrollTop","isScrolling","setScrolling","viewModifierState","stateKey","onScroll","htmlElement","getElementById","isElementInView","useStateViewModifierHandler","containerJSX","entityId","entityType","entityMetadata","ContainerComponent","tabsProps","setSelectedConfigurationItemId","AccountButtonProvider","FormOrganismItem","ConsentMolecule","consentProps","defaultSelection","checkboxValue","setCheckboxValue","radioButtonsValue","setRadioButtonsValue","onCheckboxValueChange","onRadioButtonChange","conceptCaptureProps","methodOfCapture","acceptButton","confirmationButtonText","alert","denyButton","rejectionButtonText","acknowledgment","Consent","language","clearStyles","passwordValidationMapper","validation","isMax","isMaxValidationRule","isMinValidationRule","check_1","limit","getCheckLimitFunction","MAX","MIN","PasswordSetup","validationLabel","password","processTrackerBody","organismLibraryContainerId","containerLibraryId","ordering","group","attributeType","processSteps","journeyId","moleculeLibraryId","organismLibraryMoleculeId","buttonFont","buttonColor","buttonStyle","buttonStroke","hoverButtonColor","hoverStrokeColor","inactiveTextColor","inactiveButtonColor","inactiveStrokeColor","showRichTextToolbar","actionTypes","seoStyle","MoleculeItem","navigate","useNavigate","useSearchParams","setSearchParams","hasLinkAttribute","navigateToInternalWebpage","alias","routes","login","landing","route","pathname","onConfigurationItemClick","configurationsItemInfo","onClickOnConfigurationMode","fontType","_t","restOfButtonProps","_u","link_1","popup_1","drawer","download_1","download","onClickMapper","fetch","blob","blobUrl","createObjectURL","revokeObjectURL","error_1","submit","_v","image","link_2","altText","imageSource","imageFile","Image","_w","autoPlayVideo","coverImage","videoSource","tabGroup","headerTabs","_y","_z","_0","_1","name_1","restOfProps","_2","_3","dataModelFieldAttribute","displayOnlyDefaultValue","formatType","maskConfig","_4","_5","_6","_7","_8","name_2","_9","selectOptions","_10","_11","_12","_13","_14","name_3","_15","radioButtonOptions","_16","_17","_18","_19","_20","name_4","_21","checkboxOptions","passwordFieldLabel","reenteredPasswordFieldLabel","_22","passwordInputProps","reenteredPasswordInputProps","passwordFields","passwordMatch","_23","mergedAvatarProps","mergedMenuConfig","_24","orientation_1","sortedStepsFromStateObject_1","mergedProcessSteps","Checklist","renderMolecule","inRouterContext","useInRouterContext","Router","ButtonActionsProvider","popupProps","setModalVisible","activePopUp","setActivePopUp","activePopup","popupId","closed","ZealUIModal","modalStyles","embedded","isi","StateContextProvider","initStateConfig","hasOnClick","imageProps","cursor","annotationTags","moleculeIds","tagId","annotationTagsIndexes","imageJSX","regular","autoplayDuration","intervalRef","slideIndex","setSlideIndex","translateX","setTranslateX","autoplayInterval","actionHandler","transitionDuration","transitionEnd","handleResize","clearInterval","setInterval","slides","Slide","SlidesWrapper","ButtonsWrapper","ArrowIconWrapper","arrowSide","NavigationDotsWrapper","indexOfDot","BaseButton","ButtonBase","bgColor","SecondaryBaseButton","CustomBaseButton","shadeStrokeColor","ButtonWrapper","$fullWidth","ButtonComponent","getButtonJSX","isDisabled","richTextColor","custom","inactiveRichTextColor","richTextStyles","MUIModal","ModalWrapper","ConsentCapture","checklistItems","setChecklistItems","stateItems_1","updatedItems","sItem","ChecklistWrapper","$gap","isChecked","onOptionClick","tabProps","internalRef","withOptions"],"mappings":"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"}
|